Kwetsbaarheden in networkd-dispatcher, waarmee root-rechten kunnen worden verkregen

Beveiligingsonderzoekers van Microsoft hebben twee kwetsbaarheden (CVE-2022-29799, CVE-2022-29800) ontdekt in de networkd-dispatcher service, met de codenaam Nimbuspwn, die een niet-geprivilegieerde gebruiker in staat stellen om willekeurige commando's uit te voeren met rootrechten. Het probleem is opgelost in versie 2.2 van networkd-dispatcher. Er is momenteel geen informatie over de beschikbaarheid van updates door distributies (Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux).

Networkd-dispatcher wordt gebruikt in veel Linux-distributies, waaronder Ubuntu, die de achtergrondservice systemd-networkd gebruiken voor het configureren van netwerkinstellingen, en voert functies uit die vergelijkbaar zijn met die van NetworkManager-dispatcher, dat wil zeggen, het start scripts bij het veranderen van de status van de netwerkverbinding, bijvoorbeeld het wordt gebruikt voor het starten VPN na de installatie van de primaire netwerkverbinding.

De achtergrondservice gerelateerd aan networkd-dispatcher draait met rootrechten en ontvangt signalen over gebeurtenissen via de D-Bus bus. Informatie over gebeurtenissen gerelateerd aan de statusverandering van netwerkverbindingen wordt verzonden door de systemd-networkd service. Het probleem is dat niet-geprivilegieerde gebruikers een evenement over een niet-bestaande status kunnen genereren en de uitvoering van hun script kunnen initiƫren, dat zal worden uitgevoerd met root-rechten.

Systemd-networkd is bedoeld om alleen systeemverwerker scripts te draaien die zijn geplaatst in de map /etc/networkd-dispatcher en niet vervangbaar zijn door de gebruiker, maar vanwege de kwetsbaarheid (CVE-2022-29799) in de verwerking van bestands paden was het mogelijk om buiten de basisdirectory te komen en willekeurige scripts uit te voeren. Bij het genereren van het bestands pad naar het script werden via D-Bus doorgegeven waarden OperationalState en AdministrativeState gebruikt, waarin speciale karakters niet werden gereinigd. Een aanvaller kon zijn eigen status genereren, waarvan de naam de karakters "..\/" bevatte en het verzoek van networkd-dispatcher naar een andere directory omleiden.

De tweede kwetsbaarheid (CVE-2022-29800) heeft te maken met een race-conditie — er was een kort tijdsinterval tussen de controle van de parameters van het script (toebehoren aan root) en de uitvoering ervan, voldoende om het bestand te vervangen en de controle op het lidmaatschap van het script door de rootgebruiker te omzeilen. Bovendien ontbrak er een controle op symbolische links in networkd-dispatcher, ook bij het starten van scripts via subprocess.Popen, wat de organisatie van de aanval aanzienlijk vergemakkelijkte.

Gebruikstechniek:

  • Een catalogus "\/tmp\/nimbuspwn" en een symbolische schakel "\/tmp\/nimbuspwn\/poc.d" worden aangemaakt, die verwijst naar de catalogus "\/sbin", welke gebruikt wordt voor het verifiĆ«ren van uitvoerbare bestanden die toebehoren aan root.
  • Voor de uitvoerbare bestanden uit "\/sbin" worden bestanden met een vergelijkbare naam aangemaakt in de catalogus "\/tmp\/nimbuspwn"; bijvoorbeeld, voor het bestand "\/sbin\/vgs" wordt het uitvoerbare bestand "\/tmp\/nimbuspwn\/vgs" aangemaakt, dat toebehoort aan een niet-geprivilegieerde gebruiker, waarin de code wordt geplaatst die de aanvaller wil uitvoeren.
  • Via D-Bus stuurt het proces networkd-dispatcher een signaal met de waarde "..\/..\/..\/tmp\/nimbuspwn\/poc" in OperationalState. Voor het verzenden van het signaal in de namespace "org.freedesktop.network1" werd de mogelijkheid gebruikt om eigen handlers aan systemd-networkd te koppelen, bijvoorbeeld door manipulaties met gpgv of epmd, of gebruikmakend van het feit dat systemd-networkd standaard niet draait (bijvoorbeeld in Linux Mint).
  • Nadat het signaal is ontvangen, vormt networkd-dispatcher een lijst van uitvoerbare bestanden die toebehoren aan gebruiker root en beschikbaar zijn in de catalogus "\/etc\/networkd-dispatcher\/..\/..\/..\/tmp\/nimbuspwn\/poc.d", die in feite verwijst naar "\/sbin".
  • Op het moment dat de lijst van bestanden is verkregen, maar het script nog niet is uitgevoerd, wordt de symbolische schakel omgeleid van "\/tmp\/nimbuspwn\/poc.d" naar "\/tmp\/nimbuspwn" en zal networkd-dispatcher het script dat door de aanvaller is geplaatst met root-rechten uitvoeren.

Kwetsbaarheden in networkd-dispatcher, waarmee root-rechten kunnen worden verkregen


Bron: opennet.ru
Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster