vulnerability researcher;vulnerability discoverer;exploit writer;virus writer;fisher;attacker; which one are u belong to?
查看文章 |
这不是一个linux内核漏洞,确是一个非常好用的漏洞
2009-04-24 14:54
不是linux kernel的漏洞, 是个非常好用的应用程序漏洞。 http://www.milw0rm.com/exploits/8478 udevd进程处理用户数据不当导致的任意执行命令漏洞。其实邪恶的环境变量不单单是LD_PRELOAD。 int udev_event_execute_run(struct udev_event *event) { struct udev_list_entry *list_entry; int err = 0; dbg(event->udev, "executing run list\n"); udev_list_entry_foreach(list_entry, udev_list_get_entry(&event->run_list)) { const char *cmd = udev_list_entry_get_name(list_entry); if (strncmp(cmd, "socket:", strlen("socket:")) == 0) { struct udev_monitor *monitor; monitor = udev_monitor_new_from_socket(event->udev, &cmd[strlen("socket:")]); if (monitor == NULL) continue; udev_monitor_send_device(monitor, event->dev); udev_monitor_unref(monitor); } else { char program[UTIL_PATH_SIZE]; char **envp; util_strlcpy(program, cmd, sizeof(program)); udev_event_apply_format(event, program, sizeof(program)); if (event->trace) fprintf(stderr, "run %s (%llu) '%s'\n", udev_device_get_syspath(event->dev), udev_device_get_seqnum(event->dev), program); envp = udev_device_get_properties_envp(event->dev); if (util_run_program(event->udev, program, envp, NULL, 0, NULL) != 0) { if (!udev_list_entry_get_flag(list_entry)) err = -1; } } } return err; |
最近读者: