Blog Blog

CVE‑2025‑27622

CVE‑2025‑27622

1. 🛡️ Descripción general y contexto

CVE‑2025‑27622 identifica una vulnerabilidad en Jenkins Core (versiones hasta la 2.499 o LTS 2.492.1) que no redacts los valores cifrados de secretos cuando se accede al archivo config.xml de agentes a través de la API REST o la CLI. Esto permite que usuarios con permisos de Agent/Extended Read vean directamente los secretos cifrados 🚨.

  • Clasificada bajo CWE‑312: exposición de información sensible en texto claro o semiclaro.
  • El puntaje CVSS 3.1 asignado es 4.3 (Moderado), debido a que requiere privilegios bajos y no necesita interacción de usuario.

Este problema releva un riesgo en entornos CI/CD donde los secretos contenidos en configuraciones de agentes pueden ser obtenidos por personas no autorizadas, comprometiendo la cadena de construcción y despliegue.

2. 💡 Detalles técnicos del fallo

Jenkins almacena configuraciones de agentes en config.xml, incluyendo campos como credenciales cifradas. Tradicionalmente, estas se mostraban como ***** o algo similar cuando un usuario accedía con permisos limitados. En versiones vulnerables, ese redaction no se aplica correctamente al acceder vía REST o CLI: se expone el valor cifrado real.

Esto implica que, aunque el valor no se llega a descifrar automáticamente, el cifrado suele ser reversible si se tiene acceso al Master Key usado por Jenkins o si se produce un ataque lateral que desemboque en su obtención.

  • El fallo ocurre por una omisión lógica en el código de lectura, donde se omite el paso de ocultación de secretos según roles.
  • No se trata de un bypass de cifrado, sino de exposición del valor criptográfico completo al que no debería acceder un usuario con permisos reducidos.

3. 🧠 Cómo puede ser explotada

Requisitos

  • Acceso al sistema Jenkins con rol Agent/Extended Read (permite lectura de configuraciones de agentes).
  • Sin necesidad de privilegios de administrador ni interacción adicional.

Flujo típico de explotación

El atacante inicia sesión en Jenkins con un usuario que tenga el permiso mencionado.

Utiliza API REST o CLI para extraer config.xml de un agente:

# Usando la CLI de Jenkins
java -jar jenkins-cli.jar -s http://jenkins-server -auth user:token get-node AGENT_NAME > sortie.xml
grep "<secret>" sortie.xml

Obtiene el valor cifrado dentro de <secret>.

Con acceso a la Master Key o respecto a un ataque lateral (otro fallo, tipo explotación interna), puede descifrar el contenido del secreto.

Obtiene credenciales sensibles para acceso remoto, despliegue, repositorios, etc.

Probabilidad de explotación

No se han reportado evidencias de uso activo en la naturaleza, y el puntaje EPSS es bajo (~0.04%), aunque sigue siendo una brecha significativa en entornos de alta confianza.

4. 🔐 Métodos de mitigación y soluciones disponibles

✅ Parches oficiales

Actualizar Jenkins a:

  • Weekly ≥ 2.500
  • LTS ≥ 2.492.2
    Estas versiones incluyen el fix que redacta correctamente los valores cifrados cuando el usuario no tiene permisos de Agent/Configure.

⚠️ Workarounds provisionales

Mientras no se actualiza:

  • Revocar permisos de Agent/Extended Read en roles que no lo requieran.
  • Limitar el acceso a las API REST y la CLI sólo a usuarios de confianza.
  • Restringir redes o proxies para que sólo usuarios administradores puedan interactuar con la configuración del agente.

🛠️ Buenas prácticas complementarias

  • Asegurar protección de la Master Key de Jenkins.
  • Revisar periódicamente roles y accesos en Jenkins (principio de menor privilegio).
  • Usar sistemas de auditoría que detecten consultas a config.xml por usuarios no administrativos.

5. 🧷 Conclusión y reflexión técnica

CVE‑2025‑27622 evidencia un fallo de redacción lógica: los secretos cifrados no deben ser visibles incluso en formato cifrado para usuarios con permisos limitados. Aunque no implica un RCE ni exfiltración directa, abre la puerta para ataques posteriores.

🔍 Reflexión técnica:

  • La seguridad no depende solo de cifrar secretos, sino también de controlar su exposición.
  • La presencia de un cifrado fuerte no evita que el conocimiento de valores cifrados facilite ataques si el atacante puede acceder a la clave de cifrado.

🔒 Impacto en seguridad general:

  • Medio, pero significativo en ambientes sensibles donde los secretos tienen valor operativo (despliegue, acceso a repositorios, infraestructura).
  • Sirve para escalamiento: con estos secretos, un atacante puede comprometer otros sistemas relacionados.
Nestor Martin Guerra Garcia (Dr. Plaga)

Nestor Martin Guerra Garcia (Dr. Plaga)

Consultor de Ciberseguridad | Protección de Datos y Gestión de Riesgos | Pentester old school