Die korrigierenden Veröffentlichungen X.Org Server 21.1.12 und des DDX-Komponenten (Device-Dependent X) xwayland 23.2.5 wurden veröffentlicht, die den Start des X.Org Servers zur Ausführung von X11-Anwendungen in Umgebungen auf Basis von Wayland ermöglichen. In der neuen Version des X.Org Servers wurden 4 Sicherheitsanfälligkeiten behoben. Eine Sicherheitsanfälligkeit kann zur Erhöhung der Berechtigungen in Systemen ausgenutzt werden, in denen der X-Server mit root-Rechten ausgeführt wird, sowie zur Remote-Ausführung von Code in Konfigurationen, in denen der Zugriff über die Umleitung der X11-Sitzung mittels SSH erfolgt.
Die verbleibenden drei Sicherheitsanfälligkeiten können zu einem Speicherinhaltleck führen. Server oder zu einem unerwarteten Programmabbruch. Diese drei Sicherheitsanfälligkeiten werden durch die Verwendung eines anderen Byte-Order auf der Client-Seite ausgenutzt als auf der Server. Daher bietet die neue Version die Möglichkeit, Verbindungen von Clients mit einem anderen Byte-Order zu blockieren. Zum Deaktivieren kann die Konfigurationsoption „AllowByteSwappedClients“ oder die Befehlszeilenoption „+byteswappedclients“ verwendet werden.
Die Änderung des Standardwerts ermöglicht den Schutz vor möglicherweise noch nicht identifizierten Sicherheitsanfälligkeiten, die mit der Byte-Reihenfolge manipulieren. Das Wesen solcher Sicherheitsanfälligkeiten besteht darin, dass die Änderung der Byte-Reihenfolge für Werte mit einer Größe zu einer falschen Interpretation und dem Lesen oder Schreiben in den Speicher zu einer offensichtlich größeren Größe führt, als der zugewiesene Puffer fassen kann.
Standardmäßig bleibt die Unterstützung für Clients mit einer anderen Byte-Reihenfolge erhalten, auch wenn die Umwandlung der Byte-Reihenfolge in der Praxis in letzter Zeit äußerst selten verwendet wird, da die Arbeitsstationen, auf denen der X-Server ausgeführt wird, in der Regel mit Prozessoren ausgestattet sind, die über eine little-endian-Byte-Reihenfolge (von der niedrigsten zur höchsten Byte) verfügen, und die Verbindung zu X-Clients mit einer big-endian-Reihenfolge, wie der Plattform s390x (IBM zSystems), äußerst selten ist.
Festgestellte Probleme:
- CVE-2024-31080, CVE-2024-31081, CVE-2024-31082 — Lesen von Daten aus dem Pufferüberlauf durch Manipulationen mit den Funktionen ProcXIGetSelectedEvents, ProcXIPassiveGrabDevice und ProcAppleDRICreatePixmap, die ein Feld mit einer Größe ohne Beachtung der Byte-Reihenfolge im Wert verwenden, der vom Client übergeben wird. Dementsprechend geben die Funktionen dem Client mehr Daten zurück, wenn die Byte-Reihenfolge beim Client und Server unterschiedlich ist. Die ersten beiden Probleme treten ab der Version xorg-server-1.7.0 (2009) auf, das dritte ab xorg-server-1.15.0 (2012).
- CVE-2024-31083 — Zugriff auf bereits freigegebenen Speicher (User-after-free) in der Funktion ProcRenderAddGlyphs, die die Funktion AllocateGlyph() aufruft, um neue Glyphen zu speichern, die vom Client übergeben werden. Die Funktion AllocateGlyph() gibt ein neues Glyph mit einem Referenzzähler von null (refcount=0) zurück, und die erneute Zuweisung des Glyphs führt nicht zu einer Erhöhung des Referenzzählers, wodurch das Array glyph_new mehrere Einträge enthalten kann, die auf ein Glyph ohne Referenzzähler verweisen. Bei der Freigabe des Speichers durch die Funktion ProcRenderAddGlyphs, der für das Glyph reserviert wurde, bleibt im Array ein zusätzlicher Zeiger auf das Glyph, dessen Speicher bereits freigegeben wurde. Das Problem tritt im X.Org Server auf und betrifft nicht xwayland.
Quelle: opennet.ru
