pwnkit / PolKit

Andy_m4

Well-Known Member
Es grassieren ja gerade Meldungen über eine Lücke in PolKit/pkexec. Auch für die FreeBSD-Ports gibt es da bereits einen Fix (Bugtracker-Eintrag #261482). Inwieweit die Exploits unter FreeBSD funktionieren ist aber offenbar noch nicht ganz klar.

Mal unabhängig davon wird ja auch im Bugtracker-Eintrag das darunterliegende Problem adressiert. Nämlich der Aufruf von execve und die fehlende Prüfung der Argumentliste (argv[] darf die Länge 0 haben). Was eigentlich ganz spannend ist, da das ja bedeutet das im Prinzip auch andere Programme von dem prinzipiellen Problem betroffen sein könnten.

Da würde mich mal eure Einschätzung dazu interessieren.
 
Kann meines Wissens nach nicht via Remote ausgenutzt werden. Somit für mich ein Bug unter vielen, der einfach gefixt wird.
 
Kann meines Wissens nach nicht via Remote ausgenutzt werden. Somit für mich ein Bug unter vielen, der einfach gefixt wird.

Es gibt natürlich Nutzungsszenarien wo auch das ein großes Problem darstellen kann. Aber lokale privilege escalation Bugs gibts wie Sand am Meer bei allen Betriebssystemen.
Besonders ist, dass es so einfach auszunutzen ist, und bereits öffentlich Code existiert der auf allen gängigen Tuxen funktioniert. Fixes gabs aber auch zum Zeitpunkt der Veröffentlichung auf allen gängigen Distros.

OpenBSD ist lt. eigener Aussage "immun" gegen diese Art von Bugs. Für FreeBSD weiß mans glaub ich noch nicht 100%ig.

Ich hab grade ne AWS Instanz mit nem Freebsd 12 gestartet und den verfügbaren PoC dort ausprobiert. Gibt ne Fehlermeldung (ja die Pfade hab ich natürlich für FreeBSD angepasst ;) ).

Code:
ec2-user@freebsd:~ $ ./a.out
/libexec/ld-elf.so.1: environment corrupt; missing value for pwnkit
ld-elf.so.1: environment corrupt; aborting

Aber das ist nur ein unbedarfter Test mit dem verfügbaren PoC, kann sein dass man sich da etwas tiefer mit den Internas auskennen muss, um das für FreeBSD zum laufen zu bringen.
 
Der Blackbox-Ansatz, den man hier für sich fahren sollte, ist zu schauen, welche Binaries sind suid root und brauch ich die. Ohne das suid-Bit passiert mit dem kaputten Code schließlich gar nichts.
 
Zurück
Oben