2 Punkte von GN⁺ 2023-10-12 | 1 Kommentare | Auf WhatsApp teilen
  • Artikel über die schwerwiegende Sicherheitslücke CVE-2023-38545, die in curl 8.4.0 entdeckt wurde und seit Langem als das gravierendste Sicherheitsproblem in curl gilt
  • Das Problem ist ein Heap-Overflow, der durch einen Fehler in der Funktion zum Verbindungsaufbau über einen SOCKS5-Proxy verursacht wird
  • Die Schwachstelle wurde Anfang 2020 eingeführt, als die Funktion von einem blockierenden Aufruf in eine nicht blockierende Zustandsmaschine umgewandelt wurde, um die Leistung bei umfangreichen parallelen Übertragungen über SOCKS5 zu verbessern
  • Der Fehler befindet sich im INIT-Zustand der Zustandsmaschine, wo eine lokale Variable gesetzt wird, die bestimmt, ob curl den Host lokal auflöst oder den Namen an den Proxy weitergibt. Ist der Hostname zu lang, wechselt der Code in den Modus für lokale Auflösung, was zu einem Speicherüberlauf führen kann, wenn der Hostname länger ist als der Zielpuffer
  • Ein Overflow kann auftreten, wenn die Puffergröße auf weniger als 65541 Byte gesetzt ist und der Hostname länger ist als die Puffergröße. Dafür muss ein Angreifer einen übergroßen Hostnamen in die Formel einspeisen, um den Fehler auszulösen
  • Ein Angreifer, der einen HTTPS-Server kontrolliert, auf den ein Client mit libcurl über einen SOCKS5-Proxy zugreift, kann der Anwendung über eine HTTP-30x-Antwort eine manipulierte Weiterleitung zurückgeben und so einen Heap-Buffer-Overflow auslösen
  • Das Problem wurde in curl 8.4.0 behoben, indem curl nun einen Fehler zurückgibt, wenn der Hostname zu lang ist, anstatt von entfernter Auflösung auf lokale Auflösung umzuschalten. Außerdem wurde ein dedizierter Testfall für dieses Szenario hinzugefügt
  • Der Autor räumt ein, dass dieser Fehler nicht entstanden wäre, wenn curl in einer speichersicheren Sprache statt in C geschrieben worden wäre, betont jedoch, dass eine Portierung von curl in eine andere Sprache derzeit nicht geplant ist
  • Der Autor schlägt vor, mehr Abhängigkeiten zuzulassen, zu nutzen und zu unterstützen, die in speichersicheren Sprachen geschrieben sind; dies sei ein praktikabler Ansatz und könnte nach und nach Teile von curl ersetzen
  • Der Autor gesteht den Fehler ein und entschuldigt sich; mit einer besseren Testsuite hätte sich die Schwachstelle erkennen lassen. Außerdem erwähnt er statische Codeanalysewerkzeuge, die das Problem in dieser Funktion nicht entdeckt haben
  • Abschließend schreibt der Autor, dass das Ausliefern eines Heap-Overflows in Code, der auf mehr als 20 Milliarden Instanzen installiert ist, keine empfehlenswerte Erfahrung ist

1 Kommentare

 
GN⁺ 2023-10-12
Hacker-News-Kommentare
  • Ein Artikel über ein Heap-Overflow-Problem in der Curl-Bibliothek, die auf vielen Geräten verwendet wird und größtenteils von einer einzigen Person geschrieben wurde.
  • Der Autor von Curl, Daniel, entschuldigt sich für einen Fehler, der auf einen Defekt zurückgeht, der im Code 1315 Tage lang unentdeckt blieb.
  • Der Artikel legt nahe, dass Probleme mit der Speichersicherheit hätten vermieden werden können, wenn Curl in einer speichersicheren Sprache statt in C geschrieben worden wäre.
  • Der Autor erwägt die Möglichkeit, Teile von Curl schrittweise durch eine speichersicherere Sprache zu ersetzen, räumt jedoch den langsamen Fortschritt einer solchen Entwicklung ein.
  • Der Autor behauptet, dass 41 % der Sicherheitslücken in Curl durch eine speichersichere Sprache hätten vermieden werden können.
  • Der Artikel wird für seine klare und offene Darstellung der Logik und Perspektive hinter dem Problem anerkannt.
  • Einige Kommentare stellen die Schwere des Problems infrage und argumentieren, dass der Angriffsvektor sehr klein sei und für eine Ausnutzung sehr spezifische Bedingungen erforderlich seien.
  • Ein Kommentar kritisiert den Codeteil, der über DNS die Identität von Nutzern preisgeben kann, die Anti-Zensur-Tools verwenden.
  • Ein weiterer Kommentar weist darauf hin, dass der Autor die in RFC1123 festgelegten Beschränkungen für DNS-Hostnamen ignoriert habe, was zu dem Problem beigetragen haben könnte.
  • Es wird erwähnt, dass das neueste Sicherheitsupdate für Windows 10 keine neue Version von Curl enthielt.