Dynamischer Loader , das in OpenBSD enthalten ist, kann unter bestimmten Bedingungen fĂŒr -Anwendungen die Umgebungsvariable LD_LIBRARY_PATH belassen und somit das Laden von Drittanbieter-Code im Kontext eines mit erhöhten Rechten laufenden Prozesses ermöglichen. Patches zur Behebung der Schwachstelle sind fĂŒr die Releases verfĂŒgbar. und . BinĂ€r-Patches () fĂŒr die Plattformen amd64, i386 und arm64 sind bereits in Produktion und sollten zum Zeitpunkt der Veröffentlichung dieser Nachricht verfĂŒgbar sein.
Das Problem besteht darin, dass ld.so zunĂ€chst den Wert der Umgebungsvariable LD_LIBRARY_PATH extrahiert, diesen mit der Funktion _dl_split_path() in ein Array von Strings â Pfaden zu Verzeichnissen umwandelt. Wenn sich spĂ€ter herausstellt, dass der aktuelle Prozess als SUID/SGID-Anwendung lĂ€uft, werden das erstellte Array und die Umgebungsvariable LD_LIBRARY_PATH gelöscht. Falls wĂ€hrend der AusfĂŒhrung von _dl_split_path() jedoch ein Speichermangel auftritt (was aufgrund der expliziten Begrenzung der GröĂe von Umgebungsvariablen auf 256 Kilobyte schwer zu erreichen ist, aber theoretisch möglich), erhĂ€lt die Variable _dl_libpath den Wert NULL, und die folgende ĂberprĂŒfung des Wertes dieser Variablen lĂ€sst den Aufruf von _dl_unsetenv(âLD_LIBRARY_PATHâ) auslassen.
Sicherheitsforscher haben eine Schwachstelle entdeckt , ebenso wie Probleme. Die Forscher, die die Schwachstelle entdeckt haben, haben die Schnelligkeit der Problemlösung hervorgehoben: Der Patch wurde vorbereitet und die Updates innerhalb von drei Stunden nach der Benachrichtigung durch das OpenBSD-Projekt veröffentlicht.
Zusatz: Dem Problem wurde die Nummer zugewiesen. In der Mailingliste oss-security wurde eine , die einen Exploit-Prototyp enthÀlt, aktiviert in OpenBSD 6.6, 6.5, 6.2 und 6.1 auf den Architekturen
amd64 und i386 (der Exploit kann auch fĂŒr andere Architekturen angepasst werden).
Das Problem ist in der Standardinstallation ausnutzbar und erlaubt es einem unprivilegierten lokalen Benutzer, Code mit Root-Rechten ĂŒber die Bibliotheksersetzung beim Start der SUID-Utilities chpass oder passwd auszufĂŒhren. Um die Bedingungen fĂŒr die Ausnutzung zu schaffen, wird eine SpeichergrenzenbeschrĂ€nkung RLIMIT_DATA ĂŒber setrlimit gesetzt.
Quelle: opennet.ru
