Ata zbuluan një cenueshmëri në firejail që lejoi aksesin rrënjë në sistem

Së fundmi ata kanë publikuar lajmin se u identifikua një dobësi (të renditur tashmë nën CVE-2022-31214) në mjetin sandboxing të aplikacionit Firejail, është e detajuar se defekti i zbuluar mund të lejojë që një përdorues lokal të bëhet rrënjë në sistemin pritës.

Firejail përdor mekanizmin e hapësirave të emrave, AppArmor dhe filtrimin e thirrjeve të sistemit (seccomp-bpf) në Linux për izolim, por kërkon privilegje të larta për të konfiguruar një lëshim të izoluar, të cilin e merr duke u lidhur me mjetin suid root flag ose duke ekzekutuar me sudo.

Dobësia është për shkak të një gabimi në logjikën e opsionit “–join=”. », projektuar për t'u lidhur me një mjedis të izoluar që tashmë po ekzekutohet (i ngjashëm me komandën e hyrjes për një mjedis sandbox) me mjedisin e përcaktuar nga ID-ja e procesit që ekzekutohet në të. Në fazën e para-lansimit, firejail zbulon privilegjet e procesit të specifikuar dhe i zbaton ato në procesin e ri që bashkon mjedisin me opsionin “–bashkohu”.

Përpara lidhjes, kontrollon nëse procesi i specifikuar po ekzekutohet në mjedisin firejail. Ky kontroll vlerëson ekzistencën e skedarit /run/firejail/mnt/join. Për të shfrytëzuar cenueshmërinë, një sulmues mund të simulojë një mjedis fiktiv, jo të izoluar të burgut të zjarrit duke përdorur hapësirën e emrave të montimit dhe më pas duke u lidhur me të duke përdorur opsionin "--join".

Nëse konfigurimi nuk mundëson mënyrën e ndalimit të marrjes së privilegjeve shtesë në proceset e reja (prctl NO_NEW_PRIVS), firejail do të lidhë përdoruesin me një mjedis fiktiv dhe do të përpiqet të zbatojë konfigurimin e hapësirës së emrit të përdoruesit të identifikuesve të përdoruesit (përdoruesi i hapësirës së emrit) të procesit fillestar ( PID 1).

Shumica e logjikës pas funksionit të bashkimit është në kodin burimor nga skedari `src/firejail/join.c`. Seksionet kritike të kodit ekzekutohen me privilegje të ngritura (UID 0 efektive). ID-ja e procesit kaloi si komandë argumenti i linjës inspektohet për të përcaktuar nëse është një renë dhe të përcaktojë disa nga vetitë e tij që Kjo vlen edhe për procesin e ri të hyrjes.

Kriteret kryesore për të vendosur nëse do t'i bashkoheni procesit të synuar suksesi është prania e një skedari në hapësirën e emrave të montimit të objektivit, procesi i gjetur në /run/firejail/mnt/join. Ky verifikim bëhet në fFunksioni `is_ready_for_join()`. Skedari hapet duke përdorur lFlamujt `O_RDONLY|O_CLOEXEC` dhe gjurmimi i rezultatit `fstat()` duhet të plotësojnë kërkesat e mëposhtme:

– skedari duhet të jetë një skedar normal.
– skedari duhet të jetë në pronësi të userid 0 (siç shihet nga përdoruesi fillestar
hapësira e emrit).
– madhësia e skedarit duhet të jetë 1 bajt.

Si rezultat, procesi i lidhur nëpërmjet "firejail --join" do të përfundojë në hapësirën e emrave ID-ja origjinale e përdoruesit me privilegje të pandryshuara, por në një hapësirë ​​tjetër të pikës së montimit, plotësisht e kontrolluar nga sulmuesi.

Predha "e bashkuar" që rezulton tani do të jetojë në përdoruesin fillestar
hapësira e emrave, megjithatë, duke mbajtur ende privilegjet origjinale normale të përdoruesit hapësira e emrave të montimit do të jetë ajo e kontrolluar nga sulmuesi. Si
konfigurimi nonewprivs nuk është aplikuar, sulmuesi mundet tani
ekzekutoni programe setuid-root brenda këtij emri të montimit

Në veçanti, një sulmues mund të ekzekutojë programe setuid-root në hapësirën e pikës së montimit që ka krijuar, duke e lejuar atë që, për shembull, të ndryshojë konfigurimin /etc/sudoers ose parametrat PAM në hierarkinë e tij të skedarit dhe të fitojë aftësinë për të ekzekutuar komanda si rrënjë duke përdorur sudo ose shërbimet e tij.

Së fundi, vlen të përmendet se është zhvilluar një shfrytëzim funksional, i testuar në versionet aktuale të openSUSE, Debian, Arch, Gentoo dhe Fedora me programin firejail të instaluar.

Problemi u rregullua në versionin firejail 0.9.70. Si rregullim sigurie, mund ta vendosni konfigurimin (/etc/firejail/firejail.config) në "no join" dhe "force-nonewprivs po".

Më në fund nëse jeni të interesuar të dini më shumë për të, ju mund të kontrolloni detajet në lidhja vijuese.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.