Vercel confirma una brecha de seguridad; hackers afirman estar vendiendo los datos robados
(bleepingcomputer.com)- Vercel confirmó oficialmente un incidente de seguridad por acceso no autorizado a sus sistemas internos y actualmente está colaborando con expertos en respuesta a incidentes y con las fuerzas del orden
- La causa de la brecha fue el compromiso de la app OAuth de Google Workspace de la herramienta de IA de terceros Context.ai, lo que permitió el secuestro de cuentas de empleados de Vercel
- Los atacantes enumeraron variables de entorno no sensibles (non-sensitive) para obtener privilegios de acceso adicionales, y esas variables estaban almacenadas sin cifrado
- Un hacker que dice ser ShinyHunters afirma en un foro de hacking que está vendiendo claves de acceso, código fuente, datos de bases de datos, claves API y más, y exige un rescate de 2 millones de dólares
- Vercel confirmó la seguridad de sus proyectos open source como Next.js y Turbopack, y recomendó a los clientes revisar sus variables de entorno y activar la función de variables sensibles
Resumen del incidente de seguridad
- Vercel es una plataforma de infraestructura en la nube para hosting y despliegue especializada en frameworks de JavaScript; es la empresa detrás de Next.js y ofrece funciones serverless, edge computing y servicios de pipelines de CI/CD
- A través de un aviso de seguridad, confirmó oficialmente que hubo acceso no autorizado (unauthorized access) a sus sistemas internos
- Informó que solo un subconjunto limitado de clientes se vio afectado y que el servicio en sí no sufrió impacto
- Contrató expertos en respuesta a incidentes y notificó a las autoridades, mientras continúa la investigación
Vía de intrusión y detalles técnicos
- La causa raíz de la brecha fue el compromiso de la app OAuth de Google Workspace de la plataforma de IA de terceros Context.ai
- El CEO de Vercel, Guillermo Rauch, publicó detalles adicionales en X (antes Twitter)
- Los atacantes comprometieron la cuenta de Google Workspace de un empleado de Vercel a través de la brecha en Context.ai
- Después, escalaron el acceso desde esa cuenta hacia el entorno de Vercel
- Los atacantes accedieron a variables de entorno marcadas como "no sensibles (non-sensitive)", que estaban almacenadas sin cifrado en reposo (not encrypted at rest)
- Vercel afirmó que almacena todas las variables de entorno de los clientes con cifrado completo en reposo (fully encrypted at rest) y cuenta con mecanismos de defensa en múltiples capas, pero las variables marcadas como "non-sensitive" actuaron como punto débil
- Se recomienda a los administradores de Google Workspace revisar la siguiente app OAuth:
110671459871-30f1spbu0hptbs60cb4vsmv79i7bbvqj.apps.googleusercontent.com
Afirmación de venta de datos por parte de los hackers
- Un actor de amenazas que dice ser ShinyHunters publicó en un foro de hacking un mensaje sobre la brecha de Vercel y la venta de datos
- A la venta: claves de acceso, código fuente, datos de bases de datos, acceso a despliegues internos y claves API, incluidos tokens de NPM y GitHub
- Presentó datos de Linear como prueba y afirmó tener acceso a múltiples cuentas de empleados
- Actores de amenazas previamente vinculados al grupo ShinyHunters negaron a BleepingComputer cualquier relación con este incidente
- Un archivo de texto compartido por el atacante incluye 580 registros de información de empleados de Vercel, compuestos por nombres, direcciones de correo de Vercel, estado de cuenta y marcas de tiempo de actividad
- También compartió una captura de pantalla que parecería mostrar un panel interno de Vercel Enterprise
- BleepingComputer no pudo verificar de forma independiente la autenticidad de esos datos y de la captura
- En mensajes de Telegram, el actor de amenazas afirmó estar en contacto con Vercel y haber exigido un rescate (ransom) de 2 millones de dólares
Respuesta de Vercel y recomendaciones para clientes
- Se confirmó que Next.js, Turbopack y otros proyectos open source están a salvo
- Se desplegó en el panel una página de resumen de variables de entorno y una interfaz mejorada para administrar variables de entorno sensibles
- Medidas recomendadas a los clientes:
- Revisar las variables de entorno (environment variables)
- Activar la función de variables de entorno sensibles (sensitive environment variable feature) para garantizar el cifrado cuando no se use
- Realizar rotación de secretos (secret rotation) si es necesario
3 comentarios
Comentarios en Hacker News
Acaban de actualizar el aviso, y me pareció importante que aclararan que la intrusión comenzó con el compromiso de una app OAuth de Google Workspace de una herramienta de IA de terceros
También publicaron IOC para apoyar la investigación, y decían que los administradores debían verificar de inmediato si esa app estaba en uso
La app OAuth es
110671459871-30f1spbu0hptbs60cb4vsmv79i7bbvqj.apps.googleusercontent.com, y el texto original puede verse en el aviso de seguridad de VercelEn particular, me llamó la atención la explicación de que fue posible obtener acceso adicional mediante la enumeración de variables de entorno no sensibles, y también surgió la hipótesis de que los atacantes eran un grupo sofisticado muy acelerado por IA
Aun así, que todavía no haya una notificación por correo para los usuarios me parece bastante preocupante
Entiendo que no quieran señalar directamente a la otra parte, pero ocultar el nombre del servicio da la impresión de que solo retrasa la respuesta
Hoy se ha vuelto demasiado normal ensamblar varias piezas de terceros en lugar de construir sobre una base estable, y eso multiplica los puntos de falla
Al final volvió a quedar claro que la seguridad solo es tan fuerte como el eslabón más débil, y creo que montar un negocio sobre herramientas de IA con vibra de vibe coding es un riesgo evidente
Me hizo preguntarme si realmente debemos seguir empujando en esta dirección, y cuánta más complejidad tiene que acumularse antes de que nos detengamos a reconsiderarlo
Al ver el análisis del stack recomendado por Claude Code, sentí que Claude Code está homogeneizando aún más la web al recomendar por defecto ciertos proveedores y frameworks
Esa falta de diversidad parece hacer que, cuando ocurre un incidente, el radio de impacto sea mucho mayor
Da la impresión de que ya quedó como la opción por defecto
Entonces le pedí que lo hiciera sin Node, y enseguida la reescribió con un backend en Python, explicando por sí mismo que así reducía dependencias
Ojo, esto fue solo un experimento para un resultado desechable, no una recomendación de vibe coding
Al final es un tema de cómo se usa, y creo que hay que guiar mejor a los desarrolladores para que no dejen que Claude tome las decisiones por ellos
Puedes recibir consejos, pero al final una persona debe revisarlos críticamente, y en ese sentido no se siente tan distinto de colaborar con otro miembro del equipo
Internet ya tenía esa tendencia, pero esta vez se siente distinta
Como alguien que antes estuvo en un equipo de respuesta a incidentes de seguridad, pude empatizar con lo duro que debe estar siendo esto para el equipo actual
Aun así, el primer comunicado realmente pareció una comunicación pésima
No decía qué había pasado, pero sí usaba frases como que era lo bastante serio como para informar a las fuerzas del orden, y la guía práctica para clientes era algo como “revisen las variables de entorno”
Pero desde la perspectiva del cliente, eso era demasiado ambiguo. No quedaba claro si había que ver si los valores seguían ahí, ni cómo se suponía que uno debía determinar si ya se habían filtrado
Para mí, debieron decir de inmediato que se rotaran todas las contraseñas, tokens de acceso y datos sensibles confiados a Vercel, y después indicar que se auditaran los logs de acceso y señales anómalas en los datos de clientes
Una de las razones para pagar hosting caro es justamente esperar que gestionen la seguridad y la estabilidad de forma profesional, y ahora mismo, incluso considerando la incertidumbre inicial, esto se ve demasiado deliberadamente vago
Aun así, si secretos como claves API, tokens, credenciales de DB o claves de firma no estaban marcados como sensitive, había que asumir una posible exposición y reemplazarlos con prioridad
La fuente era la página del incidente, y yo la vi a las 4:22 p. m. hora del Este
Soy cliente de pago desde hace más de un año, y es absurdo que me avise antes un agregador de noticias que el correo de la empresa
El contexto puede verse en el hilo de HN y en la reacción de ese momento
Todo lo demás en general se siente como una elección que se busca problemas
Aun así, yo ya decidí no depender más de esa comodidad, y migré todo de Render a linode
Antes pagaba más de 50 dólares al mes en Render y ahora estoy entre 3 y 5 dólares, así que casi no creo que vuelva a usar ese tipo de hosting
Al leer la frase “Vercel no reveló qué sistemas fueron comprometidos”, incluso sin ser experto en seguridad, eso me pareció una postura bastante difícil de justificar
También daba la impresión de que estaban más enfocados en protegerse a sí mismos que en ayudar a los clientes a entender el impacto
Por ejemplo, aunque dijeran que en GitHub comprometieron un subsistema X poco conocido, tal vez eso no ayudaría en la práctica más que la frase ya publicada de que “algunos entornos de clientes fueron comprometidos”
Al volver a ver que agregaron IOC al aviso, quedó claro que para toda la comunidad era información importante que este incidente empezó con el compromiso de una app OAuth de Google Workspace
Sentí que administradores y dueños de cuentas deberían revisar de inmediato ese identificador de app, y los detalles estaban en el aviso de Vercel
Yo estoy en un MacBook Pro con Chrome 147.0.7727.56, y apenas hice clic en el logo de Vercel arriba a la izquierda, Chrome se cerró de inmediato
Me pareció un bug bastante interesante
Es curioso que todos estén leyendo que quizá Vercel sufrió algún tipo de intrusión y, al mismo tiempo, estén probando si también pueden reproducir un crash de la página web
Claro, también pensé que este juego colectivo de reproducirlo de ninguna manera podía salir mal
Incluso grabé un video, y como uso uBlock Origin Lite pensé que quizá era eso, pero incluso desactivándolo no pasó nada
Hasta pensé que habría sido un poco divertido si se reproducía
Duró un tiempo, pero al final lo arreglaron
Pero después de abrir una vez la home de Vercel directamente por URL, al hacer clic en el logo ya no volvió a crashear
Pero ahora sí me da algo de cosa hacer clic en el botón de Finish update
Estaba viendo como referencia otro hilo de HN y varios posts en X
En la primera mención de Theo decía que parecía creíble, y en un post posterior dijo que las env var marcadas como sensitive estaban seguras y que los valores no marcados debían reemplazarse por precaución
En otro post comentó que este tipo de hack puede pasarle a cualquier host, y en otra mención se planteó una posible relación con ShinyHunters
Si necesariamente hay que reemplazarlo, entonces desde el principio era información sensible y debería haberse marcado como sensitive, ¿no?
A estas alturas no parece que haya aportado demasiada información sustancial
Este tipo de incidente vuelve a recordar lo concentrado que está el ecosistema web moderno en puntos únicos de falla
Lo que se ha revelado hasta ahora me parece relativamente transparente, pero sí me hizo recalcular el perfil de riesgo de depender por completo de un PaaS totalmente administrado
La expresión “un subconjunto limitado de clientes” me suena bastante ambigua, porque técnicamente podría aplicar incluso si fuera el 99%
También me generó la sospecha de si en realidad esto afectó a muchos clientes, y solo están llamando subset a los grandes clientes que no les conviene perder
Normalmente, si realmente pudieran tranquilizar, dirían algo como “menos del 1% de los usuarios” con una cifra concreta, pero esta vez no lo hicieron
Por eso me da la impresión de que todavía no tienen suficiente visibilidad, o que los números no les gustan
Aun así, empatizo con lo duro que debe estar siendo para el equipo de respuesta, y espero que de aquí en adelante se comuniquen de forma más abierta y transparente
Aquí también se ven caracteres en hindi. Últimamente, sin importar si es OpenAI, Claude o Google, pasa bastante seguido que se mezcla hindi en las salidas en coreano. ¿Será que personas de India hicieron el etiquetado del dataset en coreano?
Antes no me gustaban los modelos chinos porque mezclaban chino en las respuestas en coreano, pero últimamente los modelos frontier se la pasan metiendo hindi, así que irónicamente me ha bajado el rechazo hacia los modelos chinos.
A mí también me pasa que cuando uso Claude, a menudo sale en japonés. Ayer también pasó.