HochCVE-2026-124278

    Elixir-grpc Grpc Server: Umgehung der Autorisierung über nutzergesteuerten Schlüssel (CVE-2026-124278)

    Veröffentlicht Zuletzt geändert Quellen: OSV, EUVD, CVE.org

    Teilen

    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.8.0..1.0.0
    Behoben in
    • Elixir-grpc Grpc Server 1.1.0
    • Elixir-grpc Grpc 1.0.0

    Unklar, ob und wie Sie betroffen sind? Frage zu dieser Schwachstelle stellen

    Metriken

    7,6

    XIEM Effective CVSS

    Höchste verfügbare CVSS-Bewertung aus NVD- und Herstellerangaben.

    Quelle: Hersteller (CNA), CVSS v4

    7,6

    CVSS v4

    Schweregrad Hoch auf der Skala von 0 bis 10.

    Quelle: OSV, EUVD, CVE.org

    —

    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
    68.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
    7,6 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
    7,6
    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-436, CWE-639

    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

    Eine Umgehung der Autorisierung durch eine von Benutzern kontrollierte Schlüssel-Schwachstelle in elixir-grpc grpc_server und grpc ermöglicht es einem Angreifer, einen Handler dazu zu bringen, auf eine andere Ressource als die im URL einer HTTP-transcodierten Route genannte zu wirken, indem er eine Anfrage mit einem gRPC Content-Type sendet.

    Nur der Transcodierungsabschnitt von GRPC.Server.do_handle_request/4 (grpc_server/lib/grpc/server.ex, und lib/grpc/server.ex vor dem Paket-Split) wendet die Pfadbindungen der Route auf die Anfrage-Nachricht an. Der Cowboy-Handler wählt diesen Abschnitt basierend auf dem Content-Type der Anfrage aus, nicht basierend auf der Route. Eine Anfrage an eine transcodierte URL mit application/grpc oder application/grpc-web wird allein aus dem Body dekodiert, so dass jedes pfadgebundene Feld seinen Wert aus dem Body bezieht. Ein Gateway, Proxy-Regel oder WAF, das auf dem URL-Pfad autorisiert, sieht eine Ressource, während der Handler eine andere erhält.

    Dieses Problem betrifft grpc_server: von 1.0.0 bis 1.1.0; grpc: von 0.8.0 bis 1.0.0.

    Details

    1. Der Header wählt den Abschnitt aus

    Der Cowboy-Handler leitet den Zugriffsmodus aus dem Content-Type der Anfrage ab. application/json wählt :http_transcoding, application/grpc wählt :grpc und application/grpc-web+proto wählt :grpcweb. Der Router passt immer noch das transcodierte URL-Template an und extrahiert seine Pfadbindungen.

    2. Bindungen werden in einem Abschnitt nur angewendet

    GRPC.Server.do_handle_request/4 liest die Bindungen mit adapter.get_bindings/1 und fusioniert sie durch GRPC.Server.Transcode.map_request/5 nur im :http_transcoding-Abschnitt. Die unary- und request-streaming-Abschnitte dekodieren den Body allein mit dem ausgewählten Codec. GRPC.Codec.Proto ist in den Standard-Codecs jedes Servers enthalten, so dass application/grpc immer akzeptiert wird.

    3. Die HTTP/1.1-Guard-Klausel stimmt nie überein

    resolve_access_mode/3 hat eine Klausel, die die Transcodierung für HTTP/1.1-Anfragen erzwingt. Sie stimmt mit der Version als Binärstring "HTTP/1.1" überein, während Cowboy die Version als Atom speichert, so dass die Klausel nie angewendet wird und die Anfrage über einfaches HTTP/1.1 funktioniert.

    4. Ergebnis

    Eine Anfrage an /v1/messages/alice mit Content-Type: application/grpc und einer Nachricht, die name auf victim setzt, erreicht den Handler mit name auf victim gesetzt. Mit einer leeren Nachricht ist das Feld leer: die Pfadbindung wird nie konsultiert.

    Proof of Concept

    1. Starte einen Server mit http_transcode: true und einer transcodierten Route, die ein Feld vom Pfad bindet, zum Beispiel GET /v1/messages/{name}.
    2. Baue einen gRPC-Frame, dessen Nachricht name auf victim setzt.
    3. Sende ihn über HTTP/1.1 als GET /v1/messages/alice mit Content-Type: application/grpc.
    4. Beobachte, dass der Handler name auf victim erhält, nicht alice.

    Auswirkungen

    Ein Angreifer, dessen Anfragen durch den URL-Pfad autorisiert werden, kann den Handler dazu bringen, eine Ressource zu lesen oder zu ändern, die der Pfad nicht nennt, wie zum Beispiel Daten eines anderen Mandanten.

    Konfigurationen

    Die HTTP-zu-gRPC-Transcodierung muss mit http_transcode: true aktiviert sein. Der Zugriff auf eine Ressource muss auf Basis des URL-Pfads und nicht auf Basis der dekodierten Anfrage entschieden werden, zum Beispiel durch ein API-Gateway, eine Proxy-Regel oder einen WAF vor dem Server.

    Originalquelle nur englisch verfügbar, maschinell ins Deutsche übersetzt.

    Quelle: OSV (Open Source Vulnerabilities), ENISA EUVD, NVD (NIST), CVE.org (MITRE), cvelistv5

    Betroffene Produkte

    Betroffen sind die folgenden Versionen. Ältere Stände derselben Reihe sind ebenfalls verwundbar, sofern nicht anders angegeben.

    Betroffene Produkte
    Betroffene VersionenBehoben in
    elixir-grpcgrpc
    • 0.8.0 – < 1.0.0
    • 1.0.0
    elixir-grpcgrpc_server
    • 1.0.0 – < 1.1.0
    • 1.1.0
    hexgrpc
    • 0.11.1
    • 0.10.1
    • 0.11.0
    • 0.8.1
    • 0.11.5
    • 0.10.0
    • 0.9.0
    • 0.11.2
    • 0.11.3
    • 0.11.4
    • 0.10.2
    • 1.0.0-rc.1
    • 0.8.0
    • —
    • —
    • —
    • —
    • —
    • —
    • —
    • —
    • —
    • —
    • —
    • —
    • 1.0.0
    hexgrpc_server
    • 1.0.3
    • 1.0.2
    • 1.0.6
    • 1.0.0
    • 1.0.1
    • 1.0.5
    • 1.0.4
    • —
    • —
    • —
    • 1.1.0
    • —
    • —
    • —

    Hersteller und Produkte

    Weakness-Klassen (CWE)

    • CWE-436Interpretation Conflict

      Class

      Product A handles inputs or steps differently than Product B, which causes A to perform incorrect actions based on its perception of B's state.

      Eintrag bei MITRE CWE-436
    • CWE-639Authorization Bypass Through User-Controlled Key

      Base

      The system's authorization functionality does not prevent one user from gaining access to another user's data or record by modifying the key value identifying the data.

      Eintrag bei MITRE CWE-639

    Quellen & Referenzen

    • github.comPath bindings ignored for gRPC Content-Types on transcoded routes in elixir-grpc grpc_serveradvisory, Herstellerhinweis, related, euvd
    • cna.erlef.orgEEF CNA record for CVE-2026-124278web, related, euvd
    • github.comIntroducing commit 0332faa in elixir-grpc/grpcweb, related, euvd
    • github.comFix commit 953ab98 in elixir-grpc/grpcfix, Patch, euvd
    • github.comIntroducing commit 8aaf3d3 in elixir-grpc/grpcweb, related, euvd
    • hex.pmpackages/grpc_serverpackage
    • hex.pmpackages/grpcpackage
    • OSV (Open Source Vulnerabilities)OSV record EEF-CVE-2026-124278related, euvd

    Ä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).

    1. Neu erfasstEEF

      11 Einzeländerungen im Original anzeigen
      Einzeländerungen dieses Ereignisses im Original der NVD
      ArtAktionVorherNachher
      Beschreibungergänzt
      —
      Authorization Bypass Through User-Controlled Key vulnerability in elixir-grpc grpc_server and grpc allows an attacker to make a handler act on a resource other than the one named in the URL of an HTTP-transcoded route, via a request with a gRPC Content-Type. Only the transcoding clause of GRPC.Server.do_handle_request/4 (grpc_server/lib/grpc/server.ex, and lib/grpc/server.ex before the package split) applies the route's path bindings to the request message. The Cowboy handler picks that clause from the request Content-Type, not from the route. A request to a transcoded URL with application/grpc or application/grpc-web is decoded from the body alone, so every path-bound field takes its value from the body. A gateway, proxy rule or WAF that authorizes on the URL path sees one resource while the handler receives another. This issue affects grpc_server: from 1.0.0 before 1.1.0; grpc: from 0.8.0 before 1.0.0.
      CVSSergänzt
      —
      AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/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:X
      Schwachstellentyp (CWE)ergänzt
      —
      CWE-436
      Schwachstellentyp (CWE)ergänzt
      —
      CWE-639
      Betroffene Versionen (Herausgeber)ergänzt
      —
      New affected value received. <a href="https://github.com/CVEProject/cvelistV5/blob/main/cves/2026/124xxx/CVE-2026-124278.json">CVE-2026-124278</a>
      Referenzergänzt
      —
      https://cna.erlef.org/cves/CVE-2026-124278.html
      Referenzergänzt
      —
      https://github.com/elixir-grpc/grpc/commit/0332faae5f5e132314794dbfdae5edecbccea292
      Referenzergänzt
      —
      https://github.com/elixir-grpc/grpc/commit/8aaf3d3a8c4c7b08ac65e9c6f254e0d24da1d048
      Referenzergänzt
      —
      https://github.com/elixir-grpc/grpc/commit/953ab980d8a127e895d3ab9505fc4b9337bb32f7
      Referenzergänzt
      —
      https://github.com/elixir-grpc/grpc/security/advisories/GHSA-xc5v-89vq-hv5m
      Referenzergänzt
      —
      https://osv.dev/vulnerability/EEF-CVE-2026-124278

      Kennung 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.

    Badge-Vorschau für CVE-2026-124278
    <a href="https://intel.neosec.eu/cve/CVE-2026-124278"><img src="https://intel.neosec.eu/badge/cve/CVE-2026-124278.svg" alt="CVE-2026-124278 – NEOSEC Intel" height="20"></a>