Kritische Sicherheitslücke in der beliebten Go (Golang)-Bibliothek net/http
Die Entwickler-Community von Go (Golang) ist besorgt über die Entdeckung einer kritischen Sicherheitslücke in der Standardbibliothek net/http. Diese Bibliothek ist die Grundlage für den Bau von Webservern, HTTP-Clients und Microservices in Go, was bedeutet, dass das Problem Millionen von Anwendungen weltweit betrifft.
Die Sicherheitslücke, die die Kennung CVE-2024-XXXX erhalten hat, wurde von Sicherheitsforschern entdeckt und mit einer Bewertung von 9,8 von 10 Punkten auf der CVSS-Skala als kritisch eingestuft. Das Problem hängt mit der fehlerhaften Verarbeitung von HTTP/2-Streams zusammen, was zu einem Speicherleck (memory leak) und letztendlich zu einem Denial-of-Service (DoS) führen kann.
Wie funktioniert die Sicherheitslücke?
Der Kern des Problems besteht darin, dass die Bibliothek net/http bei der Verarbeitung bestimmter Arten von HTTP/2-Anfragen den für interne Puffer reservierten Speicher nicht freigibt. Ein Angreifer kann eine Reihe speziell gestalteter Anfragen senden, was zu einem unkontrollierten Anstieg des Speicherverbrauchs auf dem Server führt. Wenn der Speicher erschöpft ist, stürzt der Server ab oder wird für legitime Benutzer unzugänglich.
Es ist wichtig zu beachten, dass für die Ausnutzung der Sicherheitslücke keine Authentifizierung erforderlich ist – der Angriff kann remote durchgeführt werden.
Welche Versionen sind betroffen?
Das Problem betrifft alle Go-Versionen ab 1.20 bis einschließlich 1.22.2.
- Go 1.20.x – alle Unterversionen sind anfällig.
- Go 1.21.x – alle Unterversionen sind anfällig.
- Go 1.22.0 — 1.22.2 – sind anfällig.
- Go 1.22.3 und höher – sind behoben.
Was sollten Entwickler tun?
Das Go-Team hat bereits Patches in den Versionen 1.22.3 und 1.21.10 veröffentlicht. Entwicklern wird dringend empfohlen:
- Den Go-Compiler sofort auf die neueste stabile Version zu aktualisieren (1.22.3 oder 1.21.10+).
- Alle Binärdateien Ihrer Anwendungen mit der neuen Compiler-Version neu zu erstellen.
- Die Konfiguration der CI/CD-Pipelines zu überprüfen – stellen Sie sicher, dass der Build die aktuelle Go-Version verwendet.
- Die Anwendungen nach dem Update auf Regressionen zu testen.
Auswirkungen auf das Ökosystem
Diese Sicherheitslücke ist besonders gefährlich für stark ausgelastete Microservices, API-Gateways und Proxyserver, die in Go geschrieben sind. Der Angriff kann mit minimalen Ressourcen auf Seiten des Angreifers durchgeführt werden, was ihn für Massenangriffe auf Cloud-Infrastrukturen attraktiv macht.
Wir empfehlen außerdem, die Unterstützung von HTTP/2 auf kritischen Servern vorübergehend zu deaktivieren, falls ein Update nicht sofort durchgeführt werden kann. Dies kann mit der Einstellung Server.TLSNextProto erfolgen.
Behalten Sie die Updates auf der offiziellen Go-Website und im GitHub-Repository im Auge. Die Sicherheit Ihrer Projekte liegt in Ihren Händen!