فهرست منبع

check_icmp: Uncheck return values of set*id() family functions

In the unlikely event where setuid() fails, privileges of the
 plugin would not be dropped and commands would be run as root.
 This would lead to privilege escalation.
Jeffrey Bencteux 2 سال پیش
والد
کامیت
5f704efe58
1فایلهای تغییر یافته به همراه3 افزوده شده و 1 حذف شده
  1. 3 1
      plugins-root/check_icmp.c

+ 3 - 1
plugins-root/check_icmp.c

@@ -725,7 +725,9 @@ int main(int argc, char **argv) {
   }
 
   /* now drop privileges (no effect if not setsuid or geteuid() == 0) */
-  setuid(getuid());
+  if (setuid(getuid()) == -1) {
+    crash("dropping privileges failed");
+  }
 
 #ifdef SO_TIMESTAMP
   if (setsockopt(icmp_sock, SOL_SOCKET, SO_TIMESTAMP, &on, sizeof(on))) {