First published: Fri Aug 10 2012(Updated: )
X.org has traditionally been suid root so that users could utilize "startx" (or similar scripts) to start X from the command line as a user. X.org does not sanitize the environment when starting, which means it will be aware of, and pass along, environment variables. When X.org is using the DBus backend, specifically versions 1.5.x or newer, the DBUS_SYSTEM_BUS_ADDRESS environment variable is passed along to libdbus. The DBUS system address can take a unixexec (Executed Subprocess on UNIX) transport [1] which allows one to specify a binary to execute and arguments to pass to it. Because the DBUS_SYSTEM_BUS_ADDRESS environment variable is not scrubbed by X, this environment variable is passed along to libdbus, and it specifies the address of the system message bus. A malicious local user could use this, in conjunction with the unixexec transport, to execute arbitrary code as root (because /usr/bin/Xorg is suid root). [1] <a href="http://dbus.freedesktop.org/doc/dbus-specification.html#transports-exec">http://dbus.freedesktop.org/doc/dbus-specification.html#transports-exec</a> Acknowledgements: Red Hat would like to thank Sebastian Krahmer of the SUSE Security Team for reporting this issue.
Credit: secalert@redhat.com
Affected Software | Affected Version | How to fix |
---|---|---|
Freedesktop Libdbus | <=1.5.12 | |
Freedesktop Libdbus | =1.5.0 | |
Freedesktop Libdbus | =1.5.2 | |
Freedesktop Libdbus | =1.5.4 | |
Freedesktop Libdbus | =1.5.6 | |
Freedesktop Libdbus | =1.5.8 | |
Freedesktop Libdbus | =1.5.10 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.