Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-55511 — Exécution de code à distance (RCE) dans le système de contrôle de mission Yamcs via une injection de déclaration Java dans les identifiants entre guillemets SQL Yarch Exécution de code à distance (RCE) dans le système de contrôle de mission Yamcs via une injection de déclaration Java dans les identifiants entre guillemets SQL Yarch | Kitploit
Outils/GitHubGitHub/junfuture1103/cve-2026-55511
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et Éducation
GitHubjunfuture1103/cve-2026-55511

CVE-2026-55511

Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

À propos

Site web
1il y a 1 moisPas encore vérifié

Exécution de code à distance (RCE) dans le système de contrôle de mission Yamcs via une injection de déclaration Java dans les identifiants entre guillemets SQL Yarch Exécution de code à distance (RCE) dans le système de contrôle de mission Yamcs via une injection de déclaration Java dans les identifiants entre guillemets SQL Yarch

Partager

CVE-2026-55511: RCE authentifié via StreamSQL dans Yamcs

Preuve de concept non armée et documentation technique pour CVE-2026-55511, une vulnérabilité authentifiée d'injection de code Java dans le compilateur d'expressions d'agrégation StreamSQL de Yamcs.

ChampValeur
ProduitYamcs (org.yamcs:yamcs-core)
Avis de sécuritéGHSA-3g44-3m7x-cgg2
FaiblesseCWE-94 : Contrôle inadéquat de la génération de code
GravitéCritique, CVSS 3.1 : 9.1
VecteurCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
Privilège requisSystemPrivilege.ControlArchiving
Versions corrigéesYamcs 5.13.2 et 5.12.8
Correctif principalb65a3d78178ba99a58b753feda6ecc3b5a694f13

Vue d'ensemble

Yamcs accepte les noms entre guillemets pour les objets StreamSQL et, dans les versions affectées, autorise presque tous les caractères à l'intérieur de ces noms. Les expressions d'agrégation telles que sum(...) construisent dynamiquement du code source Java à l'aide des noms de colonnes et compilent ce code source avec Janino SimpleCompiler.

Le code vulnérable n'applique qu'une minimalisation du nom avant de placer un nom de colonne dans un identifiant Java généré. Un utilisateur authentifié disposant de ControlArchiving peut donc créer un nom de colonne entre guillemets spécialement conçu, atteindre le compilateur d'agrégation via POST /api/archive/{instance}:executeSql, et exécuter du Java influencé par un attaquant dans la JVM du serveur Yamcs.

Cela franchit la limite d'autorisation prévue par Yamcs : ControlArchiving permet la gestion des archives, des tables et des flux, mais n'accorde pas intentionnellement l'exécution Java arbitraire sur le serveur.

Versions affectées

Ligne de versionAffectéeCorrigée
5.13.x5.13.1 et antérieures5.13.2
5.12.x5.12.7 et antérieures5.12.8

Mettez à jour vers Yamcs 5.13.2, 5.12.8 ou une version ultérieure prise en charge.

Détails techniques

Le flux de données vulnérable est le suivant :

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

Trois conditions se combinent pour créer le problème :

  1. La grammaire vulnérable S_DOUBLE_QUOTED_IDENTIFIER accepte tout caractère sauf CR, LF et ".
  2. Expression.fillCode_InputDefVars dérive un nom de variable Java du nom de colonne. Son assistant sanitizeName ne remplace que / et -.
  3. La classe d'agrégat générée est compilée et chargée avec Janino sans bac à sable d'expressions restrictif.

Cela laisse les caractères de syntaxe Java tels que les points-virgules, les espaces, les parenthèses, les opérateurs d'affectation et les points disponibles dans la méthode newData(Tuple) générée. Contrairement à un chemin d'expression nu, la méthode d'agrégation fournit un contexte d'instructions accessible dans lequel les instructions injectées peuvent être compilées et exécutées.

Préconditions et impact

L'exploitation nécessite un compte authentifié disposant de SystemPrivilege.ControlArchiving. Un compte sans ce privilège est rejeté par la vérification d'autorisation TableApi.executeSql.

Une exploitation réussie exécute Java avec les privilèges du processus de service Yamcs. Selon l'isolation du déploiement, cela peut affecter la confidentialité, l'intégrité et la disponibilité des données de mission et de l'environnement hôte. Le problème n'est pas un RCE non authentifié et n'élève pas en soi les privilèges du processus Yamcs au-delà de ses permissions système ou conteneur.

Preuve de concept

Le script poc.py inclus est intentionnellement non armé :

  • il ne contacte pas un serveur Yamcs en direct ;
  • il n'exécute pas de commande système ;
  • il vérifie la chaîne source vulnérable pertinente dans un checkout local de Yamcs ;
  • il génère un petit modèle Java du motif de génération de code d'agrégat ; et
  • il ne définit qu'un marqueur de propriété JVM bénin.

Prérequis

  • Python 3.9+
  • Un checkout local du code source Yamcs
  • JDK optionnel (javac et java) pour le test du marqueur bénin

Exécution

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

Indicateurs attendus :

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

Preuves

  • evidence/evidence.json : résultats structurés de la chaîne source et du modèle Java
  • evidence/crash_evidence.log : journal de validation concis

Les preuves incluses ont été produites sur le commit source Yamcs 98a05e95461207c143e4297ec4bb1b5a76e9cb19. Elles confirment la chaîne source vulnérable, l'injection de code source généré et l'exécution du marqueur bénin.

Correctif officiel

Le correctif amont est intitulé Avoid RCE through double-quoted identifiers :

  • Principale / 5.13.x : b65a3d78178ba99a58b753feda6ecc3b5a694f13, publié dans 5.13.2
  • Rétroportage 5.12.x : 8c1070b12c0a6c003903325cb2a1013347e2dbde, publié dans 5.12.8

La modification principale restreint les identifiants entre guillemets, passant d'un ensemble de caractères presque illimité :

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

à une liste autorisée composée de lettres, chiffres, $, _, # et . :

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

Cela rejette les caractères de séparation d'instructions et de construction d'expressions requis par l'injection signalée avant que le nom n'atteigne la génération de code Java. Le correctif met également à jour les fichiers d'analyseur générés, la documentation et un test connexe.

La restriction peut affecter les noms d'objets entre guillemets existants contenant des espaces ou une ponctuation non autorisée. Examinez les schémas StreamSQL et l'automatisation avant de mettre à jour ou de rétroporter.

Distinction avec CVE-2026-44632

CVE-2026-55511 est un point d'entrée distinct de CVE-2026-44632 / GHSA-524g-x36v-9wm6. CVE-2026-44632 concerne JavaExprAlgorithmExecutionFactory, est accessible via la fonctionnalité de remplacement d'algorithme de base de données de mission, et est contrôlé par ChangeMissionDatabase.

Ce problème se trouve dans org.yamcs.yarch.streamsql, est accessible via executeSql et est contrôlé par ControlArchiving. Le correctif antérieur de la voie d'algorithme (5.13.0 / 5.12.7) n'a pas modifié le compilateur StreamSQL ni sa gestion des identifiants entre guillemets.

Documentation supplémentaire

  • VULNERABILITY_REPORT.md : rapport de vulnérabilité étendu
  • PATCH_ANALYSIS.md : analyse détaillée du correctif amont et notes de compatibilité

Références

  • Avis de sécurité officiel Yamcs : GHSA-3g44-3m7x-cgg2
  • Commit officiel du correctif principal
  • Commit officiel du correctif 5.12.x

N'utilisez ce matériel que sur des systèmes vous appartenant ou pour lesquels vous êtes explicitement autorisé à effectuer des tests.

Télécharger l’outil