Sicherheitsanfälligkeit in ld.so OpenBSD

Dynamischer Loader ld.so, das Teil von OpenBSD ist, kann unter bestimmten Bedingungen für SUID/SGID-Anwendungen die Umgebungsvariable LD_LIBRARY_PATH beibehalten und damit ermöglichen, von Dritten stammenden Code im Kontext eines Prozesses auszuführen, der mit erhöhten Rechten läuft. Patches zur Behebung der Sicherheitsanfälligkeit sind für die Releases verfügbar 6.5 und 6.6. Binär-Patches (syspatch) für die Plattformen amd64, i386 und arm64 sind bereits in Produktion und sollten zum Zeitpunkt der Veröffentlichung dieser Nachricht zum Download verfügbar sein.

Das Problem besteht darin, dass ld.so während seiner Ausführung zunächst den Wert der Umgebungsvariable LD_LIBRARY_PATH aus der Umgebung extrahiert, ihn mit der Funktion _dl_split_path() in ein Array von Strings — Pfaden zu Verzeichnissen — umwandelt. Sollte sich später herausstellen, dass der aktuelle Prozess als SUID/SGID-Anwendung gestartet wurde, wird das erstellte Array sowie die Umgebungsvariable LD_LIBRARY_PATH geleert. Wenn während der Ausführung von _dl_split_path() jedoch ein Speicherengpass auftritt (was aufgrund einer klaren Begrenzung der Größe von Umgebungsvariablen auf 256 Kilobyte schwierig ist, aber theoretisch möglich), erhält die Variable _dl_libpath den Wert NULL, und die anschließende Überprüfung des Wertes dieser Variablen führt dazu, dass der Aufruf von _dl_unsetenv(

Sicherheitsanfälligkeit wurde von den Spezialisten Qualys, ebenso wie einige zuvor entdeckte Probleme. Die Sicherheitsforscher, die die Anfälligkeit entdeckt haben, haben die schnelle Lösung des Problems hervorgehoben: Der Patch wurde vorbereitet und die Updates innerhalb von drei Stunden nach der Benachrichtigung durch das Projekt OpenBSD veröffentlicht.

Zusatz: Der Anfälligkeit wurde die Nummer CVE-2019-19726. In der Mailingliste oss-security wurde eine offizielle Ankündigungveröffentlicht, die einen Exploit-Prototyp enthält, der in OpenBSD 6.6, 6.5, 6.2 und 6.1 auf den Architekturen
amd64 und i386 funktioniert (der Exploit kann auch für andere Architekturen angepasst werden).
Das Problem ist in der Standardinstallation ausnutzbar und ermöglicht es einem nicht privilegierten lokalen Benutzer, Code mit Root-Rechten durch die Verwendung einer Bibliothek bei der Ausführung der SUID-Utilities chpass oder passwd auszuführen. Zur Schaffung der Bedingungen für die Ausnutzung des Speicherengpasses wird die Setzung der Grenze RLIMIT_DATA über setrlimit verwendet.

Quelle: opennet.ru

Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server 🔥 Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster