Elixir-grpc Grpc Server: Endlosschleife (CVE-2026-121809)
Veröffentlicht Zuletzt geändert Quellen: CVE.org, EUVD, OSV
Was ist betroffen, was ist zu tun
Aktualisieren Sie Elixir-grpc Grpc Server auf Version 1.1.0, Elixir-grpc Grpc auf Version 1.0.0.
- Betroffen
- Elixir-grpc Grpc Server
lt 1.0.0..1.1.0 - Elixir-grpc Grpc
lt 0.3.1..1.0.0
- Elixir-grpc Grpc Server
- Behoben in
- Elixir-grpc Grpc Server
1.1.0 - Elixir-grpc Grpc
1.0.0
- Elixir-grpc Grpc Server
Unklar, ob und wie Sie betroffen sind? Frage zu dieser Schwachstelle stellen
Metriken
8,2
XIEM Effective CVSS
Höchste verfügbare CVSS-Bewertung aus NVD- und Herstellerangaben.
Quelle: Hersteller (CNA), CVSS v4
8,2
CVSS v4
Schweregrad Hoch auf der Skala von 0 bis 10.
Quelle: CVE.org, EUVD, OSV
—
EPSS-Score
Für diese Schwachstelle liegt kein Wert vor.
Alle Metriken anzeigen
- Schweregrad
- Hoch
Priorität (0–325)
Der Priorisierungs-Score ist eine zusammengeführte Kennzahl, die mehrere Einzelsignale zu einer einzigen, handlungsleitenden Rangfolge verdichtet: technische Schwere (CVSS), Ausnutzungswahrscheinlichkeit (EPSS), der Status als bekannt ausgenutzt (KEV) und der Kontext des betroffenen Assets. Ziel ist die Antwort auf die einzig wirklich wichtige Frage im Schwachstellenmanagement: Was zuerst?
Im Glossar lesen- 71.00 Methodik
Exploit-Reife
Ein Exploit ist Code oder eine Technik, die eine konkrete Schwachstelle gezielt ausnutzt, um ein unbeabsichtigtes Verhalten zu erzwingen — etwa Code auszuführen oder Rechte auszuweiten. Er ist das Werkzeug, das aus einer theoretischen Lücke einen praktischen Angriff macht.
Im Glossar lesen- kein öffentlicher PoC bekannt
XIEM Effective CVSS
XIEM® ist das gestufte Managed-Security-Betriebsmodell von NEOSEC und eine eingetragene Marke der NEOSEC GmbH. Es erweitert klassisches SIEM — die zentrale Sammlung, Normalisierung und Korrelation sicherheitsrelevanter Ereignisse — um Endpunkt-Forensik, Netzwerk-Sichtbarkeit und Täuschungstechnik und führt diese zu drei aufeinander aufbauenden Stufen zusammen: Sentry, Orchestrate und Command.
Im Glossar lesen- 8,2 Methodik
CVSS v4
CVSS ist der weltweit verbreitete, offene Standard zur Bewertung der technischen Schwere einer Schwachstelle auf einer Skala von 0 bis 10. Er beschreibt, wie leicht eine Lücke ausnutzbar ist und welchen Schaden sie anrichten kann — nicht jedoch, wie wahrscheinlich ihre tatsächliche Ausnutzung ist. CVSS und das ergänzende EPSS beantworten bewusst unterschiedliche Fragen.
Im Glossar lesen- 8,2
KEV-Status
Der KEV-Katalog ist eine von der US-Behörde CISA gepflegte Liste von Schwachstellen, für die eine aktive Ausnutzung in der Praxis nachgewiesen ist. Er beantwortet nicht die Frage „wie schwer?“, sondern „wird es bereits angegriffen?“ — und priorisiert damit das Patchen scharf.
Im Glossar lesen- —
- Veröffentlicht
CWE
CWE ist ein Katalog typischer Schwächen-Arten in Software und Hardware — etwa fehlerhafte Eingabevalidierung, unsichere Speicherbehandlung oder mangelhafte Authentisierung. Während eine CVE eine konkrete Schwachstelle in einem konkreten Produkt benennt, beschreibt eine CWE die zugrunde liegende Fehlerklasse.
Im Glossar lesen- CWE-400, CWE-835
Erkennungsregeln
Für diese Schwachstelle liegt noch keine NEOSEC-Erkennungsregel vor.
Einordnung nach NIS2 und CRA
Regelbasierte Einordnung aus Ausnutzungsstatus und Schweregrad. Sie ersetzt keine Prüfung im Einzelfall.
NIS2
NIS2 ist die EU-Richtlinie (EU) 2022/2555 zur Erhöhung des Cybersicherheitsniveaus in der Union. Sie weitet Pflichten gegenüber der ersten NIS-Richtlinie deutlich aus: mehr Sektoren, verbindliches Risikomanagement, gestufte Meldepflichten und persönliche Verantwortung der Geschäftsleitung.
Im Glossar lesen- Hohe technische Schwere: Bewerten und beheben Sie die Schwachstelle im Schwachstellenmanagement nach Art. 21 Abs. 2 lit. e NIS2 und dokumentieren Sie die Entscheidung.
CRA
Der CRA ist die EU-Verordnung (EU) 2024/2847 mit horizontalen Cybersicherheitsanforderungen an „Produkte mit digitalen Elementen“ — von Industriesteuerungen über Software bis zu vernetzten Verbrauchergeräten. Erstmals müssen Hersteller Sicherheit über den gesamten Produktlebenszyklus gewährleisten, Schwachstellen behandeln und Sicherheitsupdates bereitstellen.
Im Glossar lesen- Ab dem 11.12.2027 verpflichtet Anhang I Teil II CRA Hersteller betroffener Produkte mit digitalen Elementen, Schwachstellen unverzüglich zu behandeln und Sicherheitsupdates bereitzustellen.
ISO/IEC 27001
ISO/IEC 27001 ist der international führende Standard für ein Informationssicherheits-Managementsystem (ISMS). Er beschreibt einen risikobasierten, prozessorientierten Rahmen, um Informationssicherheit systematisch zu planen, umzusetzen, zu überprüfen und zu verbessern.
Im Glossar lesen- Maßnahme A.8.8, Management technischer Schwachstellen: Relevanz für Ihre Systeme bewerten, Behebung einplanen und nachweisen.
Beschreibung
Zusammenfassung
Schwachstelle mit unerreichbarem Exit-Zustand ('Endlosschleife') in elixir-grpc grpc_server und grpc ermöglicht es nicht authentifizierten Angreifern, einen BEAM-Scheduler dauerhaft zu belegen, indem sie eine client-streaming- oder bidirektionale-streaming-Anfrage senden, deren Körper innerhalb einer gRPC-Nachricht endet.
GRPC.Server.Adapters.Cowboy.read_stream/1 (grpc_server/lib/grpc/server/adapters/cowboy.ex, und der Cowboy-Adapter in grpc vor dem Paket-Split) fordert mehr Daten an, sobald der Puffer keine vollständige Nachricht enthält. Sobald der Anfragekörper endet, gibt jeder weitere Lesevorgang einen leeren Chunk zurück, sodass der Puffer sich nicht ändert und die Funktion ohne Ende wiederholt. Ein einzelner 5-Byte-Längenpräfix, der mit END_STREAM gesendet wird, hält einen Scheduler so lange beschäftigt, wie die Verbindung offen bleibt, und wiederholte Anfragen erschöpfen alle Scheduler.
Dieses Problem betrifft grpc_server: von 1.0.0 bis 1.1.0; grpc: von 0.3.1 bis 1.0.0.
Details
1. Eine unvollständige Nachricht
Ein Client sendet ein 5-Byte-gRPC-Längenpräfix, das mehr Bytes als folgen, deklariert, und beendet den Anfragekörper mit END_STREAM.
2. Der Leser fordert mehr
read_stream/1 ruft GRPC.Message.get_message/1 auf, das false zurückgibt, weil die deklarierte Nachricht unvollständig ist. read_stream/1 setzt dann need_more und liest erneut durch Handler.read_body/1.
3. Jedes Lesen ist leer
Sobald der Körper gelesen wurde, gibt der Handlers async_read_body/2 (und cowboy_req:read_body/2 in älteren Versionen) sofort einen leeren Chunk zurück. Der Puffer bleibt gleich, die Exit-Klausel für einen leeren, fertigen Puffer wird nie erfüllt, und die Schleife wiederholt sich.
4. Kein Timeout beendet es
Jede Iteration ist eine Nachrichtenrückmeldung zwischen zwei lokalen Prozessen, kein Socket-Wait, sodass keine I/O-Timeouts gelten. Ohne grpc-timeout-Header gibt es kein Fristende, und der Adapter-Timeout für Inaktivität ist standardmäßig :infinity. Ein Scheduler bleibt bei voller Auslastung, bis der Client die Verbindung schließt.
Proof of Concept
- Starte einen Server, der eine client-streaming RPC bereitstellt, zum Beispiel
RouteGuide.RecordRoute. - Öffne eine HTTP/2-Verbindung und sende
HEADERSfür diese Methode mitcontent-type: application/grpcund ohnegrpc-timeout. - Sende einen
DATA-Frame mitEND_STREAM, der nur das 5-Byte-Präfix00 00 00 00 64enthält, das eine 100-Byte-Nachricht deklariert. - Halte die Verbindung offen und beobachte, dass keine Antwort eintrifft und ein BEAM-Scheduler bei 100% CPU-Auslastung bleibt, bis die Verbindung geschlossen wird.
Auswirkungen
Ein nicht authentifizierter Client kann einen Scheduler pro offener Verbindung mit einer 5-Byte-Anfrage beschäftigen, und genügend Verbindungen verweigern den Dienst für jede Anwendung auf dem Knoten.
Konfigurationen
Der Server muss mindestens eine client-streaming- oder bidirektionale-streaming-RPC-Methode bereitstellen.
Originalquelle nur englisch verfügbar, maschinell ins Deutsche übersetzt.
Quelle: NVD (NIST), ENISA EUVD, cvelistv5, OSV (Open Source Vulnerabilities), CVE.org (MITRE)
Betroffene Produkte
Betroffen sind die folgenden Versionen. Ältere Stände derselben Reihe sind ebenfalls verwundbar, sofern nicht anders angegeben.
| Betroffene Versionen | Behoben in | ||
|---|---|---|---|
| elixir-grpc | grpc |
|
|
| elixir-grpc | grpc_server |
|
|
| hex | grpc |
|
|
| hex | grpc_server |
|
|
Hersteller und Produkte
Weakness-Klassen (CWE)
CWE-400Uncontrolled Resource Consumption
Class
The product does not properly control the allocation and maintenance of a limited resource.
Eintrag bei MITRE CWE-400CWE-835Loop with Unreachable Exit Condition ('Infinite Loop')
Base
The product contains an iteration or loop with an exit condition that cannot be reached, i.e., an infinite loop.
Eintrag bei MITRE CWE-835
Quellen & Referenzen
- github.comCPU exhaustion via a truncated gRPC message on streaming RPCs in elixir-grpc grpc_servereuvd, Herstellerhinweis, related, advisory
- cna.erlef.orgEEF CNA record for CVE-2026-121809euvd, related, web
- OSV (Open Source Vulnerabilities)OSV record EEF-CVE-2026-121809euvd, related
- github.comIntroducing commit 0332faa in elixir-grpc/grpceuvd, related, web
- github.comFix commit 38955f1 in elixir-grpc/grpceuvd, Patch, fix
- github.comIntroducing commit 6d8a09a in elixir-grpc/grpceuvd, related, web
- hex.pmpackages/grpc_serverpackage
- hex.pmpackages/grpcpackage
Änderungen an der CVE
Wer diese CVE wann geändert hat: die NVD (Analyse, betroffene Produkte, CVSS), der Herausgeber der CVE (CNA) und ergänzende Stellen wie CISA (ADP).
Eintrag geändertCISA ADP
CISA-Einschätzung (SSVC): Ausnutzung: keine bekannt, automatisierbar: nein
Einzeländerung im Original anzeigen
Einzeländerungen dieses Ereignisses im Original der NVD Art Aktion Vorher Nachher SSVC-Einschätzung ergänzt —{"id":"CVE-2026-121809","role":"CISA Coordinator","options":[{"exploitation":"none"},{"automatable":"no"},{"technicalImpact":"partial"}],"version":"2.0.3","timestamp":"2026-11-13T17:55:12.226355Z"}Kennung der Quelle: 134c704f-9b21-4f2e-91b3-4a467353bcc0
Neu erfasstEEF
CVSS V4.0: AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Schwachstellentyp: CWE-400, CWE-835
Beschreibung erfasst oder geändert
Neue Referenzen:- https://cna.erlef.org/cves/CVE-2026-121809.html
- https://github.com/elixir-grpc/grpc/commit/0332faae5f5e132314794dbfdae5edecbccea292
- https://github.com/elixir-grpc/grpc/commit/38955f1392cbf08eef231a347348445410455c85
- https://github.com/elixir-grpc/grpc/commit/6d8a09ad919e208fb600538ac8b19bd733a04310
und 2 weitere Referenzen
11 Einzeländerungen im Original anzeigen
Einzeländerungen dieses Ereignisses im Original der NVD Art Aktion Vorher Nachher Beschreibung ergänzt —Loop with Unreachable Exit Condition ('Infinite Loop') vulnerability in elixir-grpc grpc_server and grpc allows unauthenticated attackers to occupy a BEAM scheduler indefinitely via a client-streaming or bidirectional-streaming request whose body ends inside a gRPC message. GRPC.Server.Adapters.Cowboy.read_stream/1 (grpc_server/lib/grpc/server/adapters/cowboy.ex, and the Cowboy adapter in grpc before the package split) asks for more data whenever the buffer does not hold a complete message. Once the request body has ended, every further read returns an empty chunk, so the buffer never changes and the function retries without end. A single 5-byte length prefix sent with END_STREAM keeps one scheduler busy for as long as the connection stays open, and repeated requests exhaust all schedulers. This issue affects grpc_server: from 1.0.0 before 1.1.0; grpc: from 0.3.1 before 1.0.0.CVSS ergänzt —AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XSchwachstellentyp (CWE) ergänzt —CWE-400Schwachstellentyp (CWE) ergänzt —CWE-835Betroffene Versionen (Herausgeber) ergänzt —New affected value received. <a href="https://github.com/CVEProject/cvelistV5/blob/main/cves/2026/121xxx/CVE-2026-121809.json">CVE-2026-121809</a>Referenz ergänzt —https://cna.erlef.org/cves/CVE-2026-121809.htmlReferenz ergänzt —https://github.com/elixir-grpc/grpc/commit/0332faae5f5e132314794dbfdae5edecbccea292Referenz ergänzt —https://github.com/elixir-grpc/grpc/commit/38955f1392cbf08eef231a347348445410455c85Referenz ergänzt —https://github.com/elixir-grpc/grpc/commit/6d8a09ad919e208fb600538ac8b19bd733a04310Referenz ergänzt —https://github.com/elixir-grpc/grpc/security/advisories/GHSA-c2h9-f9cc-27xhReferenz ergänzt —https://osv.dev/vulnerability/EEF-CVE-2026-121809Kennung der Quelle: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
Badge einbetten
Zeigen Sie Schweregrad und KEV-Status dieser Schwachstelle auf Ihrer Seite – mit Link hierher. Das Bild wird stündlich aktualisiert.
<a href="https://intel.neosec.eu/cve/CVE-2026-121809"><img src="https://intel.neosec.eu/badge/cve/CVE-2026-121809.svg" alt="CVE-2026-121809 – NEOSEC Intel" height="20"></a>