NVIDIA Linux Driver Vulnerability Exploits Root Privileges!

According to NVIDIA there is a major vulnerability in their UNIX/Linux driver that every Linux user should be aware of. Especially now, that most of us play Steam games using proprietary drivers, this is quite dangerous and you should pay attention. Thankfully, this vulnerability was identified by NVIDIA, thus there are no known reports of exploits of this vulnerability in the wild.

NVIDIA-Logo

When the NVIDIA driver for the X Window System is operated in “NoScanout” mode, and an X client installs an ARGB cursor that is larger than the expected size (64×64 or 256×256, depending on the driver version), the driver will overflow a buffer. This can cause a denial of service (e.g., an X server segmentation fault), or could be exploited to achieve arbitrary code execution. Because the X server runs as setuid root in many configurations, an attacker could potentially use this vulnerability in those configurations to gain root privileges.  To install an ARGB cursor, an application would require a connection to a running X server. Normally, X servers are configured to only accept authenticated connections from the local host, but some X servers may be configured to more permissively allow connections, and/or to allow connections over a network.

“NoScanout” mode is enabled implicitly on NVIDIA products which lack display output connectors, and can be enabled explicitly on some other configurations with the X configuration option:

Option “UseDisplayDevice” “none”

NVIDIA GPU drivers for OSes other than Linux, FreeBSD, VMware ESX, and Solaris are not affected.

This vulnerability has been present since NVIDIA driver version 195.22. The overflow is fixed in 304.88, 310.44, 313.30, and all drivers newer than those versions.  NVIDIA recommends that users upgrade to a fixed driver version, or disable NoScanout mode, where possible.