Han hackeado tu hosting: rota las variables de entorno en el orden correcto
El 21 de octubre de 2026 Railway publicó un aviso de seguridad: esa misma mañana detectó actividad anómala en los sistemas que guardan las variables de entorno de sus clientes, y su investigación indica por ahora que un tercero no autorizado pudo acceder a variables cifradas y, en algunos casos, obtener su contenido descifrado. Railway recomienda a cada usuario rotar cada variable de entorno guardada allí, incluidas las claves de API y las credenciales de registros privados, y revisar los logs de esos servicios. Si despliegas una app de Laravel o Node en cualquier sitio, la lección va más allá de una empresa: tus secretos viven en la base de datos de otro, y el día que esa base se filtra descubres si eres capaz de cambiarlos.
Qué ha dicho Railway
Según Railway, las variables afectadas pueden contener claves de API y credenciales de bases de datos y de registros. La empresa dice que su análisis inicial sugiere que el impacto podría limitarse a una parte de los usuarios, pero aun así pide a cada usuario que rote. Cree que el incidente forma parte de una serie de ataques dirigidos últimamente a empresas de plataforma con el objetivo de llegar a proveedores de inferencia de IA, y avisó a esos proveedores para que revocaran claves de forma preventiva. Los despliegues quedaron en pausa durante la investigación, así que no se podían publicar versiones nuevas hasta que se restablecieran los builds. Railway dice que enviará un correo a los clientes con afectación confirmada y publicará actualizaciones en status.railway.com.
Ese último detalle importa al planificar. Si tu rotación depende de desplegar a través de la misma plataforma comprometida, puede que tengas que esperar. Buena razón para tener la lista lista antes de necesitarla.
El inventario que ya deberías tener
Lo que sigue es una recomendación general, no algo que Railway haya indicado. Empieza con una lista de cada secreto que usa la app y de dónde sale cada uno. En una app típica de Laravel o Node eso incluye la contraseña de la base de datos, las credenciales de colas y caché, las claves del servicio de correo, del proveedor de pagos y de los proveedores de IA, los secretos de cliente OAuth, los secretos de firma de webhooks, las claves de almacenamiento de objetos como S3 y los tokens de monitorización como los de Sentry. Junto a cada uno, apunta el proveedor, quién puede rotarlo y qué servicios lo leen. Sin esta lista, rotar empieza por leer código viejo para averiguar con qué habla la app.
Laravel tiene un secreto con efectos secundarios. Cambiar APP_KEY invalida cuanto se cifró o firmó con ella: cookies cifradas, sesiones, valores guardados con Crypt, URL firmadas. Laravel admite una lista de claves anteriores que se siguen usando para descifrar durante la rotación; lee la documentación de tu versión antes de confiar en ella. La forma es una lista separada por comas en el env:
APP_KEY=base64:the-new-key
APP_PREVIOUS_KEYS=base64:the-old-key
Ten en cuenta que, si la clave antigua se filtró, quien la tenga puede leer los datos cifrados con ella. Vuelve a cifrar lo que importe y elimina la clave antigua cuando ya no haga falta.
Rota en este orden: crear, desplegar, revocar
El orden que evita caídas es sencillo. Crea una credencial nueva en el proveedor mientras la antigua sigue funcionando. Pon el valor nuevo en el env y despliega. Comprueba que la app lo usa. Solo entonces revoca la antigua, en el proveedor, no borrándola de tu archivo env: una clave que quitaste de tu app sigue siendo válida para cualquiera que la haya copiado. Después, abre el panel de uso de cada proveedor y busca actividad que no hayas generado tú, en especial en API de pago.
Que la próxima salga más barata
De nuevo, como recomendación general: usa claves con alcance limitado y tope de gasto cuando el proveedor lo permita, claves separadas por entorno para que una filtración de staging no sea una de producción, y no dejes nunca que un secreto llegue a un repositorio git o a un log de build. Cada una de estas medidas reduce lo que puede costarte un solo almacén filtrado.
El siguiente paso es concreto. Hoy, escribe el inventario de una app: cada secreto, su proveedor y los pasos crear, desplegar, revocar para él. Si estás en Railway, sigue sus instrucciones y rota ya cada variable. Si no, haz el ejercicio igualmente, porque la pregunta no es si tu hosting será el siguiente, sino si podrías responder en una hora.
Fuente: blog de Railway, «Security Disclosure: Wednesday October 21st».
Notas de los lectores