Si trabajas con WordPress y tienes un build de JavaScript por medio (Gutenberg, temas modernos, plugins con React…), estás usando npm. Y npm lleva meses siendo el patio de recreo favorito de los ataques de cadena de suministro: alguien compromete la cuenta del mantenedor de un paquete popular, publica una versión con código malicioso, y en cuestión de horas hay miles de proyectos infectados por el mundo.
La buena noticia: hay una línea de configuración que corta la mayoría de estos ataques en seco.
La línea mágica
Abre (o crea) el archivo .npmrc en la raíz de tu proyecto y añade:
min-release-age=7Ya está. Eso es todo.
Qué hace exactamente
Con esa línea, npm ignora cualquier versión de cualquier paquete publicada hace menos de 7 días. Es decir: aunque paquete-popular@2.5.7 acabe de salir hace 3 horas, tu instalación no la tocará. Se quedará en la última versión que ya tenga al menos una semana de vida.
¿Por qué funciona esto contra los ataques? Porque cuando comprometen un paquete popular, la comunidad lo detecta muy rápido —normalmente en horas— y la versión maliciosa se retira. Con una ventana de 7 días, tú ni siquiera llegas a instalarla. El ataque pasa por delante de tu proyecto sin tocarlo.
Requisitos
Necesitas npm 11.10.0 o superior. Comprueba tu versión con:
npm --version
Y si te hace falta, actualiza con:
npm install -g npm@latest
Dos cosas que NO arregla (importante saberlas)
Esto no es una bala de plata. Hay dos escenarios en los que min-release-age no te salva:
Si tu
package-lock.jsonya está envenenado, da igual. El lockfile manda: si dice que hay que instalar la versión X, npm instala la versión X, tenga la antigüedad que tenga. Revisa siempre los cambios en el lockfile antes de mergear pull requests, especialmente los automáticos de Dependabot y compañía.npxse salta la protección.npxejecuta paquetes sin pasar por tu configuración de instalación, así que la restricción no se aplica. Ojo con lo que ejecutas por ahí, sobre todo en scripts de CI.
¿Por qué deberías hacerlo hoy?
Porque el coste es literalmente escribir una línea en un archivo, y el beneficio es blindarte contra el 90% de los ataques de cadena de suministro que están pasando ahora mismo en npm.
Si mantienes un proyecto WordPress con build de JavaScript —un tema propio, un plugin con bloques Gutenberg, un headless con Next.js encima— esta es probablemente la mejor relación coste/beneficio en seguridad que puedes conseguir hoy en tu stack.
No lo dejes para mañana. Añádelo, commitea, y a otra cosa.