Sårbarhet i xterm som fører til kodekjøring ved behandling av visse strenger

En sårbarhet (CVE-2022-45063) er identifisert i xterm-terminalemulatoren, som gjør at skallkommandoer kan utføres når visse escape-sekvenser behandles i terminalen. For et angrep i det enkleste tilfellet er det nok å vise innholdet i en spesialdesignet fil, for eksempel ved å bruke katteverktøyet, eller lime inn en linje fra utklippstavlen. printf "\e]50;i\$(touch /tmp/hack-like-its-1999)\a\e]50;?\a" > cve-2022-45063 cat cve-2022-45063

Problemet er forårsaket av en feil i håndteringen av kode 50 escape-sekvensen som brukes til å angi eller hente skriftalternativer. Hvis den forespurte skriften ikke eksisterer, returnerer operasjonen skriftnavnet som er spesifisert i forespørselen. Du kan ikke sette inn kontrolltegn direkte i navnet, men den returnerte strengen kan avsluttes med sekvensen "^G", som i zsh, når vi-stil linjeredigeringsmodus er aktiv, fører til at en listeutvidelsesoperasjon utføres, som kan brukes til å kjøre kommandoer uten å eksplisitt trykke Enter-tasten.

For å kunne utnytte sårbarheten, må brukeren bruke Zsh-kommandoskallet med kommandolinjeredigering (vi-cmd-modus) satt til "vi"-modus, som vanligvis ikke brukes som standard i distribusjoner. Problemet vises heller ikke når xterm-innstillingene allowWindowOps=false eller allowFontOps=false er satt. For eksempel, allowFontOps=false er satt i OpenBSD, Debian og RHEL, men brukes ikke som standard i Arch Linux.

Ut fra listen over endringer og uttalelsen fra forskeren som identifiserte problemet, ble sårbarheten løst i xterm 375-utgivelsen, men ifølge andre kilder fortsetter sårbarheten å vises i xterm 375 fra Arch Linux. Du kan spore publiseringen av rettelser etter distribusjoner på disse sidene: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD.

Kilde: opennet.ru

Legg til en kommentar