Schwachstelle in xterm, die zur Ausführung von Code bei der Verarbeitung bestimmter Zeichenfolgen führt

Im Terminal-Emulator xterm wurde eine Schwachstelle (CVE-2022-45063) entdeckt, die die Ausführung von Shell-Befehlen bei der Verarbeitung bestimmter Escape-Sequenzen im Terminal ermöglicht. Für einen Angriff reicht es in der einfachsten Form aus, den Inhalt einer speziell formatierten Datei auf dem Bildschirm anzuzeigen, beispielsweise mit dem Tool cat, oder eine Zeile aus der Zwischenablage einzufügen. printf "\e]50;i\$(touch \/tmp\/hack-like-its-1999)\a\e]50;?\a" > cve-2022-45063 cat cve-2022-45063

Das Problem wird durch einen Fehler bei der Verarbeitung der Escape-Sequenz mit dem Code 50 verursacht, die zum Festlegen oder Abrufen von Schriftarteinstellungen verwendet wird. Wenn die angeforderte Schriftart nicht existiert, gibt der Vorgang den im Antrag angegebenen Schriftartnamen zurück. Steuerzeichen können nicht direkt im Namen eingefügt werden, aber die zurückgegebene Zeichenfolge kann mit der Sequenz „^G“ enden, die in zsh im aktivierten Vi-Modus zur Ausführung einer Listenoperation führt, was verwendet werden kann, um Befehle ohne explizites Drücken der Enter-Taste auszuführen.

Für eine erfolgreiche Ausnutzung der Schwachstelle muss der Benutzer die Zsh-Befehlszeile mit dem in den „vi“-Modus versetzten Editor (vi-cmd-mode) verwenden, der normalerweise in den Distributionen nicht standardmäßig aktiviert ist. Das Problem tritt auch nicht auf, wenn die Einstellungen allowWindowOps=false oder allowFontOps=false in xterm gesetzt sind. Zum Beispiel wird die Einstellung allowFontOps=false in OpenBSD, Debian und RHEL angewendet, jedoch nicht standardmäßig in Arch Linux.

Laut der Änderungsübersicht und der Aussage des entdeckenden Forschers wurde die Schwachstelle in Version 375 von xterm behoben, aber andere Berichte deuten darauf hin, dass die Schwachstelle weiterhin in xterm 375 von Arch Linux besteht. Die Veröffentlichung von Patches in den Distributionen kann auf den folgenden Seiten verfolgt werden: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD.

Quelle: opennet.ru

60GB SSD 8Gb DDR4