Saltar al contenido

$ Guías

Revisa en cuatro pasos tu servidor, tus dependencias, tus llaves y cada paquete nuevo, con los comandos y versiones de los ataques recientes.

6 min de lectura#php#python#github

En resumen

Actualiza PHP y Java a las versiones corregidas, fija tus dependencias con un lockfile y retrasa las versiones recién publicadas, rota las llaves que pudieron filtrarse y revisa cada paquete nuevo antes de instalarlo.

Para revisar tu proyecto después de los ataques recientes basta con cuatro pasos: actualiza el lenguaje de tu servidor, fija tus dependencias, rota las llaves que pudieron filtrarse y revisa cada paquete nuevo antes de instalarlo. Esta guía te da los comandos y las versiones exactas de cada paso, tomados de los avisos oficiales de PHP, Oracle, LiteLLM, Railway y pnpm.

  1. 1ServidorActualiza PHP y Java a las versiones que corrigen los fallos.
  2. 2DependenciasFija versiones con un lockfile y retrasa las recién publicadas.
  3. 3LlavesRota las llaves que un paquete o un proveedor comprometido pudo leer.
  4. 4Paquetes nuevosRevisa cada dependencia antes de agregarla.
Los cuatro pasos de la checklist, en el orden en que conviene hacerlos.

1. Actualiza PHP y Java en tu servidor

Empieza por el lenguaje que ejecuta tu sitio, porque es lo que un atacante puede alcanzar sin iniciar sesión.

PHP. Los fallos conocidos como PHP2Shell permiten ejecutar código en el servidor sin autenticación y afectan a toda instalación de PHP que sirve páginas web, incluido WordPress. Revisa tu versión:

php -v

Las versiones corregidas son 8.5.12, 8.4.27, 8.3.36 y 8.2.35. Si tu hosting no te deja actualizar, pídeselo a tu proveedor. Contamos el incidente completo en el octubre negro de PHP2Shell.

Java. Oracle publicó la alerta CVE-2026-91403 para JSSE, la parte de Java que maneja las conexiones TLS. Tiene una puntuación de 9.1, se explota por red y sin credenciales. Revisa tu versión:

java -version

El parche trimestral no basta

La alerta lista como afectadas las versiones 8u511, 11.0.33, 17.0.21, 21.0.13, 25.0.5 y 27.0.1, que son las del último parche trimestral. Instala el parche específico de la alerta desde el documento de disponibilidad de parches que enlaza Oracle.

Mano con guante instalando un módulo nuevo en un rack de servidores con luces de estado rojas y verdes
Actualizar el lenguaje del servidor es el primer paso, porque es lo que se alcanza sin iniciar sesión. Imagen generada con IA para WilkieDevs.

2. Fija tus dependencias y retrasa las versiones nuevas

Este año, varios paquetes populares de npm salieron con versiones maliciosas publicadas desde cuentas o flujos de publicación comprometidos: axios en marzo, TanStack y node-ipc en mayo, y el gusano ChainDrop en agosto, que se copió en más de 400 paquetes. En Python pasó lo mismo con LiteLLM 1.107.0, publicada con un ladrón de credenciales en PyPI y Docker Hub.

Dos medidas reducen el riesgo:

  • Usa siempre un lockfile y no despliegues versiones latest a producción. Si usas LiteLLM, fija la versión 1.106.2, la última segura según su aviso.
  • Retrasa las versiones recién publicadas. pnpm tiene la opción minimumReleaseAge, en minutos, que no instala una versión hasta que pase ese tiempo desde su publicación. En pnpm 11 ya viene en un día; en pnpm 10 actívala en pnpm-workspace.yaml:
minimumReleaseAge: 1440

pnpm 10 además bloquea por defecto los scripts postinstall de las dependencias. Permite solo los de paquetes en los que confías con allowBuilds, en lugar de activarlos todos.

  • LockfileInstala siempre la misma versión revisada, no la última publicada.
  • minimumReleaseAgeDa tiempo a que se detecte y retire una versión maliciosa antes de que llegue a ti.
  • Scripts bloqueadosEvita que una dependencia ejecute código al instalarse.
Qué frena cada medida.
Caja de cartón sellada dentro de una vitrina de vidrio junto a un reloj de arena con arena roja
Retrasar las versiones nuevas funciona como una cuarentena: el paquete espera antes de entrar a tu proyecto. Imagen generada con IA para WilkieDevs.

3. Rota las llaves que pudieron filtrarse

Si instalaste una versión comprometida o tu proveedor reportó un acceso, da por filtradas las llaves que esa máquina o ese servicio podía leer.

LiteLLM 1.107.0. Su aviso pide no ejecutar pip primero en el entorno afectado, porque Python vuelve a cargar el archivo malicioso al arrancar. Borra los archivos cook.pth, cook.py y sitecustomize.py de cada carpeta site-packages afectada, reinstala la versión 1.106.2 o reconstruye el entorno, y rota las llaves de proveedores, las de la base de datos y los secretos del proceso.

Railway. Railway reportó un acceso al sistema donde guarda las variables de entorno de sus clientes, en algunos casos con los valores descifrados. Pidió rotar todas las variables, invalidó todos los tokens de su API y recomienda revisar consumos inesperados en OpenAI, Anthropic y Stripe.

Aísla la máquina antes de revocar tokens de GitHub

Las variantes de Shai-Hulud que afectaron a TanStack y tensorlake dejan un servicio que borra la carpeta personal del usuario si se revoca el token de GitHub robado. Desconecta la máquina y desactiva ese servicio antes de rotar las credenciales.

Llavero con llaves viejas junto a un cortafríos y un juego de llaves nuevas sobre un escritorio negro
Rotar una llave es cambiarla por una nueva: la vieja deja de abrir aunque alguien la tenga. Imagen generada con IA para WilkieDevs.

4. Revisa cada paquete nuevo antes de agregarlo

Antes de instalar una dependencia, revisa quién la publica, cuándo salió su última versión y si ejecuta scripts al instalarse. Para saber por qué un paquete está en tu proyecto, pregúntale a pnpm:

pnpm why <paquete>

Si no reconoces el paquete ni a quien lo pide, no lo instales hasta entender para qué está. Si prefieres que revisemos tu proyecto contigo, mira nuestro servicio de desarrollo web.

Fuentes

Preguntas frecuentes

¿Qué versiones de PHP corrigen PHP2Shell?

Las versiones corregidas son 8.5.12, 8.4.27, 8.3.36 y 8.2.35. Revisa la tuya con php -v y, si tu hosting no te deja actualizar, pídeselo a tu proveedor.

¿Basta con instalar el último parche trimestral de Java?

No. La alerta CVE-2026-91403 lista como afectadas las versiones del último parche trimestral, así que hay que instalar el parche específico de la alerta que publica Oracle.

¿Qué hace la opción minimumReleaseAge de pnpm?

Hace que pnpm no instale una versión hasta que pase el tiempo indicado en minutos desde su publicación. Con 1440 espera un día, tiempo en el que suelen detectarse y retirarse las versiones maliciosas.

¿Qué hago si instalé LiteLLM 1.107.0?

No ejecutes pip primero en ese entorno. Borra los archivos maliciosos de site-packages, reinstala la versión 1.106.2 o reconstruye el entorno y rota todas las llaves que esa máquina podía leer.

¿Quieres aplicarlo en tu negocio?

Cuéntanos tu caso y te decimos cómo lo resolveríamos.

Cotiza tu proyecto
Sam Wilkie

Escrito por

Fundador y desarrollador principal

Lidera el diseño y el desarrollo de cada proyecto, con código propio, SEO técnico y foco en resultados medibles. Es ingeniero Full Stack y de IA, fundó Lookitry y trabaja con Spec-Driven Development asistido por agentes de IA.

Más en Guías

Sigue leyendo

Ver todo en Guías