Vulnerabilitetet në utilitarin needrestart, që mundësojnë akses root në Ubuntu Server

Kompania Qualys identificoi tri dobësi në utilitarin needrestart, i destinuar për riaktivizimin e proceseve në prapavijë pas përditësimit të biblioteka që përdoren nga proceset e të dhënave. Duke filluar nga Ubuntu 21.04, utilitari needrestart është i përfshirë në ambientin bazë të Ubuntu Server, ku ekzekutohet me të drejta root në fund të çdo transaksioni të menaxherit të paketave APT, skanon proceset aktive dhe riaktivizon ato që lidhen me skedarët që kanë ndryshuar pas përditësimit të paketave. Dobësitë e identifikuara lejojnë një përdorues lokal pa privilegje të fitojë të drejta root në Ubuntu Server në konfiguracionin e tij të paracaktuar.

DobĂ«sitĂ« janĂ« tĂ« pranishme nĂ« needrestart qĂ« nga versioni 0.8 (viti 2014) dhe janĂ« rregulluar nĂ« versionin e needrestart 3.8. Problemet gjithashtu janĂ« korrigjuar tashmĂ« nĂ« shpĂ«rndarjet Debian dhe Ubuntu. Si njĂ« zgjidhje pĂ«r tĂ« bllokuar shfrytĂ«zimin e dobĂ«sive, mund tĂ« çaktivizoni skanimin e interpretimeve duke specifikuar nĂ« skedarin e konfigurimit /etc/needrestart/needrestart.conf parametrin "$nrconf{interpscan} = 0$”.

Dobësitë janë të pranishme në kodin me zbatimin e modit të përcaktimit të përditësimit të skenareve, të ekzekutuar duke përdorur interpretorë. Problemet e identifikuara:

  • CVE-2024-48990 — njĂ« pĂ«rdorues lokal mund tĂ« arrijĂ« tĂ« ekzekutojĂ« kod me tĂ« drejta root duke krijuar kushte pĂ«r tĂ« ekzekutuar interpretorin Python me variablĂ«n mjedisore PYTHONPATH tĂ« vendosur nga sulmuesi. PĂ«rveç pĂ«rdorimit tĂ« Python, sulmi gjithashtu mund tĂ« kryhet (CVE-2024-48992) pĂ«rmes ekzekutimit tĂ« interpretorit Ruby me variablĂ«n mjedisore RUBYLIB.

    Dobësitë janë shkaktuar nga fakti se gjatë riaktivizimit të skenarit të ndryshuar, utilitari needrestart vendos variablën mjedisore PYTHONPATH bazuar në përmbajtjen e skedarit /proc/pid/environ, të cilën e përdor gjithashtu për të ekzekutuar kodin e vet Python. Për rrjedhojë, sulmuesi mund të presë aktivitetet e lidhura me funksionimin e menaxherit të paketave APT, të simulojë ndryshimin e skenarit të tij dhe të vendosë për të variablën mjedisore PYTHONPATH, e cila gjithashtu do të aplikohet gjatë ekzekutimit të kodit Python të integruar në needrestart ("import sys\n print(sys.path)") që ekzekutohet me të drejta root.

    Për shembull, për të shfrytëzuar një dobësi, mund të startoni një proces Python që qëndron gjithnjë në memorje, duke i caktuar atij variablën e ambientit "PYTHONPATH=/home/test", dhe të vendosni një bibliotekë të ndarë "/home/test/importlib/__init__.so", e cila do të ekzekutohet gjatë ekzekutimit të kodit privilegjuar Python në needrestart.

  • CVE-2024-48991 — njĂ« pĂ«rdorues lokal mund tĂ« arrijĂ« ekzekutimin e kodit me tĂ« drejta root pĂ«rmes nxitjes sĂ« njĂ« gjendjeje garuese (race condition), nĂ« rezultatin e tĂ« cilit needrestart do tĂ« startojĂ« njĂ« interpretues Python fals, i vendosur nga sulmuesi, nĂ« vend tĂ« interpretuesit sistemor Python. Arsyetimi i dobĂ«sisĂ« Ă«shtĂ« i ngjashĂ«m me problemin e pĂ«rmendur mĂ« lart, me ndryshimin se needrestart identifikon emrin e procesit Python (pĂ«r shembull, "/usr/bin/python3") pĂ«rmes leximit tĂ« " /proc/pid/exe ".

    Për shfrytëzimin e dobësisë, mund të krijoni një proces "/home/test/race", i cili nëpërmjet mekanizmit inotify do të presë momentin kur needrestart fillon të lexojë përmbajtjen e "/proc/pid/exe", dhe menjëherë do të startojë interpretuesin sistemor Python përmes funksionit execve. Duke qenë se needrestart nuk bën verifikimin nëse ky është me të vërtetë Python, ai do ta konsiderojë "/home/test/race" si interpretues Python dhe do ta startojë atë për kodin e tij.

  • CVE-2024-11003 — njĂ« pĂ«rdorues lokal mund tĂ« arrijĂ« tĂ« ekzekutojĂ« komandat e rastit shell me tĂ« drejta root pĂ«rmes krijimit tĂ« kushteve pĂ«r pĂ«rpunimin nga needrestart tĂ« emrave tĂ« skedarĂ«ve nĂ« formatin "komanda|", ku kalimi i tyre nĂ« funksionin Perl open() do tĂ« rezultojĂ« nĂ« ekzekutimin e komandĂ«s. NĂ« fakt, dobĂ«sia manifeston veten nĂ« modulin Perl ScanDeps (CVE-2024-10224), por shkaktohet nga kalimi i parametrave tĂ« jashtĂ«m nĂ« kĂ«tĂ« modul pa njĂ« verifikim tĂ« duhur.

    Sulmi mund të realizohet përmes ekzekutimit të një skripti Perl me simbolin "|" në emër, për shembull, "/home/test/perl|". Gjatë ekzekutimit të funksionit scan_deps() në needrestart, ky skedar do të hapet përmes funksionit open(), i cili do ta përpunojë simbolin "|" si një flag për të startuar programin "/home/test/perl" dhe për të përdorur daljen nga ky program.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster