Sårbarhed i xterm fører til kodeudførelse ved behandling af bestemte linjer

En sårbarhed (CVE-2022-45063) er blevet identificeret i xterm-terminalemulatoren, som gør det muligt at udføre shell-kommandoer, når visse escape-sekvenser behandles i terminalen. For et angreb i det enkleste tilfælde er det nok at vise indholdet af en specialdesignet fil, for eksempel ved hjælp af katteværktøjet, eller indsætte en linje fra udklipsholderen. printf "\e]50;i\$(touch /tmp/hack-like-its-1999)\a\e]50;?\a" > cve-2022-45063 kat cve-2022-45063

Problemet er forårsaget af en fejl i håndteringen af ​​kode 50 escape-sekvensen, der bruges til at indstille eller hente skrifttypeindstillinger. Hvis den anmodede skrifttype ikke findes, returnerer handlingen det skrifttypenavn, der er angivet i anmodningen. Du kan ikke direkte indsætte kontroltegn i navnet, men den returnerede streng kan afsluttes med sekvensen "^G", som i zsh, når vi-stil linjeredigeringstilstand er aktiv, bevirker, at der udføres en listeudvidelsesoperation, som kan bruges til at køre kommandoer uden eksplicit at trykke på Enter-tasten.

For at kunne udnytte sårbarheden skal brugeren bruge Zsh-kommandoskallen med kommandolinjeeditoren (vi-cmd-mode) indstillet til "vi"-tilstand, som normalt ikke bruges som standard i distributioner. Problemet vises heller ikke, når xterm-indstillingerne allowWindowOps=false eller allowFontOps=false er indstillet. For eksempel er allowFontOps=false indstillet i OpenBSD, Debian og RHEL, men anvendes ikke som standard i Arch Linux.

At dømme efter listen over ændringer og erklæringen fra den forsker, der identificerede problemet, blev sårbarheden rettet i xterm 375-udgivelsen, men ifølge andre kilder vises sårbarheden fortsat i xterm 375 fra Arch Linux. Du kan spore udgivelsen af ​​rettelser efter distributioner på disse sider: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD.

Kilde: opennet.ru

Tilføj en kommentar