CVE-2025-39682CriticalCVSS: 9.8Kritische Linux-TLS-Lücke CVE-2025-39682
Im Linux-Kernel wurde mit CVE-2025-39682 eine kritische Schwachstelle (CVSS 9.8) in der TLS-Empfangsverarbeitung behoben. Fehlerhaft behandelte Zero-Length-Records auf der rx_list können die Stabilität von TLS-Verbindungen beeinträchtigen. Administratoren sollten die bereitgestellten Kernel-Patches umgehend einspielen.
METADATEN
- Entdeckt:
- 05.09.2025
- Patch verfügbar:
- Ja
BETROFFENE SYSTEME
- •Linux Kernel 6.0
- •Linux Kernel 6.1.149
- •Linux Kernel 6.6.103
- •Linux Kernel 6.12.44
- •Linux Kernel 6.16.4
- •Linux Kernel 6.17
Kritische Linux-TLS-Lücke CVE-2025-39682
Zusammenfassung
Im Linux-Kernel wurde eine kritische Schwachstelle in der TLS-Subsystem-Verarbeitung auf Empfangsseite (rx) behoben. Der Fehler betrifft die Behandlung von Zero-Length-Records auf der rx_list und wird mit CVSS 9.8 als Critical eingestuft. Betroffen sind mehrere stabile Kernel-Zweige ab 6.0 bis 6.17. Für alle unterstützten Zweige stehen Patches bereit.
Technische Details
CVE-2025-39682 beschreibt einen Logikfehler in tls bei recvmsg():
Jeder recvmsg()-Aufruf darf entweder nur zusammenhängende DATA-Records (beliebig viele) oder genau einen Non-DATA-Record verarbeiten. Wechselt der Typ des nächsten Records, wird die Verarbeitungsschleife abgebrochen. Bereits entschlüsselte Records – etwa bei TLS 1.3, wo der Typ erst nach Entschlüsselung bekannt ist – werden dabei auf die rx_list zurückgestellt und beim nächsten recvmsg() wieder aufgenommen.
Nach einer Zero-Copy-Entschlüsselung ist ein Zurückstellen nicht möglich, da direkt in den Userspace-Puffer entschlüsselt wurde und kein skb zum Queuen existiert (darg.skb zeigt nur auf das Ciphertext-skb für Metadaten wie Länge). Da nur Data-Records Zero-Copy nutzen dürfen und die Schleife nach jedem Non-Data-Record abbricht, sollte dieser Fall nicht auftreten.
Der übersehene Corner-Case: Kommt der initiale Record von der rx_list und hat Länge Null, kann es zu einer fehlerhaften Zustandsbehandlung kommen. Der Fix korrigiert die Behandlung von Zero-Length-Records auf der rx_list und stellt sicher, dass Typwechsel und Zero-Copy-Pfade konsistent gehandhabt werden.
CVE-ID: CVE-2025-39682 CVSS Score: 9.8 (Critical) Hersteller: Linux Komponente: Kernel TLS rx-Pfad / recvmsg()
Betroffene Systeme
- Linux Kernel 6.0
- Linux Kernel 6.1.149
- Linux Kernel 6.6.103
- Linux Kernel 6.12.44
- Linux Kernel 6.16.4
- Linux Kernel 6.17
Betroffen sind Systeme, die kTLS (Kernel TLS) auf Empfangsseite nutzen, insbesondere mit TLS 1.3 und Zero-Copy-Receive-Pfaden. Sowohl Server als auch Clients mit entsprechend konfiguriertem kTLS können betroffen sein.
Empfehlungen und Maßnahmen
- Patches umgehend einspielen: Aktualisieren Sie auf die korrigierten Stable-Versionen 6.1.149, 6.6.103, 6.12.44, 6.16.4 bzw. 6.17 mit den unten genannten Fixes und starten Sie betroffene Systeme neu.
- Bestandsaufnahme: Prüfen Sie mit
uname -r, ob eingesetzte Kernel-Versionen in den betroffenen Zweigen liegen und ob kTLS aktiv genutzt wird. - Workaround prüfen: Falls kein sofortiges Update möglich ist, prüfen Sie, ob kTLS temporär deaktiviert bzw. TLS in Userspace (z. B. OpenSSL ohne kTLS-Offload) terminiert werden kann.
- Monitoring: Achten Sie auf Abstürze, Hangs oder Anomalien bei TLS-Verbindungen sowie entsprechende Kernel-Logs (oops, WARN).
- Lieferketten beachten: Bei Distributionen, Containern und Appliances Hersteller- bzw. Distributions advisories verfolgen und bereitgestellte Kernel-Updates übernehmen.
Quellen
- https://git.kernel.org/stable/c/2902c3ebcca52ca845c03182000e8d71d3a5196f
- https://git.kernel.org/stable/c/c09dd3773b5950e9cfb6c9b9a5f6e36d06c62677
- https://git.kernel.org/stable/c/3439c15ae91a517cf3c650ea15a8987699416ad9
- https://git.kernel.org/stable/c/29c0ce3c8cdb6dc5d61139c937f34cb888a6f42e
- https://git.kernel.org/stable/c/62708b9452f8eb77513115b17c4f8d1a22ebf843
REFERENZEN
- https://git.kernel.org/stable/c/2902c3ebcca52ca845c03182000e8d71d3a5196f
- https://git.kernel.org/stable/c/c09dd3773b5950e9cfb6c9b9a5f6e36d06c62677
- https://git.kernel.org/stable/c/3439c15ae91a517cf3c650ea15a8987699416ad9
- https://git.kernel.org/stable/c/29c0ce3c8cdb6dc5d61139c937f34cb888a6f42e
- https://git.kernel.org/stable/c/62708b9452f8eb77513115b17c4f8d1a22ebf843