Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-55511 — Ejecución Remota de Código (RCE) en el Sistema de Control de Misiones Yamcs mediante Inyección de Sentencias Java en Identificadores de Comillas Dobles de Yarch SQL | Kitploit
Herramientas/GitHubGitHub/junfuture1103/cve-2026-55511
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHubjunfuture1103/cve-2026-55511

CVE-2026-55511

Ejecución Remota de Código (RCE) en el Sistema de Control de Misiones Yamcs mediante Inyección de Sentencias Java en Identificadores de Comillas Dobles de Yarch SQL

Ver Repositorio
1hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

CVE-2026-55511: RCE autenticado en Yamcs StreamSQL

Prueba de concepto no armada y documentación técnica para CVE-2026-55511, una vulnerabilidad autenticada de inyección de código Java en el compilador de expresiones agregadas StreamSQL de Yamcs.

CampoValor
ProductoYamcs (org.yamcs:yamcs-core)
AvisoGHSA-3g44-3m7x-cgg2
DebilidadCWE-94: Control Inadecuado de la Generación de Código
GravedadCrítica, CVSS 3.1: 9.1
VectorCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
Privilegio requeridoSystemPrivilege.ControlArchiving
Versiones corregidasYamcs 5.13.2 y 5.12.8
Parche principalb65a3d78178ba99a58b753feda6ecc3b5a694f13

Resumen

Yamcs acepta nombres entre comillas dobles para objetos StreamSQL y, en versiones afectadas, permite casi cualquier carácter dentro de esos nombres. Las expresiones agregadas como sum(...) construyen dinámicamente código fuente Java utilizando nombres de columna y compilan ese código fuente con Janino SimpleCompiler.

El código vulnerable aplica una desinfección de nombres mínima antes de colocar un nombre de columna en un identificador Java generado. Por lo tanto, un usuario autenticado con ControlArchiving puede crear un nombre de columna entre comillas dobles manipulado, llegar al compilador de agregados a través de POST /api/archive/{instance}:executeSql y ejecutar Java influenciado por el atacante dentro de la JVM del servidor Yamcs.

Esto cruza el límite de autorización previsto de Yamcs: ControlArchiving permite la gestión de archivos, tablas y streams, pero no concede intencionalmente la ejecución arbitraria de Java en el servidor.

Versiones afectadas

Línea de versiónAfectadaCorregida
5.13.x5.13.1 y anteriores5.13.2
5.12.x5.12.7 y anteriores5.12.8

Actualice a Yamcs 5.13.2, 5.12.8, o a una versión posterior compatible.

Detalles técnicos

El flujo de datos vulnerable es:

root@kitploit:~
POST /api/archive/{instance}:executeSql
  -> TableApi.executeSql
  -> Yarch StreamSQL parser
  -> nombre de objeto entre comillas dobles
  -> SelectExpression aggregate binding
  -> SumExpression.aggregateFillCode_newData
  -> Expression.fillCode_InputDefVars
  -> CompilableAggregateExpression.getCompiledAggregate
  -> Janino SimpleCompiler.cook
  -> Java influenciado por el atacante se ejecuta en la JVM de Yamcs

Tres condiciones se combinan para crear el problema:

  1. La gramática vulnerable S_DOUBLE_QUOTED_IDENTIFIER acepta cualquier carácter excepto CR, LF y ".
  2. Expression.fillCode_InputDefVars deriva un nombre de variable Java del nombre de columna. Su ayudante sanitizeName reemplaza solo / y -.
  3. La clase agregada generada se compila y carga con Janino sin un sandbox de expresiones restrictivo.

Esto deja caracteres de sintaxis Java como punto y coma, espacios en blanco, paréntesis, operadores de asignación y puntos disponibles en el método newData(Tuple) generado. A diferencia de una ruta de expresión simple, el método agregado proporciona un contexto de sentencia alcanzable en el que las sentencias inyectadas pueden compilarse y ejecutarse.

Requisitos previos e impacto

La explotación requiere una cuenta autenticada que posea SystemPrivilege.ControlArchiving. Una cuenta sin ese privilegio es rechazada por la comprobación de autorización de TableApi.executeSql.

La explotación exitosa ejecuta Java con los privilegios del proceso de servicio de Yamcs. Dependiendo del aislamiento del despliegue, esto puede afectar la confidencialidad, integridad y disponibilidad de los datos de la misión y del entorno del host. El problema no es un RCE no autenticado y por sí mismo no eleva el proceso de Yamcs más allá de sus permisos de sistema operativo o contenedor.

Prueba de concepto

El poc.py incluido está intencionalmente no armado:

  • no contacta con un servidor Yamcs en vivo;
  • no ejecuta un comando del sistema operativo;
  • verifica la cadena fuente vulnerable relevante en una copia local de Yamcs;
  • genera un pequeño modelo Java del patrón de generación de código agregado; y
  • establece solo un marcador de propiedad JVM benigno.

Requisitos

  • Python 3.9+
  • Una copia local del código fuente de Yamcs
  • JDK opcional (javac y java) para la prueba del marcador benigno

Ejecución

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

Indicadores esperados:

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

Evidencia

  • evidence/evidence.json: resultados estructurados de la cadena fuente y del modelo Java
  • evidence/crash_evidence.log: registro de validación conciso

La evidencia incluida se produjo contra el commit del código fuente de Yamcs 98a05e95461207c143e4297ec4bb1b5a76e9cb19. Confirma la cadena fuente vulnerable, la inyección en el código fuente generado y la ejecución del marcador benigno.

Parche oficial

La corrección oficial se titula «Avoid RCE through double-quoted identifiers» (Evitar RCE a través de identificadores entre comillas dobles):

  • Principal / 5.13.x: b65a3d78178ba99a58b753feda6ecc3b5a694f13, publicado en 5.13.2
  • Retroportación 5.12.x: 8c1070b12c0a6c003903325cb2a1013347e2dbde, publicado en 5.12.8

El cambio principal restringe los identificadores entre comillas dobles de un conjunto de caracteres casi sin restricciones:

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

a una lista permitida de letras, dígitos, $, _, # y .:

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

Esto rechaza los caracteres separadores de sentencias y constructores de expresiones requeridos por la inyección reportada antes de que el nombre llegue a la generación de código Java. El parche también actualiza los archivos de parser generados, la documentación y una prueba relacionada.

La restricción puede afectar nombres de objetos existentes entre comillas que contengan espacios o puntuación no permitida. Revise los esquemas y la automatización de StreamSQL antes de actualizar o retroportar.

Diferencia con CVE-2026-44632

CVE-2026-55511 es un punto de entrada diferente de CVE-2026-44632 / GHSA-524g-x36v-9wm6. CVE-2026-44632 afecta a JavaExprAlgorithmExecutionFactory, se alcanza a través de la funcionalidad de sobrescritura de algoritmos de la base de datos de misión y está controlado por ChangeMissionDatabase.

Este problema está en org.yamcs.yarch.streamsql, se alcanza a través de executeSql y está controlado por ControlArchiving. La corrección anterior de la ruta de algoritmo 5.13.0 / 5.12.7 no modificó el compilador StreamSQL ni su manejo de identificadores entre comillas.

Documentación adicional

  • VULNERABILITY_REPORT.md: informe ampliado de vulnerabilidad
  • PATCH_ANALYSIS.md: análisis detallado del parche oficial y notas de compatibilidad

Referencias

  • Aviso de seguridad oficial de Yamcs: GHSA-3g44-3m7x-cgg2
  • Commit de corrección principal oficial
  • Commit de corrección oficial 5.12.x

Utilice este material únicamente en sistemas de su propiedad o que esté explícitamente autorizado a probar.

Descargar herramienta