|
Date: Wed, 11 Feb 2015 10:20:03 -0700 From: "Todd C. Miller" <Todd.Miller@...rtesan.com> To: oss-security@...ts.openwall.com cc: cve-assign@...re.org Subject: Re: Re: CVE request: sudo TZ issue On Wed, 11 Feb 2015 00:59:16 -0500, cve-assign@...re.org wrote: > We are not sure why this is being interpreted as a vulnerability in > sudo that should have a CVE assignment in which sudo is the > responsible product. It appears that you are adding a new security > feature in which sudo chooses to help prevent exploitation of bugs in > a system library such as libc. Adding security features is often not > within the scope of CVE. We're not disputing that it's worthwhile for > you to change the sudo code and publish an alert explaining why you > did that. It's just that some types of worthwhile changes can have CVE > IDs whereas others can't. Initially, I was also of the opinion that this was a libc issue and not a sudo one. However, since TZ can be used to read arbitrary files it can hijack input from arbitrary ptys and things like /proc/kmsg it seems like a general problem. In some ways running a command via sudo is similar to running a setuid executable, but without the protection of AT_SECURE or issetugid() checks done by libc (or the executable itself). As such, sudo bears some responsibility to sanitize the environment in a manner similar to what libc would do. > Depending on how other code is written, a TZ value could still be > malicious even if it doesn't satisfy the definition of "unsafe" that > you included. Should there be other CVEs for sudo if any such code is > identified? There are really two issues here: exposure of TZ parsing bugs and access to arbitrary (potentially user-controlled) files. I'm happy to put the blame for TZ parsing bugs on libc or the application. However, there is no real way for the application to tell that it is being run by an unpriviliged user and that operations that would otherwise be safe (opening a user-specified time zone file) may be dangerous. > To be clear, you can have a CVE assignment if, as the "vendor" of > sudo, you believe that absense of the new "unsafe" checking was an > implementation mistake in sudo. However, in that case, can you clarify > whether it is one mistake or multiple mistakes? For example, is there > a documented or implied security policy for sudo that addresses the > current situation? A policy might be something like: > > - for every environment variable passed through by default, there is > supposed to be a proactive review of all common use cases of that > environment variable, and sudo is supposed to have input validation > that ensures that the environment variable's value is normal and > properly handled within that use case > > or, for multiple policies: > > - sudo is supposed to prevent traversal attacks with environment > variables > > - sudo is supposed to block syntactically invalid values of > environment variables > > - sudo is supposed to block long values of environment variables By default, sudo will run commands with a minimal copy of the environment that is considered to be "safe". Defining "safe" is difficult since there's no way for sudo to know how an application will use an environment variable. However, sudo has historically done some simple filtering of the environment variables in the "env_check" list to avoid some library and application bugs. For instance COLORTERM, LANG, LANGUAGE, LC_*, LINGUAS and TERM are filtered if they contain '%' or '/' characters to avoid potential printf format vulnerabilities and interpretation as a path respectively. Filtering TZ is consistent with the promise that commands be started with a "safe" environment. I don't think it is unreasonable to expect sudo to implement the same kind of environment checks that would be performed by libc for a setuid program. - todd
Powered by blists - more mailing lists
Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.