CVE-2024-6197: Welches Risiko birgt die neue Curl- und Libcurl-Schwachstelle?
Eine neue Schwachstelle, CVE-2024-6197, betrifft die Curl- und Libcurl-Versionen 8.6.0 bis 8.8.0. Der als Use-After-Free (UAF) klassifizierte Fehler tritt ungewöhnlicherweise auf dem Stack statt auf dem Heap auf und hat mit einem CVSS-Schweregrad von 7,5 erhebliche Aufmerksamkeit erregt. Analysen des Security Research Teams von JFrog deuten jedoch darauf hin, dass die Wahrscheinlichkeit einer praktischen Ausnutzung gering ist.
Technischer Hintergrund CVE-2024-6197
CVE-2024-6197 ist eine stackbasierte UAF-Schwachstelle, die ausgelöst werden kann, wenn Curl oder Libcurl eine Verbindung zu einem bösartigen TLS-Server herstellt, der ein manipuliertes X.509-Zertifikat anbietet. Die Schwachstelle entsteht durch einen Fehler in der Libcurl-Funktion „utf8asn1str“, die ASN.1-UTF-8-Zeichenfolgen aus Zertifikaten verarbeitet. Unter bestimmten Bedingungen versucht die Funktion, einen 4-Byte-Stack-Puffer freizugeben, was zum UAF-Szenario führt. Die meisten modernen Linux-Distributionen, darunter Debian, Ubuntu und Red Hat, verfügen jedoch über Schutzmaßnahmen, die einen Absturz verursachen, anstatt die Ausführung von Code zuzulassen. Dadurch wird die Wahrscheinlichkeit einer erfolgreichen Ausnutzung erheblich verringert.
Bedingungen für die Ausnutzung
Die Ausnutzung von CVE-2024-6197 erfordert eine spezifische Kette von Ereignissen:
- Verbindung zu einem bösartigen TLS-Server: Der Server des Angreifers muss ein speziell erstelltes X.509-Zertifikat mit einem ungewöhnlichen Codierungstyp (UniversalString) anbieten, der bestimmte Zeichenanforderungen erfüllt.
- Anfälliger Curl-Build: Curl muss mit Unterstützung für bestimmte TLS-Backends (GnuTLS, wolfSSL, Schannel, Secure Transport oder mbedTLS) erstellt werden, da mit OpenSSL erstellte Versionen immun sind.
- Explizite Verwendung von „CURLINFO_CERTINFO“: Die anfällige Funktion wird nur ausgelöst, wenn das Flag CURLINFO_CERTINFO in der Curl-Konfiguration aktiviert ist oder über bestimmte CLI-Flags aufgerufen wird (z. B. „–write-out ‚%certs‘“).
Wahrscheinlichkeit einer Remote-Code-Ausführung (RCE)
Untersuchungen zeigen, dass die Ausnutzung dieser Schwachstelle für RCE praktisch unmöglich ist. Zu den wichtigsten Faktoren, die die Ausnutzung einschränken, gehören:
- Stack-Integritätsprüfungen: Viele Linux-Distributionen enthalten Stack-Integritätsprüfungen (z. B. Glibc- und Musl libc-Implementierungen), die eine sofortige Beendigung des Prozesses verursachen, wenn ein Stack-Pointer fälschlicherweise freigegeben wird.
- Begrenzte anfällige Setups: Die meisten gängigen Linux-Distributionen verwenden standardmäßig OpenSSL, das nicht betroffen ist. Darüber hinaus ist UniversalString eine veraltete Kodierung, die in Zertifikaten nur selten verwendet wird.
- Abschwächung in Linux-Distributionen: Selbst wenn versucht wurde, die Sicherheitsanfälligkeit in Distributionen wie Alpine Linux 3.10 (bei der die C-Implementierung nicht abstürzt) zu erzwingen, schlugen Versuche, RCE zu erreichen, fehl. Anstatt die Kontrolle an den Angreifer abzugeben, stößt der Prozess auf einen Fehler, wodurch eine Beschädigung des Stacks verhindert wird.
Auswirkungen von CVE-2024-6197 auf Benutzer
Angesichts dieser Faktoren beschränkt sich die primäre Auswirkung von CVE-2024-6197 auf Denial-of-Service-Angriffe (DoS). Bei erfolgreicher Auslösung kann der Curl-Client-Prozess abstürzen. Für die meisten Benutzer, insbesondere für Benutzer von Linux-Distributionen wie Ubuntu, Debian und Red Hat, ist es jedoch unwahrscheinlich, dass die Sicherheitsanfälligkeit Auswirkungen hat, da integrierte Schutzmaßnahmen vorhanden sind.
Behebung der Sicherheitslücke
Um diese Sicherheitslücke zu beheben, wird Benutzern empfohlen, Curl und Libcurl auf Version 8.9.0 zu aktualisieren. Dieses Update behebt den Fehler und stellt die Kompatibilität mit Sicherheitspatches sicher, die von den wichtigsten Linux-Distributionen bereitgestellt werden. Viele Distributionen, darunter Ubuntu, Debian und Red Hat, haben bereits Updates herausgegeben. Benutzer sollten ihre Umgebungen auf anfällige Versionen (8.6.0 bis 8.8.0) überprüfen und bei Bedarf Sicherheitspatches anwenden.
Fazit
Trotz eines hohen CVSS-Scores von 7,5 erweist sich CVE-2024-6197 als deutlich weniger riskant als zunächst befürchtet. Die strikten Voraussetzungen für eine Ausnutzung sowie Abhilfemaßnahmen in gängigen Linux-Distributionen machen eine Remote Code Execution (RCE) in realen Szenarien nahezu ausgeschlossen. Das primäre Risiko beschränkt sich auf Denial-of-Service (DoS)-Angriffe, deren Auswirkungen jedoch ebenfalls begrenzt sind. Nutzer sollten dennoch dringend auf Curl 8.9.0 aktualisieren, um umfassenden Schutz zu gewährleisten. Dieser Fall verdeutlicht, dass CVSS-Scores allein nicht immer die tatsächliche Gefährdung widerspiegeln, und betont die Relevanz einer kontextbasierten Risikobewertung.
Die komplette Untersuchung des JFrog Security Research Teams finden Sie hier.