CVE-2026-41699: Spring GraphQL RCE-Lücke
Am 10. Juni 2026 veröffentlichte das Spring-Sicherheitsteam einen kritischen Advisory: CVE-2026-41699. Die Schwachstelle mit einem CVSS-Score von 8.1 (High) betrifft Spring-for-GraphQL-Anwendungen und ermöglicht Angreifern die Ausführung beliebigen Codes (RCE) über manipulierte GraphQL-Anfragen mit paginierten Verbindungen. Betroffene Versionen müssen umgehend aktualisiert werden.
Was ist CVE-2026-41699?
CVE-2026-41699 beschreibt eine Unsafe Deserialization-Schwachstelle im Spring-for-GraphQL-Framework. Sie tritt auf, wenn Anwendungen paginierte Felder (sogenannte Connection-Felder) über GraphQL-Queries bereitstellen. Dabei werden vom Client übermittelte Cursor-Werte deserialisiert, ohne ausreichend auf bösartige Payloads geprüft zu werden.
Die Lücke wurde von VMware intern entdeckt und am 10. Juni 2026 veröffentlicht. Sie wurde unter der CWE-502-Klasse Deserialization of Untrusted Data kategorisiert.
Welche Anwendungen sind betroffen?
Eine Anwendung ist nur dann anfällig, wenn alle der folgenden Bedingungen erfüllt sind:
- Die Anwendung nutzt Spring for GraphQL
- Es werden paginierte (Connection) Felder über GraphQL-Queries exponiert
- Im Classpath befinden sich spezifische Klassen, die Angreifer zur Ausführung unerwünschter Logik während der Deserialisierung ausnutzen können
Betroffene Versionen:
- Spring for GraphQL 2.0.0 bis 2.0.3
- Spring for GraphQL 1.4.0 bis 1.4.5
- Spring for GraphQL 1.3.0 bis 1.3.8
- Nicht mehr unterstützte Versionen sind ebenfalls betroffen
Wie funktioniert der Angriff?
Angreifer können einen speziell präparierten Cursor in einer paginierten GraphQL-Anfrage einbetten. Dieser Cursor wird serverseitig deserialisiert und führt zur Instanziierung bösartiger Klassen im Classpath — typischerweise bekannte Gadget-Chains, die über commons-collections, Jackson oder ähnliche Bibliotheken zur Remote Code Execution führen.
Da die Anfrage über das öffentliche GraphQL-Schema erfolgt, benötigt der Angreifer in der Regel keine Authentifizierung. Die Ausnutzbarkeit wird im NVD als Network mit High Impact eingestuft.
Mitigation: Patches & Workarounds
Das Spring-Team hat für alle betroffenen Version-Tracks korrigierte Releases bereitgestellt:
- 2.0.x → 2.0.4 (OSS)
- 1.4.x → 1.4.6 (OSS)
- 1.3.x → 1.3.9 (Commercial)
Die empfohlene Maßnahme ist das sofortige Upgrade auf die jeweilige Fix-Version. Das Spring-for-GraphQL-Release 2.0.4 vom 10. Juni 2026 behebt neben CVE-2026-41699 auch zwei weitere High-Severity-CVEs (CVE-2026-41700 und CVE-2026-41856).
Es sind keine weiteren Workarounds oder Konfigurationsänderungen erforderlich — ein reines Dependency-Update genügt.
Github Release 2.0.4 — Weitere Fixes
Das Release 2.0.4 enthält neben den Security-Fixes folgende Verbesserungen:
- Verbesserte Flexibilität bei Collection-Typen in JsonKeysetCursorStrategy
- Bugfix: Argument-Annotations auf Handler-Methoden in generischen Interfaces werden jetzt korrekt erkannt
- WebSocket-Keepalive-PING für alle idle Sessions
- Dependency-Upgrades: Kotlin 2.3.20, Micrometer 1.16.6, Reactor 2025.0.6, Spring Framework 7.0.8
Fazit
CVE-2026-41699 ist eine ernste Sicherheitslücke für alle Spring-for-GraphQL-Anwendungen mit paginierten Queries. Mit einem CVSS-Score von 8.1 und der Möglichkeit zur Remote Code Execution sollte das Update auf 2.0.4 (bzw. 1.4.6 oder 1.3.9) umgehend erfolgen. Da keine zusätzlichen Konfigurationsschritte nötig sind, ist das Risiko eines Patch-Einsatzes minimal — das Risiko einer Nicht-Patchung jedoch erheblich.
Quellen
- Spring Security Advisory — CVE-2026-41699
- NVD — CVE-2026-41699 Detailseite
- GitHub Release: Spring GraphQL 2.0.4
- Spring Security Advisories Übersicht
- NIST CVSS 3.1 Calculator für CVE-2026-41699
- CWE-502: Deserialization of Untrusted Data
- Spring Blog — Aktuelle Releases
- Spring GraphQL GitHub Repository
Kommentar abschicken