Vundeblecoj en retdispatcher kiuj permesas radikan aliron

Sekurec-esploristoj de Mikrosofto identigis du vundeblecojn (CVE-2022-29799, CVE-2022-29800) en la ret-dispatcher-servo, kodita Nimbuspwn, kiuj permesas al senprivilegia uzanto ekzekuti arbitrajn komandojn kun radikaj privilegioj. La problemo estas riparita en la eldono de retdispatcher 2.2. Ankoraŭ ne ekzistas informoj pri la publikigo de ĝisdatigoj per distribuoj (Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux).

Networkd-dispatcher estas uzita en multaj Linukso-distribuoj, inkluzive de Ubuntu, kiuj uzas la fonprocezon systemd-networkd por agordi retajn parametrojn, kaj elfaras funkciojn similajn al NetworkManager-dispatcher, t.e. okupiĝas pri lanĉado de skriptoj kiam la stato de retkonekto ŝanĝiĝas, ekzemple, ĝi estas uzata por lanĉi VPN post kiam la ĉefa retkonekto estis establita.

La fonprocezo asociita kun retdispatcher funkcias kiel radiko kaj ricevas eventajn signalojn per la D-Bus. Informoj pri eventoj rilataj al ŝanĝoj en la stato de retkonektoj estas sendataj de la servo systemd-networkd. La problemo estas, ke senprivilegiaj uzantoj povas generi neekzistantan ŝtatan eventon kaj ekigi sian skripton por esti ekzekutita kiel radiko.

Systemd-networkd estas desegnita por ruli nur sistemajn pritraktilajn skriptojn situantajn en la dosierujo /etc/networkd-dispatcher kaj ne alireblaj por uzant-anstataŭigo, sed pro vundebleco (CVE-2022-29799) en la dosiervojo prilaboranta kodon, estis ebleco de eksterlima baza dosierujo kaj lanĉo de arbitraj skriptoj. Precipe, kiam oni formis la dosiervojon al la skripto, la valoroj OperationalState kaj AdministrativeState transdonitaj per D-Bus estis uzataj, en kiuj specialaj signoj ne estis forigitaj. La atakanto povis generi sian propran staton, kies nomo enhavis la signojn "../" kaj redirekti la retdispatcher-vokon al alia dosierujo.

La dua vundebleco (CVE-2022-29800) rilatas al raskondiĉo - inter kontrolado de la skriptoparametroj (apartenantaj al radiko) kaj rulado de ĝi, estis mallonga tempodaŭro, sufiĉa por anstataŭigi la dosieron kaj preteriri la kontrolon ĉu la skripto apartenas al la radika uzanto. Krome, networkd-dispatcher ne kontrolis por simbolaj ligiloj, inkluzive dum rulado de skriptoj tra la subprocezo.Popen-voko, kiu signife simpligis la organizon de la atako.

Operacia tekniko:

  • Dosierujo "/tmp/nimbuspwn" kaj simbola ligilo "/tmp/nimbuspwn/poc.d" estas kreitaj montrante la dosierujon "/sbin", kiu estas uzata por kontroli ruleblajn dosierojn posedatajn de radiko.
  • Por ruleblaj dosieroj de "/sbin", dosieroj kun la sama nomo estas kreitaj en la dosierujo "/tmp/nimbuspwn", ekzemple por la dosiero "/sbin/vgs" rulebla dosiero "/tmp/nimbuspwn/vgs" estas kreita, posedata de senprivilegia uzanto, en kiun la kodo, kiun la atakanto volas ruli, estas metita.
  • Signalo estas sendita per D-Bus al la ret-dispatcher-procezo indikante la valoron "../../../tmp/nimbuspwn/poc" en OperationalState. Por sendi signalon en la nomspaco "org.freedesktop.network1", la kapablo konekti ĝiajn pritraktantojn al systemd-networkd estis uzata, ekzemple, per manipuladoj per gpgv aŭ epmd, aŭ vi povas utiligi la fakton, ke systemd-networkd ne funkcias defaŭlte (ekzemple en Linux Mint).
  • Post ricevi la signalon, Networkd-dispatcher konstruas liston de ruleblaj dosieroj posedataj de la radika uzanto kaj disponeblaj en la dosierujo "/etc/networkd-dispatcher/../../../tmp/nimbuspwn/poc.d", kiu fakte ligas al "/sbin".
  • En la momento kiam la listo de dosieroj estas ricevita, sed la skripto ankoraŭ ne estis lanĉita, la simbola ligilo estas alidirektita de "/tmp/nimbuspwn/poc.d" al "/tmp/nimbuspwn" kaj networkd-dispatcher lanĉos la skripto gastigita de la atakanto kun radikrajtoj.

Vundeblecoj en retdispatcher kiuj permesas radikan aliron


fonto: opennet.ru

Aldoni komenton