Hi, On 06/08/2012 03:09 PM, Tony Zelenoff wrote:
The CAP_SYS_BOOT capability required to reboot hardware node. But watchdog writers are not checked for this capability. So, the process may reboot hardware node even if it has no any capabilities to do it.
Hmm, I can imagine people explicitly doing a chown on /dev/watchdog, to allow some non root running, critical from a service availability pov, process to open it and ping it. The suggest change would mean for most standard linux distributions, that a process opening /dev/watchdog now must run as root, even if the rights of /dev/watchdog allow a process to open it. Also since you add the check on open, not on specific syscalls you are adding extra security checks to the open path. Now users are trained when open() fails with -EPERM to check 1: Standard unix file rights 2: For selinux denials Adding a third way to make open() fail with -EPERM is not going to make sysadmins very happy, esp. since this will not have any special logging to make the cause clear (unlike selinux). Moreover, since you add the check to open, what does it buy us over normal file-permissions? We already have a perfectly fine way to limit access to the watchdog device, namely standard unix file permissions, needing to fiddle with both file permissions and capabilities to allow a non root process to open /dev/watchdog is not making things easier, while at the same time not adding any value, since no extra granularity wrt security is gained. Last, but not least, this will break userspace ABI compatibility, which is a very strong "thy shall never do that" scenario. So all in all, a strong nack from me. Regards, Hans -- To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html