Neseniai buvo atrastas a pažeidžiamumas (jau įtraukta į katalogą CVE-2024-28085) gana specifinė ir rasta klaidaa util-linux paketo sieninėje programoje, leidžia užpuolikui manipuliuoti pabėgimo sekomis, kad paveiktų kitų vartotojų terminalus.
Šis pažeidžiamumas atkreipia daugelio dėmesį, nes iš esmės leidžia sukčiauti, nes programa skirta siųsti pranešimus į terminalus, ši pažeidžiamumas yra naudojamas apgauti ir gauti informaciją iš kitų terminalų.
Problema ta, kad naudingumas sienos blokų pabėgimo sekos įvesties sraute, bet ne komandinės eilutės argumentuose, todėl užpuolikas gali naudoti pabėgimo sekas kitų vartotojų terminaluose.
Pavyzdžiui, važiuojant siena naudojant pabėgimo sekas, kurios leidžia perkelti žymeklį, ištrinti ir pakeisti turinį ekrane, Užpuolikas gali imituoti sudo slaptažodžio užklausą kito vartotojo terminale. Jei vartotojas neaptinka šios manipuliacijos ir pateikia savo slaptažodį, slaptažodis komandų istorijoje bus rodomas kaip neegzistuojanti komanda (nes slaptažodis buvo įvestas tiesiai komandinėje eilutėje vietoj galiojančios komandos).
Kai pateikiamas įspėjimas, kad įvesta komanda nerasta, daugelis platinimų paleidžia /usr/lib/command-not-found tvarkyklę. Ši tvarkyklė bando identifikuoti paketą, kuriame yra trūkstama komanda, ir nurodo, ar jį galima įdiegti. Tačiau Iškilo problema: paleidžiant komandų nerasta tvarkyklę, jai kaip komandų eilutės parametras perduodama neegzistuojanti komanda. Tai matoma žiūrint sistemoje vykstančius procesus, kuriuos užpuolikas gali išnaudoti, kad galėtų stebėti vykdomus procesus ir nustatyti aukos komandinėje eilutėje įvestą slaptažodį.
Norėdami priversti vartotoją įvesti slaptažodį Atsakant į netikrą sudo pranešimą, buvo pasiūlytas įsilaužimas. Šis triukas apima faktinės sudo programos pradžios stebėjimą procesų sąraše, palaukite, kol jis bus baigtas, ir iškart po to atlikite sienos ataką. Manipuliuodamas pabėgimo sekomis, užpuolikas po faktinio sudo vykdymo pranešimą gali pakeisti netikru slaptažodžio pakartotinio įvedimo pranešimu. Nukentėjusysis gali manyti, kad suklydo įvesdamas slaptažodį ir įvedė jį iš naujo, taip atskleisdamas slaptažodį tvarkyklės argumentuose „komanda nerasta“.
Kai kurie žmonės neteisingai suprato, kokiais atvejais tai gali būti panaudota atakuojant kitą vartotoją. Mums nereikia pulti sudo, galime pulti bet kur, kur vartotojas įveda slaptažodį, pagrindinis pavyzdys vartotojui prisijungus naudojant OpenSSH.
PNorint įvykdyti sėkmingą ataką, būtina nustatyti "žinutės" režimą į "y", kuris pagal numatytuosius nustatymus sukonfigūruotas tokiose sistemose kaip Ubuntu, Debian ir CentOS/RHEL. Ataka buvo sėkmingai pademonstruota Ubuntu 22.04 naudojant gnome-terminal en numatytuosius nustatymus. Tačiau „Debian“ ataka yra sunkesnė, nes „komandos nerasta“ tvarkyklė nėra įjungta pagal numatytuosius nustatymus. Kalbant apie CentOS/RHEL, ataka neveikia, nes sieninė programa įdiegta be setgid vėliavėlės ir neturi prieigos prie kitų vartotojų terminalų. Jei naudojamas „Windows-Terminal“, ataką galima modifikuoti, kad būtų pakeistas mainų srities turinys.
Šis pažeidžiamumas yra util-linux pakete nuo 2013 m, po to, kai 2.24 versija pristatė galimybę nurodyti pranešimą sienos komandų eilutėje, bet pamiršo išvalyti pabėgimo sekas. Šio pažeidžiamumo pataisymas buvo įtrauktas į naujausią util-linux 2.40 leidimą, kuris buvo išleistas vakar. Svarbu paminėti, kad bandant pataisyti pažeidžiamumą util-linux 2.39 versijoje, buvo nustatytas kitas panašus pažeidžiamumas, leidžiantis pakeisti valdymo simbolius manipuliuojant regioniniais parametrais.
Jei norite sužinoti daugiau apie tai, galite pasikonsultuoti su išsami informacija šioje nuorodoje.