Una herramienta de IA autónoma encuentra un defecto RCE de hace 2 años en Redis (CVE-2026-23479) – CYBERDEFENSA.MX

Redis tiene parcheado un uso después de la liberación en su código de cliente de bloqueo que permite a un usuario autenticado ejecutar comandos arbitrarios del sistema operativo en la máquina que aloja la base de datos. La falla fue encontrada por una herramienta de inteligencia artificial autónoma diseñada para detectar errores en grandes bases de código.

Seguimiento como CVE-2026-23479la falla se introdujo en Redis 7.2.0 y permaneció en todas las ramas estables hasta las correcciones del 5 de mayo, sin que nadie se diera cuenta durante más de dos años. NVD lo califica con 8,8 según CVSS 3,1; Redis lo enumera como 7.7 en CVSS 4.0. Fue informado por Team Xint Code, y una completa técnica escribir ahora es público.

La huella de la nube empeora esto. El análisis de Wiz, publicado con el informe del exploit, coloca a Redis en una gran mayoría de entornos de nube, y la mayoría de esas instancias se ejecutan sin contraseña. El exploit necesita una sesión autenticada, pero en una implementación predeterminada, el usuario predeterminado ya posee todos los privilegios que requiere la cadena.

El defecto vive en desbloquearClientOnKey() en src/bloqueado.cque se activa cuando un evento clave activa un comando bloqueado. La función envía el comando en cola a través de procesoCommandAndResetClient()luego sigue usando el mismo puntero de cliente. El problema: esa función puede liberar al cliente como efecto secundario, y su propio comentario en el encabezado lo dice. La persona que llama ignora el valor de retorno y lee la estructura liberada de todos modos, un uso después de la liberación (CWE-416).

Según el análisis de Wiz, el error requirió dos confirmaciones para crearse. Una refactorización de enero de 2023 (PR #11012) agregó la llamada no marcada. Un cambio de marzo de 2023 (PR #11568) agregó más acceso de cliente después. Ninguno de los dos era peligroso por sí solo. Juntos, alcanzaron la disponibilidad general en 7.2.0 y sobrevivieron a múltiples rondas de revisión de seguridad.

Ciberseguridad

La cadena comienza filtrando una dirección de montón. A partir de ahí, libera a un cliente e introduce uno falso en la misma memoria, luego convierte la propia memoria de Redis en contra de sí misma para sobrescribir un puntero de función.

La versión publicada se ejecuta en tres etapas.

  • Primero, un script Lua de una línea (EVAL «return tostring(redis.call)» 0) pierde un puntero de montón.
  • En segundo lugar, el atacante prepara los límites de memoria del cliente, estaciona un cliente inflado en una secuencia, luego elimina los límites y lo activa. Redis libera al cliente bloqueado en mitad de la llamada y un SET canalizado recupera inmediatamente el espacio liberado con una estructura de cliente falsa.
  • En tercer lugar, la contabilidad de memoria de rutina de Redis en updateClientMemoryUsage() realiza una disminución fuera de los límites utilizando campos controlados por el atacante, dirigidos a la tabla de compensación global para redireccionar strcasecmp() a system(). El siguiente comando que Redis analiza se ejecuta como un comando de shell.

La imagen oficial de Redis Docker facilita el último paso. Se envía solo con RELRO parcial, lo que permite que GOT se pueda escribir en tiempo de ejecución. ASLR y PIE no ayudan aquí, ya que la escritura es relativa a un global cuyo desplazamiento se fija en el momento de la compilación.

La cadena completa necesita una sesión autenticada con CONFIG SET, EVAL, comandos de transmisión (XREAD/XADD) y SET/GET básico, que se asigna a las categorías ACL @admin, @scripting, @stream y @read/@write.

El usuario predeterminado los tiene todos y, en la mayoría de las implementaciones, estos privilegios se agrupan en una única aplicación compartida o función de operador. Negar CONFIG por completo rompe esta cadena específica, aunque no el uso después de la liberación subyacente.

El equipo Xint Code demostró el funcionamiento del RCE en ZeroDay.Nube 2025la competencia de piratería de Wiz en Londres el pasado diciembre. teoría describe Código Xint como una herramienta de seguridad de IA autónoma creada para detectar errores en grandes bases de código.

Redis dijo que no tenía evidencia de explotación en su propio entorno o en el de sus clientes, y hasta el momento de esta publicación no ha aparecido ningún informe público al respecto. La cadena técnica completa ahora es pública, lo que aumenta el riesgo de explotación posterior.

Ciberseguridad

Actualice al parche menor para su serie: 7.2.14, 7.4.9, 8.2.6, 8.4.3 u 8.6.3, todos lanzados el 5 de mayo. Las actualizaciones menores dentro de una serie deben ser inmediatas. Los servicios administrados de Redis se actualizan según sus propios cronogramas y Redis dice que Redis Cloud ya está listo.

Rama Afectado Fijado
7.2.x 7.2.0 a 7.2.13 7.2.14
7.4.x 7.4.0 a 7.4.8 7.4.9
8.2.x 8.2.0 a 8.2.5 8.2.6
8.4.x 8.4.0 a 8.4.2 8.4.3
8.6.x 8.6.0 a 8.6.2 8.6.3

Si aún no puede parchear: mantenga Redis fuera de la Internet pública y detrás de TLS, ajuste las ACL para que ningún rol mantenga juntos a @admin, CONFIG y @scripting, y deniegue @scripting si no usa Lua, lo que elimina la fuga de la Etapa 1.

Priorice las instancias expuestas a Internet, las credenciales de aplicaciones compartidas y cualquier función que combine CONFIG, secuencias de comandos y acceso a transmisiones. Mientras lo hace, rote las credenciales de Redis ampliamente compartidas.

CVE-2026-23479 fue uno de cinco fallas de Redis de clase RCE revelado el mes pasado, y sigue a la falla RediShell 2025 de Redis, otro uso después de la liberación autenticado que involucra secuencias de comandos Lua. También es el que detectó una herramienta de inteligencia artificial. Dos confirmaciones lo colocaron, dos años lo ocultaron y permaneció en una de las bases de datos más implementadas hasta que un concurso de piratería lo sacó a la luz. La revisión del código nunca lo hizo.

36 paquetes npm maliciosos explotaron Redis y PostgreSQL para implementar implantes persistentes – CYBERDEFENSA.MX

Los investigadores de ciberseguridad han descubierto 36 paquetes maliciosos en el registro npm que están disfrazados de complementos de Strapi CMS pero vienen con diferentes cargas útiles para facilitar la explotación de Redis y PostgreSQL, implementar shells inversos, recopilar credenciales y colocar un implante persistente.

«Cada paquete contiene tres archivos (paquete.json, index.js, postinstall.js), no tiene descripción, repositorio ni página de inicio, y utiliza la versión 3.6.8 para aparecer como un complemento comunitario maduro de Strapi v3», SafeDep dicho.

Todos los paquetes npm identificados siguen la misma convención de nomenclatura, comenzando con «strapi-plugin-» y luego frases como «cron», «base de datos» o «servidor» para engañar a los desarrolladores desprevenidos para que los descarguen. Vale la pena señalar que los complementos oficiales de Strapi tienen su alcance en «@strapi/».

Los paquetes, subidos por cuatro cuentas de títeres de calcetines «umarbek1233», «kekylf12», «tikeqemif26» y «umar_bektembiev1» durante un período de 13 horas, se enumeran a continuación:

  • strapi-plugin-cron
  • strapi-plugin-config
  • servidor-plugin-strapi
  • base de datos-plugin-strapi
  • strapi-plugin-núcleo
  • ganchos-plugin-strapi
  • monitor-plugin-strapi
  • eventos-plugin-strapi
  • registrador-plugin-strapi
  • strapi-plugin-salud
  • sincronización-plugin-strapi
  • semilla-plugin-strapi
  • correa-plugin-locale
  • formulario-plugin-strapi
  • strapi-plugin-notificar
  • strapi-plugin-api
  • strapi-plugin-sitemap-gen
  • complemento-strapi-herramientas-nordicas
  • strapi-plugin-nordica-sync
  • strapi-plugin-nordica-cms
  • complemento-strapi-nordica-api
  • complemento-strapi-nordica-recon
  • strapi-plugin-nordica-stage
  • complemento-strapi-nordica-vhost
  • complemento-strapi-nordica-deep
  • complemento-strapi-nordica-lite
  • complemento-strapi-nordica
  • complemento-strapi-finseven
  • strapi-plugin-hextest
  • complemento-strapi-cms-herramientas
  • strapi-plugin-sincronización-de-contenido
  • herramientas-depuración-plugin-strapi
  • control-de-estado-del-plugin-strapi
  • strapi-plugin-guardarian-ext
  • complemento-strapi-uuid-avanzado
  • complemento-strapi-blurhash

Un análisis de los paquetes revela que el código malicioso está incrustado en el enlace del script postinstalación, que se ejecuta en «npm install» sin requerir ninguna interacción por parte del usuario. Se ejecuta con los mismos privilegios que los del usuario instalador, lo que significa que abusa del acceso raíz dentro de entornos CI/CD y contenedores Docker.

Ciberseguridad

La evolución de las cargas útiles distribuidas como parte de la campaña es la siguiente:

  • Utilice una instancia de Redis accesible localmente para la ejecución remota de código inyectando una entrada crontab (también conocida como tabla cron) para descargar y ejecutar un script de shell desde un servidor remoto cada minuto. El script de shell escribe un shell web PHP y un shell inverso de Node.js a través de SSH en el directorio de cargas públicas de Strapi. También intenta escanear el disco en busca de secretos (por ejemplo, Elasticsearch y frases iniciales de billeteras de criptomonedas) y extraer un módulo API Guardarian.
  • Combine la explotación de Redis con el escape del contenedor Docker para escribir cargas útiles del shell en el host fuera del contenedor. También inicia un shell inverso directo de Python en el puerto 4444 y escribe un activador de shell inverso en el directorio node_modules de la aplicación a través de Redis.
  • Implemente un shell inverso, escriba un descargador de shell a través de Redis y ejecute el archivo resultante.
  • Escanee el sistema en busca de variables de entorno y cadenas de conexión de bases de datos PostgreSQL.
  • Un recolector de credenciales ampliado y una carga útil de reconocimiento para recopilar volcados de entorno, configuraciones de Strapi, extracción de bases de datos de Redis mediante la ejecución de los comandos INFO, DBSIZE y KEYS, mapeo de topología de red y secretos de Docker/Kubernetes, claves criptográficas y archivos de billetera de criptomonedas.
  • Lleve a cabo la explotación de la base de datos PostgreSQL conectándose a la base de datos PostgreSQL del objetivo utilizando credenciales codificadas y consultando tablas específicas de Strapi en busca de secretos. También descarta patrones coincidentes relacionados con criptomonedas (por ejemplo, billetera, transacción, depósito, retiro, activo, frío y saldo) e intenta conectarse a seis bases de datos de Guardarian. Esto indica que el actor de la amenaza ya está en posesión de los datos, obtenidos ya sea mediante un compromiso previo o por algún otro medio.
  • Implementar un implante persistente diseñado para mantener el acceso remoto a un nombre de host específico («prod-strapi»).
  • Facilite el robo de credenciales escaneando rutas codificadas y generando un shell inverso persistente.

«Las ocho cargas útiles muestran una narrativa clara: el atacante comenzó agresivamente (Redis RCE, Docker escape), descubrió que esos enfoques no funcionaban, giró hacia el reconocimiento y la recopilación de datos, utilizó credenciales codificadas para el acceso directo a la base de datos y finalmente se decidió por el acceso persistente con robo de credenciales dirigido», dijo SafeDep.

La naturaleza de las cargas útiles, combinada con el enfoque en los activos digitales y el uso de credenciales de bases de datos y nombres de host codificados, plantea la posibilidad de que la campaña fuera un ataque dirigido contra una plataforma de criptomonedas. Se recomienda a los usuarios que hayan instalado cualquiera de los paquetes antes mencionados que asuman un compromiso y roten todas las credenciales.

El descubrimiento coincide con el descubrimiento de varios ataques a la cadena de suministro dirigidos al ecosistema de código abierto.

  • Una cuenta de GitHub llamada «ezmtebo» ha enviado más de 256 solicitudes de extracción en varios repositorios de código abierto que contienen una carga útil de exfiltración de credenciales. «Roba secretos a través de registros de CI y comentarios de relaciones públicas, inyecta flujos de trabajo temporales para volcar valores secretos, aplica automáticamente etiquetas para evitar las puertas pull_request_target y ejecuta un escáner de fondo/procesamiento durante 10 minutos después de que sale el script principal», dijo SafeDep.
  • Un secuestro de «protocolo de desarrollo,» una organización verificada de GitHub, para distribuir robots comerciales maliciosos de Polymarket con dependencias npm con errores tipográficos («ts-bign» y «levex-refa» o «big-nunber» y «lint-builder») que roban claves privadas de billetera, filtran archivos confidenciales y abren una puerta trasera SSH en la máquina de la víctima. Mientras que «levex-refa» funciona como un ladrón de credenciales, «lint-builder» instala el SSH backdoor. Tanto «ts-bign» como «big-nunber» están diseñados para entregar «levex-refa» y «lint-builder», respectivamente, como una dependencia transitiva.
  • Un compromiso del popular paquete Emacs «.kubernetes-el/kubernetes-el,» que explotó la vulnerabilidad Pwn Request en su flujo de trabajo de GitHub Actions usando el disparador pull_request_target para robar el GITHUB_TOKEN del repositorio, filtrar secretos de CI/CD, desfigurar el repositorio e inyectar código destructivo para eliminar casi todos los archivos del repositorio.
  • Un compromiso de lo legítimo «xygeni/xygeni-acción» Flujo de trabajo de GitHub Actions que utiliza credenciales de mantenedor robadas para colocar una puerta trasera de shell inverso. Desde entonces, Xygeni ha implementaron nuevos controles de seguridad para abordar el incidente.
  • Un compromiso del paquete npm legítimo «.mgc,» mediante una apropiación de cuenta para impulsar cuatro versiones maliciosas (1.2.1 a 1.2.4) que contienen un script dropper que detecta el sistema operativo y recupera una carga útil específica de la plataforma (un troyano Python para Linux y una variante de PowerShell para Windows llamada WAVESHAPER.V2) de un Gist de GitHub. El ataque se superpone directamente con el reciente ataque a la cadena de suministro dirigido a Axios, que se ha atribuido a un grupo de amenazas de Corea del Norte rastreado como UNC1069.
  • Un paquete npm malicioso llamado «sesión-exprés-js» que escribe «express-session» y contiene un cuentagotas que recupera un troyano de acceso remoto (RAT) de siguiente etapa de JSON Keeper para realizar el robo de datos y el acceso persistente conectándose a «216.126.237[.]71» usando la biblioteca Socket.IO.
  • Un compromiso del paquete PyPI legítimo «.billetera-bittensor» (versión 4.0.2), para implementar una puerta trasera que se activa durante una operación de descifrado de billetera para exfiltrar claves de billetera usando HTTPS, túnel DNS y TLS sin formato como canales de exfiltración a un dominio codificado o uno creado usando un algoritmo de generación de dominio (DGA) que se rota diariamente.
  • Un paquete PyPI malicioso llamado «pironut» que escribe «pyrogram», un popular marco API de Python Telegram, para incorporar una puerta trasera sigilosa que se activa cada vez que un cliente de Telegram inicia y toma el control de la sesión de Telegram y el sistema host subyacente. «La puerta trasera registra controladores de mensajes ocultos de Telegram que permiten que dos cuentas controladas por atacantes codificadas ejecuten código Python arbitrario (a través del comando /e y la biblioteca meval) y comandos de shell arbitrarios (a través del comando y subproceso /shell) en el servidor de la víctima. máquina», afirmó Endor Labs.
  • Un conjunto de tres extensiones maliciosas de Microsoft Visual Studio Code (VS Code) publicadas por «IolitaLabs» – «solidity-macos», «solidity-windows» y «solidity-linux» – que originalmente estaban inactivos desde 2018, pero se actualizaron el 25 de marzo de 2026 para lanzar una puerta trasera de varias etapas dirigida a los sistemas Windows y macOS al iniciar la aplicación para establecer la persistencia. En conjunto, las extensiones tenían 27,500 instalaciones antes de ser eliminadas.
  • Múltiples versiones del «KhangNghiem/borrador rápido» Extensión VS Code en Open VSX (0.10.89, 0.10.105, 0.10.106 y 0.10.112) que ejecuta un descargador alojado en GitHub para implementar un Socket.IO RAT de segunda etapa, un ladrón de información, un módulo de exfiltración de archivos y un monitor de portapapeles desde un repositorio de GitHub. Curiosamente, las versiones 0.10.88, 0.10.111 y 0.10.129-135 se han encontrado limpios. «Ese no es el patrón de lanzamiento que se espera de una sola compilación comprometida o de un mantenedor que ha cambiado por completo a un comportamiento malicioso», dijo Aikido. «Parece más bien dos flujos de lanzamiento competitivos que comparten la misma identidad de editor».
Ciberseguridad

En un informe publicado en febrero de 2026, Group-IB reveló que los ataques a la cadena de suministro de software se han convertido en «la fuerza dominante que está remodelando el panorama global de amenazas cibernéticas», y agregó que los actores de amenazas persiguen a proveedores confiables, software de código abierto, plataformas SaaS, extensiones de navegador y proveedores de servicios administrados para obtener acceso heredado a cientos de organizaciones posteriores.

La amenaza a la cadena de suministro puede escalar rápidamente de una sola intrusión localizada a algo que tiene un impacto transfronterizo a gran escala, con atacantes industrializando los compromisos de la cadena de suministro y convirtiéndola en un ecosistema «auto-reforzado», ya que ofrece alcance, velocidad y sigilo.

«Los repositorios de paquetes como npm y PyPI se han convertido en objetivos principales, credenciales de mantenimiento robadas y gusanos de malware automatizados para comprometer bibliotecas ampliamente utilizadas, convirtiendo los canales de desarrollo en canales de distribución a gran escala de código malicioso», Group-IB dicho