RYZER.ES
Sigue leyendo Las 5 últimas noticias de 🔐​CIBERSEGURIDAD
Tendencias Las más vistas de los últimos 1 días

CVE-2026-84372: Vulnerabilidad crítica en Predis (cliente Redis/Valkey para PHP)

CVE-2026-84372: Vulnerabilidad crítica en Predis (cliente Redis/Valkey para PHP)
🚨 Alerta crítica: Se ha publicado la vulnerabilidad CVE-2026-84372 en Predis (cliente Redis/Valkey para PHP) con puntuación CVSS 9.8. Las versiones 3.0.0-RC1 hasta 3.3.0 son vulnerables a inyección de comandos a través de secuencias CRLF en pipelines, lo que permite ejecución de comandos arbitrarios, borrado de caché, modificación de datos y denegación de servicio. Actualice a la versión 3.3.0 sin demora.
Cadena de riesgo y respuesta para CVE-2026-84372
Cadena de riesgo y respuesta para CVE-2026-84372

Resumen ejecutivo

Campo Detalle
CVE CVE-2026-84372
Fabricante Predis (proyecto open source)
Producto Predis (cliente Redis/Valkey para PHP)
Fecha de publicación 2026-09-01
Severidad CRITICAL
CVSS v3.1 9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
Puntuación de prioridad (RyzerBot) 220
Acción recomendada Revisar el aviso oficial del fabricante y aplicar la actualización a la versión 3.3.0.

Qué es la vulnerabilidad

La vulnerabilidad reside en el manejo de pipeline() en conexiones agregadas de clúster y replicación. En AbstractAggregateConnection::write(), el búfer RESP ya serializado se vuelve a analizar dividiéndolo con explode("\r\n") en lugar de respetar los prefijos de longitud RESP. Esto permite que claves o valores controlados por el atacante que contengan secuencias CRLF sean interpretados por Command::deserializeCommand() como comandos adicionales.

En conexiones de clúster, ClusterStrategy::getFakeKey() puede enrutar comandos inyectados sin clave usando la clave literal «key», permitiendo operaciones como borrado de caché en todo el shard, modificación dirigida de datos, lectura de datos o interrupción de nodos. En conexiones de replicación, el reanálisis mal formado puede lanzar una excepción no capturada y terminar repetidamente las solicitudes afectadas. Solo el método pipeline() alcanza esta ruta vulnerable; transaction() y MULTI no se ven afectados.

Productos y versiones vulnerables

Fabricante Producto Versiones afectadas Estado
Predis Predis >= 3.0.0-RC1, < 3.3.0 Afectado

La versión 3.3.0 corrige el problema. No se han publicado otras versiones ni parches alternativos.

Impacto y riesgo

  • Confidencialidad: Alta – lectura de datos no autorizada.
  • Integridad: Alta – modificación o borrado de datos dirigido.
  • Disponibilidad: Alta – interrupción de nodos y terminación de solicitudes.
  • Vector de ataque: Red (AV:N), baja complejidad (AC:L), sin privilegios (PR:N), sin interacción de usuario (UI:N).
  • Alcance: Sin cambios (S:U).

La explotación permite a un atacante inyectar comandos RESP arbitrarios en pipelines, lo que puede comprometer completamente la integridad y disponibilidad de los datos almacenados en Redis/Valkey a través de Predis.

Estado de explotación conocida

No se ha reportado explotación activa en las fuentes consultadas (NVD, CVE.org, avisos de GitHub). La selección de esta CVE por RyzerBot se basa en su publicación reciente, criticidad CVSS 9.8 y puntuación de prioridad 220, no en evidencia de explotación en la naturaleza.

Indicadores de compromiso (IOC)

No se han extraído IOC estructurados de las fuentes consultadas. No deben inventarse.

Cómo comprobar si estás afectado

  1. Identifica si tu proyecto utiliza predis/predis como dependencia (Composer).
  2. Ejecuta composer show predis/predis para ver la versión instalada.
  3. Si la versión está en el rango >= 3.0.0-RC1, < 3.3.0, estás afectado.
  4. Revisa el uso de pipeline() en conexiones de clúster o replicación; transaction() y MULTI no son vulnerables.

Mitigación y actualización

Actualice a Predis 3.3.0 lo antes posible:

composer require predis/predis:^3.3.0

Si no puede actualizar inmediatamente, evite el uso de pipeline() en conexiones de clúster y replicación, y valide/sanitice las claves y valores para eliminar secuencias CRLF antes de pasarlos a Predis. Sin embargo, la única solución completa es la actualización.

Checklist para administradores

  • ☐ Verificar la versión de Predis en todos los entornos (producción, staging, desarrollo).
  • ☐ Actualizar a la versión 3.3.0 mediante Composer.
  • ☐ Ejecutar pruebas de regresión para asegurar compatibilidad.
  • ☐ Revisar logs en busca de excepciones relacionadas con AbstractAggregateConnection::write() o terminaciones anómalas de pipelines.
  • ☐ Confirmar que no se usan pipelines en clúster/replicación sin validación de entrada.
  • ☐ Comunicar la actualización al equipo de desarrollo y operaciones.

Preguntas frecuentes

¿Afecta a todas las versiones de Predis?
Solo versiones desde 3.0.0-RC1 hasta 3.3.0 (exclusive). Versiones anteriores a 3.0.0-RC1 no están afectadas.
¿El uso de transaction() o MULTI mitiga el problema?
Sí, la ruta vulnerable solo se alcanza con pipeline(). transaction() y MULTI no son vulnerables.
¿Hay alguna solución temporal sin actualizar?
Evitar pipeline() en conexiones de clúster y replicación, y sanitizar entradas para eliminar CRLF. Pero se recomienda encarecidamente actualizar.
¿Se ha observado explotación en la naturaleza?
No, las fuentes consultadas no reportan explotación activa.
¿Dónde está el aviso oficial?
En GitHub Security Advisories: GHSA-w6f5-v2h6-g786.
¿Qué CWE se asigna?
CWE-93: Improper Neutralization of CRLF Sequences ('CRLF Injection').

Fuentes oficiales

Sigue leyendo Las 5 últimas noticias de 🔐​CIBERSEGURIDAD
Tendencias Las más vistas de los últimos 1 días

Deja un comentario