Kwesbaarhede in networkd-dispatcher wat worteltoegang toelaat

Sekuriteitsnavorsers van Microsoft het twee kwesbaarhede (CVE-2022-29799, CVE-2022-29800) in die networkd-dispatcher-diens, kodenaam Nimbuspwn, geïdentifiseer wat 'n onbevoorregte gebruiker toelaat om arbitrêre opdragte met wortelregte uit te voer. Die probleem is opgelos in die vrystelling van networkd-dispatcher 2.2. Daar is nog geen inligting oor die publikasie van opdaterings deur verspreidings nie (Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux).

Networkd-dispatcher word in baie Linux-verspreidings gebruik, insluitend Ubuntu, wat die agtergrondproses systemd-networkd gebruik om netwerkparameters op te stel, en verrig funksies soortgelyk aan NetworkManager-dispatcher, d.w.s. is besig met die bekendstelling van skrifte wanneer die toestand van 'n netwerkverbinding verander, dit word byvoorbeeld gebruik om 'n VPN te begin nadat die hoofnetwerkverbinding tot stand gebring is.

Die agtergrondproses wat met networkd-dispatcher geassosieer word, loop as wortel en ontvang gebeurtenisseine via die D-Bus. Inligting oor gebeure wat verband hou met veranderinge in die toestand van netwerkverbindings word deur die systemd-networkd-diens gestuur. Die probleem is dat onbevoorregte gebruikers 'n nie-bestaande toestandgebeurtenis kan genereer en hul skrip kan aktiveer om as wortel uitgevoer te word.

Systemd-networkd is ontwerp om slegs stelselhanteerder-skrifte uit te voer wat in die /etc/networkd-dispatcher-gids geleë is en nie beskikbaar is vir gebruikervervanging nie, maar as gevolg van 'n kwesbaarheid (CVE-2022-29799) in die lêerpadverwerkingskode, was daar 'n moontlikheid van 'n buite-grens basisgids en die bekendstelling van arbitrêre skrifte. In die besonder, wanneer die lêerpad na die skrif gevorm word, is die OperationalState- en AdministrativeState-waardes wat via D-Bus versend is, gebruik, waarin spesiale karakters nie uitgevee is nie. Die aanvaller kon sy eie toestand genereer, waarvan die naam die karakters "../" bevat het en die netwerk-versender-oproep na 'n ander gids herlei.

Die tweede kwesbaarheid (CVE-2022-29800) hou verband met 'n rastoestand - tussen die nagaan van die skripparameters (wat aan root behoort) en die uitvoer daarvan, was daar 'n kort tydperk wat voldoende was om die lêer te vervang en die kontrole te omseil of die script behoort aan die wortelgebruiker. Daarbenewens het networkd-dispatcher nie gekyk vir simboliese skakels nie, insluitend wanneer skrifte deur die subproses uitgevoer word.Popen-oproep, wat die organisasie van die aanval aansienlik vereenvoudig het.

Bedryfstegniek:

  • 'n Gids "/tmp/nimbuspwn" en 'n simboliese skakel "/tmp/nimbuspwn/poc.d" word geskep wat na die gids "/sbin" wys, wat gebruik word om te kyk vir uitvoerbare lêers wat deur root besit word.
  • Vir uitvoerbare lêers vanaf “/sbin”, word lêers met dieselfde naam in die “/tmp/nimbuspwn”-gids geskep, byvoorbeeld, vir die lêer “/sbin/vgs” is 'n uitvoerbare lêer “/tmp/nimbuspwn/vgs” geskep, wat deur 'n onbevoorregte gebruiker besit word, waarin die kode geplaas word wat die aanvaller wil laat loop.
  • 'n Sein word via D-Bus na die networkd-dispatcher-proses gestuur wat die waarde "../../../tmp/nimbuspwn/poc" in OperationalState aandui. Om 'n sein in die naamruimte "org.freedesktop.network1" te stuur, is die vermoë om sy hanteerders aan systemd-networkd te koppel, gebruik, byvoorbeeld deur manipulasies met gpgv of epmd, of jy kan voordeel trek uit die feit dat systemd-networkd loop nie by verstek nie (byvoorbeeld op Linux Mint).
  • Nadat die sein ontvang is, bou Networkd-dispatcher 'n lys van uitvoerbare lêers wat deur die wortelgebruiker besit word en beskikbaar is in die gids "/etc/networkd-dispatcher/../../../tmp/nimbuspwn/poc.d", wat eintlik na "/sbin" skakel.
  • Op die oomblik wanneer die lys lêers ontvang word, maar die skrip nog nie geloods is nie, word die simboliese skakel herlei van "/tmp/nimbuspwn/poc.d" na "/tmp/nimbuspwn" en networkd-dispatcher sal die skrip aangebied deur die aanvaller met wortelregte.

Kwesbaarhede in networkd-dispatcher wat worteltoegang toelaat


Bron: opennet.ru

Voeg 'n opmerking