X.Org released patches and updates to fix several flaws found in many client libraries that could be exploited to cause DoS and escalate privileges.
X.Org is a widely used open-source implementation of the X Windows System (aka X11 or X-Windows) that is the graphical windowing system adopted by Unix and Linux operating systems. A set of libraries implements the routines used within X-Windows applications,
The security researcher Tobias Stoeckmann from the OpenBSD Project discovered that many of the libraries that implement the routines used within X-Windows applications are affected by critical flaws.
“Tobias Stoeckmann from the OpenBSD project has discovered a number of issues in the way various X client libraries handle the responses they receive from servers.” states the advisory published by the X.Org Foundation. “Most of these issues stem from the client libraries trusting the server to send correct protocol data, and not verifying that the values will not overflow or cause other damage. Most of the time X clients & servers are run by the same user, with the server more privileged than the clients, so this is not a problem, but there are scenarios in which a privileged client can be connected to an unprivileged server, for instance, connecting a setuid X client (such as a screen lock program) to a virtual X server (such as Xvfb or Xephyr) which the user has modified to return invalid data, potentially allowing the user to escalate their privileges.”
The expert noticed that the X. Org client libraries don’t properly validate the server responses a circumstance that could be exploited by local and remote attackers to launch DoS attacks and make privilege escalation.
A remote or local X server can supply specially crafted data to trigger the above vulnerabilities resulting in out-of-bounds memory read or write error, buffer underflow, and other. The impact depends on the specific application that uses the flawed X.Org libraries.
Below the list of vulnerabilities that includes affected libraries and CVE codes used to track them:
- An out-of-bounds memory read or write error may occur in libX11 [CVE-2016-7942, CVE-2016-7943].
- An integer overflow may occur in libXfixes on 32-bit systems [CVE-2016-7944].
- An out-of-bounds memory access error or endless loop may occur in libXi [CVE-2016-7945, CVE-2016-7946].
- A integer overflow may occur in libXrandr [CVE-2016-7947]. Other errors may occur [CVE-2016-7948].
- An out-of-bounds memory write error may occur in libXrender [CVE-2016-7949, CVE-2016-7950].
- An integer overflow may occur in XRecord [CVE-2016-7951]. Other errors may occur in XRecord [CVE-2016-7952].