Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-55511 — Remote Code Execution (RCE) im Yamcs Missionskontrollsystem durch Java Statement Injection in Yarch SQL-Double-Quoted-Identifiers | Kitploit
Tools/GitHubGitHub/junfuture1103/cve-2026-55511
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & Bildung
GitHubjunfuture1103/cve-2026-55511

CVE-2026-55511

Remote Code Execution (RCE) im Yamcs Missionskontrollsystem durch Java Statement Injection in Yarch SQL-Double-Quoted-Identifiers

Repository anzeigen
1vor 1 MonatNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

CVE-2026-55511: Yamcs StreamSQL Authentifizierte RCE

Nicht-weaponisierter Proof-of-Concept und technische Dokumentation für CVE-2026-55511, eine authentifizierte Java-Code-Injection-Schwachstelle im Yamcs StreamSQL-Aggregat-Ausdrucks-Compiler.

FeldWert
ProduktYamcs (org.yamcs:yamcs-core)
SicherheitshinweisGHSA-3g44-3m7x-cgg2
SchwachstelleCWE-94: Unzureichende Kontrolle der Codeerzeugung
SchweregradKritisch, CVSS 3.1: 9.1
VektorCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
Erforderliche BerechtigungSystemPrivilege.ControlArchiving
Behobene VersionenYamcs 5.13.2 und 5.12.8
Hauptlinien-Patchb65a3d78178ba99a58b753feda6ecc3b5a694f13

Übersicht

Yamcs akzeptiert doppelt-anführende Namen für StreamSQL-Objekte und erlaubt in betroffenen Versionen fast jedes Zeichen in diesen Namen. Aggregatausdrücke wie sum(...) konstruieren dynamisch Java-Quellcode unter Verwendung von Spaltennamen und kompilieren diesen mit Janino SimpleCompiler.

Der anfällige Code wendet nur eine minimale Namensbereinigung an, bevor ein Spaltenname in eine generierte Java-Kennung eingefügt wird. Ein authentifizierter Benutzer mit ControlArchiving kann daher einen manipulierten, in Anführungszeichen gesetzten Spaltennamen erstellen, über POST /api/archive/{instance}:executeSql den Aggregat-Compiler erreichen und von Angreifern beeinflusstes Java in der Yamcs-Server-JVM ausführen.

Dies überschreitet die beabsichtigte Yamcs-Autorisierungsgrenze: ControlArchiving erlaubt die Verwaltung von Archiven, Tabellen und Streams, gewährt aber nicht absichtlich die Ausführung beliebigen Java-Codes auf dem Server.

Betroffene Versionen

Release-LinieBetroffenBehoben
5.13.x5.13.1 und früher5.13.2
5.12.x5.12.7 und früher5.12.8

Aktualisieren Sie auf Yamcs 5.13.2, 5.12.8 oder eine neuere unterstützte Version.

Technische Details

Der anfällige Datenfluss ist:

root@kitploit:~
POST /api/archive/{instance}:executeSql
  -> TableApi.executeSql
  -> Yarch StreamSQL parser
  -> double-quoted object name
  -> SelectExpression aggregate binding
  -> SumExpression.aggregateFillCode_newData
  -> Expression.fillCode_InputDefVars
  -> CompilableAggregateExpression.getCompiledAggregate
  -> Janino SimpleCompiler.cook
  -> attacker-influenced Java executes in the Yamcs JVM

Drei Bedingungen kombinieren sich, um das Problem zu erzeugen:

  1. Die anfällige Grammatik S_DOUBLE_QUOTED_IDENTIFIER akzeptiert jedes Zeichen außer CR, LF und ".
  2. Expression.fillCode_InputDefVars leitet einen Java-Variablennamen aus dem Spaltennamen ab. Der Hilfsprogramm sanitizeName ersetzt nur / und -.
  3. Die generierte Aggregatklasse wird mit Janino ohne eine restriktive Ausdruckssandbox kompiliert und geladen.

Dies lässt Java-Syntaxzeichen wie Semikolons, Leerzeichen, Klammern, Zuweisungsoperatoren und Punkte in der generierten Methode newData(Tuple) verfügbar. Im Gegensatz zu einem Bare-Expression-Pfad bietet die Aggregatmethode einen erreichbaren Anweisungskontext, in dem injizierte Anweisungen kompiliert und ausgeführt werden können.

Voraussetzungen und Auswirkungen

Die Ausnutzung erfordert ein authentifiziertes Konto mit SystemPrivilege.ControlArchiving. Ein Konto ohne diese Berechtigung wird von der Autorisierungsprüfung TableApi.executeSql abgelehnt.

Eine erfolgreiche Ausnutzung führt Java mit den Berechtigungen des Yamcs-Dienstprozesses aus. Abhängig von der Bereitstellungsisolation kann dies die Vertraulichkeit, Integrität und Verfügbarkeit von Missionsdaten und der Host-Umgebung beeinträchtigen. Das Problem ist keine nicht authentifizierte RCE und erhöht nicht von selbst die Berechtigungen des Yamcs-Prozesses über seine Betriebssystem- oder Containerberechtigungen hinaus.

Proof of Concept

Das enthaltene poc.py ist absichtlich nicht weaponisiert:

  • es kontaktiert keinen laufenden Yamcs-Server;
  • es führt keinen Betriebssystembefehl aus;
  • es verifiziert die relevante anfällige Quellkette in einem lokalen Yamcs-Checkout;
  • es generiert ein kleines Java-Modell des Aggregat-Codegenerierungsmusters; und
  • es setzt nur einen harmlosen JVM-Eigenschaftsmarker.

Anforderungen

  • Python 3.9+
  • Ein lokaler Yamcs-Quellcode-Checkout
  • Optional JDK (javac und java) für den harmlosen Markertest

Ausführen

root@kitploit:~
cd /path/to/yamcs
python3 /path/to/poc.py \
  --json /tmp/evidence.json \
  --log /tmp/crash_evidence.log \
  --expect-crash

Erwartete Indikatoren:

root@kitploit:~
source_chain_confirmed=true
generated_source_injection_present=true
marker_executed=true

Nachweise

  • evidence/evidence.json: strukturierte Quellketten- und Java-Modellergebnisse
  • evidence/crash_evidence.log: prägnantes Validierungsprotokoll

Der enthaltene Nachweis wurde gegen den Yamcs-Quellcommit 98a05e95461207c143e4297ec4bb1b5a76e9cb19 erstellt. Er bestätigt die anfällige Quellkette, die Injektion von generiertem Quellcode und die Ausführung des harmlosen Markers.

Offizieller Patch

Der Upstream-Fix trägt den Titel Avoid RCE through double-quoted identifiers:

  • Hauptlinie / 5.13.x: b65a3d78178ba99a58b753feda6ecc3b5a694f13, veröffentlicht in 5.13.2
  • 5.12.x Backport: 8c1070b12c0a6c003903325cb2a1013347e2dbde, veröffentlicht in 5.12.8

Die Kernänderung schränkt doppelt-anführende Bezeichner von einem fast uneingeschränkten Zeichensatz ein:

root@kitploit:~
< S_DOUBLE_QUOTED_IDENTIFIER: "\"" (~["\n","\r","\""])* "\"" >

auf eine Freigabeliste von Buchstaben, Ziffern, $, _, # und .:

root@kitploit:~
< S_DOUBLE_QUOTED_IDENTIFIER: "\"" (<LETTER> | <DIGIT> | <SPECIAL_CHARS>)+ "\"" >

Dies weist die anweisungstrennenden und ausdrucksbildenden Zeichen zurück, die für die gemeldete Injektion erforderlich sind, bevor der Name die Java-Codegenerierung erreicht. Der Patch aktualisiert auch generierte Parser-Dateien, Dokumentation und einen zugehörigen Test.

Die Einschränkung kann vorhandene in Anführungszeichen gesetzte Objektnamen beeinträchtigen, die Leerzeichen oder nicht erlaubte Satzzeichen enthalten. Überprüfen Sie StreamSQL-Schemata und Automatisierungen vor dem Upgrade oder Backport.

Abgrenzung zu CVE-2026-44632

CVE-2026-55511 ist ein separater Einstiegspunkt von CVE-2026-44632 / GHSA-524g-x36v-9wm6. CVE-2026-44632 betrifft JavaExprAlgorithmExecutionFactory, wird durch die Funktionalität zum Überschreiben von Algorithmen der Missionsdatenbank erreicht und ist durch ChangeMissionDatabase geschützt.

Dieses Problem befindet sich in org.yamcs.yarch.streamsql, wird über executeSql erreicht und ist durch ControlArchiving geschützt. Die frühere 5.13.0 / 5.12.7 Algorithmus-Pfad-Korrektur hat den StreamSQL-Compiler oder seine Behandlung von in Anführungszeichen gesetzten Bezeichnern nicht geändert.

Zusätzliche Dokumentation

  • VULNERABILITY_REPORT.md: erweiterter Schwachstellenbericht
  • PATCH_ANALYSIS.md: detaillierte Upstream-Patch-Analyse und Kompatibilitätshinweise

Referenzen

  • Offizieller Yamcs-Sicherheitshinweis: GHSA-3g44-3m7x-cgg2
  • Offizieller Hauptlinien-Fix-Commit
  • Offizieller 5.12.x Fix-Commit

Verwenden Sie dieses Material nur in Systemen, die Ihnen gehören oder für die Sie ausdrücklich zur Prüfung autorisiert sind.

Tool herunterladen