Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-55511 — Esecuzione di codice remoto (RCE) nel sistema di controllo missione Yamcs tramite iniezione di statement Java negli identificatori SQL tra virgolette doppie di YarchEsecuzione di codice remoto (RCE) nel sistema di controllo missione Yamcs tramite iniezione di statement Java negli identificatori SQL tra virgolette doppie di Yarch | Kitploit
Strumenti/GitHubGitHub/junfuture1103/cve-2026-55511
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubjunfuture1103/cve-2026-55511

CVE-2026-55511

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →

Informazioni

Sito web
11 mese faNon ancora revisionato

Esecuzione di codice remoto (RCE) nel sistema di controllo missione Yamcs tramite iniezione di statement Java negli identificatori SQL tra virgolette doppie di YarchEsecuzione di codice remoto (RCE) nel sistema di controllo missione Yamcs tramite iniezione di statement Java negli identificatori SQL tra virgolette doppie di Yarch

Condividi

CVE-2026-55511: RCE autenticata in Yamcs StreamSQL

Proof of concept non armato e documentazione tecnica per CVE-2026-55511, una vulnerabilità autenticata di iniezione di codice Java nel compilatore di espressioni aggregate di Yamcs StreamSQL.

CampoValore
ProdottoYamcs (org.yamcs:yamcs-core)
AdvisoryGHSA-3g44-3m7x-cgg2
DebolezzaCWE-94: Controllo improprio della generazione di codice
GravitàCritica, CVSS 3.1: 9.1
VettoreCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
Privilegio richiestoSystemPrivilege.ControlArchiving
Versioni corretteYamcs 5.13.2 e 5.12.8
Patch principaleb65a3d78178ba99a58b753feda6ecc3b5a694f13

Panoramica

Yamcs accetta nomi tra doppi apici per gli oggetti StreamSQL e, nelle versioni interessate, consente quasi qualsiasi carattere all'interno di tali nomi. Espressioni aggregate come sum(...) costruiscono dinamicamente codice sorgente Java utilizzando i nomi delle colonne e compilano tale sorgente con Janino SimpleCompiler.

Il codice vulnerabile applica solo una sanificazione minima dei nomi prima di inserire un nome di colonna in un identificatore Java generato. Un utente autenticato con ControlArchiving può quindi creare un nome di colonna tra apici appositamente costruito, raggiungere il compilatore di espressioni aggregate tramite POST /api/archive/{instance}:executeSql ed eseguire Java influenzato dall'attaccante all'interno della JVM del server Yamcs.

Questo oltrepassa il confine di autorizzazione previsto da Yamcs: ControlArchiving consente la gestione di archivi, tabelle e stream, ma non concede intenzionalmente l'esecuzione arbitraria di codice Java sul server.

Versioni interessate

Linea di rilascioInteressateCorretta
5.13.x5.13.1 e precedenti5.13.2
5.12.x5.12.7 e precedenti5.12.8

Aggiornare a Yamcs 5.13.2, 5.12.8 o a una release supportata successiva.

Dettagli tecnici

Il flusso di dati vulnerabile è:

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

Tre condizioni si combinano per creare il problema:

  1. La grammatica vulnerabile S_DOUBLE_QUOTED_IDENTIFIER accetta qualsiasi carattere eccetto CR, LF e ".
  2. Expression.fillCode_InputDefVars deriva un nome di variabile Java dal nome della colonna. Il suo helper sanitizeName sostituisce solo / e -.
  3. La classe aggregata generata viene compilata e caricata con Janino senza una sandbox restrittiva per le espressioni.

Ciò lascia disponibili caratteri di sintassi Java come punti e virgola, spazi bianchi, parentesi, operatori di assegnazione e punti nel metodo generato newData(Tuple). A differenza di un percorso a espressione nuda, il metodo aggregato fornisce un contesto di istruzioni raggiungibile in cui le istruzioni iniettate possono essere compilate ed eseguite.

Prerequisiti e impatto

Lo sfruttamento richiede un account autenticato in possesso di SystemPrivilege.ControlArchiving. Un account senza tale privilegio viene rifiutato dal controllo di autorizzazione di TableApi.executeSql.

Uno sfruttamento riuscito esegue Java con i privilegi del processo di servizio Yamcs. A seconda dell'isolamento di deployment, ciò può compromettere la riservatezza, l'integrità e la disponibilità dei dati di missione e dell'ambiente host. Il problema non è una RCE non autenticata e di per sé non eleva il processo Yamcs oltre i permessi del sistema operativo o del container.

Proof of Concept

Il file poc.py incluso è intenzionalmente non armato:

  • non contatta un server Yamcs attivo;
  • non esegue un comando del sistema operativo;
  • verifica la catena sorgente vulnerabile pertinente in un checkout locale di Yamcs;
  • genera un piccolo modello Java del pattern di generazione del codice aggregato; e
  • imposta solo un marcatore benigno di proprietà JVM.

Requisiti

  • Python 3.9+
  • Un checkout locale del sorgente Yamcs
  • JDK opzionale (javac e java) per il test benigno del marcatore

Esecuzione

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

Indicatori attesi:

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

Evidenze

  • evidence/evidence.json: risultati strutturati di catena sorgente e modello Java
  • evidence/crash_evidence.log: log di validazione conciso

Le evidenze incluse sono state prodotte contro il commit del sorgente Yamcs 98a05e95461207c143e4297ec4bb1b5a76e9cb19. Confermano la catena sorgente vulnerabile, l'iniezione nel sorgente generato e l'esecuzione del marcatore benigno.

Patch ufficiale

La correzione a monte è intitolata Avoid RCE through double-quoted identifiers:

  • Mainline / 5.13.x: b65a3d78178ba99a58b753feda6ecc3b5a694f13, rilasciata in 5.13.2
  • Backport 5.12.x: 8c1070b12c0a6c003903325cb2a1013347e2dbde, rilasciata in 5.12.8

La modifica principale restringe gli identificatori tra doppi apici da un set di caratteri quasi illimitato:

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

a una lista consentita di lettere, cifre, $, _, # e .:

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

Questo respinge i caratteri di separazione delle istruzioni e di costruzione delle espressioni richiesti dall'iniezione segnalata, prima che il nome raggiunga la generazione del codice Java. La patch aggiorna anche i file parser generati, la documentazione e un test correlato.

La restrizione può influire sui nomi di oggetti quotati esistenti contenenti spazi o punteggiatura non in lista. Rivedere gli schemi StreamSQL e l'automazione prima di aggiornare o applicare il backport.

Distinzione da CVE-2026-44632

CVE-2026-55511 è un punto di ingresso separato da CVE-2026-44632 / GHSA-524g-x36v-9wm6. CVE-2026-44632 riguarda JavaExprAlgorithmExecutionFactory, viene raggiunto tramite la funzionalità di override degli algoritmi del mission database ed è protetto da ChangeMissionDatabase.

Questo problema si trova in org.yamcs.yarch.streamsql, viene raggiunto tramite executeSql ed è protetto da ControlArchiving. La precedente correzione del percorso algoritmi in 5.13.0 / 5.12.7 non ha modificato il compilatore StreamSQL né la sua gestione degli identificatori quotati.

Documentazione aggiuntiva

  • VULNERABILITY_REPORT.md: report di vulnerabilità esteso
  • PATCH_ANALYSIS.md: analisi dettagliata della patch a monte e note di compatibilità

Riferimenti

  • Advisory di sicurezza ufficiale Yamcs: GHSA-3g44-3m7x-cgg2
  • Commit ufficiale della correzione mainline
  • Commit ufficiale della correzione 5.12.x

Utilizza questo materiale solo su sistemi di tua proprietà o per i quali hai ricevuto esplicita autorizzazione al test.

Scarica lo strumento