El 30 de abril de 2026 el desarrollador australiano Andrew Bird publicó lo que pasó cuando puso un agente de AI a reservarle clases de gimnasio. Corriendo sobre Claude Opus 4.6, el agente descubrió que podía reservar clases meses antes de que se habilitaran y cancelar reservas de otros socios. La falla no era nueva. Lo nuevo es que algo finalmente mandó un pedido que ningún cliente había mandado nunca, y ahí está lo que te importa si tu producto tiene API.
Cuál era el bug
El bug tiene nombre y puesto. Broken object level authorization —una API que acepta un pedido que nombra un objeto que quien llama no tiene derecho a tocar— está primero en el OWASP API Security Top 10, la lista de referencia de cómo fallan las APIs. OWASP define la autorización a nivel de objeto como "un mecanismo de control de acceso que se implementa habitualmente a nivel de código para validar que un usuario sólo pueda acceder a los objetos sobre los que tiene permisos". Uno de sus ejemplos es un servicio que borra documentos por ID sin chequear de quién son. La del gimnasio borraba reservas.
Lo que hace valioso el texto de Bird es que la API no estaba abierta. Cuando su agente redactó un mail de divulgación responsable —Bird aclara que se lo tuvo que pedir—, "comparó las mutations rotas con las que sí aplicaban autorización correctamente". Algunas escrituras chequeaban quién preguntaba. Otras no. No es el perfil de un sistema abandonado. Es el de uno normal.
Por qué nadie lo encontró en años
GraphQL, un lenguaje de consulta donde el cliente pide exactamente los campos que quiere y las escrituras se llaman mutations, hace que esa disparidad pase inadvertida. La guía de GraphQL de OWASP dice que la validación del control de acceso puede hacerse en los resolvers de query y mutation —las funciones individuales que leen o modifican cada pedazo de dato— y que los chequeos hay que aplicarlos "tanto en los edges como en los nodes". La autorización termina siendo propiedad de cada función. Cuarenta resolvers pueden estar bien y dos mal, y nada se pone en rojo al compilar.
La segunda razón es la que un equipo de producto tendría que masticar. Ninguna pantalla de esa app ofrece cancelar la reserva de un desconocido. El botón no existe, nadie lo apretó y ese camino nunca lo recorrió un usuario real. Nuestra lectura es que la interfaz estaba haciendo de control de acceso, no por diseño sino por omisión. El producto estaba a salvo porque sus únicos clientes eran personas usando el producto.
Qué cambia con un agente
Un agente no usa tu interfaz. Lee tu schema. GraphQL viene con introspection, una consulta incorporada que devuelve la estructura de la propia API, y OWASP es directo sobre lo que entrega: "le permite al consumidor de tu API enterarse de todo sobre tu API, schemas, mutations, campos deprecados y a veces 'campos privados' no deseados". Desde ahí prueba, a un costo por intento cercano a cero, sin el pudor que frena a una persona antes de meterse con la reserva de un tercero. La conclusión de Bird: "si le das permiso a un agente de AI para ir a hacer la cosa, muchas veces va a descubrir caminos que no le pediste explícitamente que buscara".
Nuestra lectura es que la población dispuesta a probar una escritura que no figura en ningún lado pasó de casi nadie a todo el que tenga un agente, sin que los productos del otro lado tocaran una línea de código.
Hay una versión más ruidosa que te importa menos. Anthropic anunció Project Glasswing el 7 de abril de 2026, dándoles a 11 socios iniciales y a más de 40 organizaciones acceso a Claude Mythos Preview, un modelo que dice que "no planea poner en disponibilidad general". Anthropic reporta haberlo usado para identificar "miles de vulnerabilidades zero-day (es decir, fallas previamente desconocidas para los desarrolladores del software), muchas de ellas críticas, en todos los sistemas operativos principales y todos los navegadores principales" —entre ellas una falla de 27 años en OpenBSD y una de 16 en FFmpeg—. Tu flujo de reservas no es OpenBSD. El caso del gimnasio sirve justamente porque no hubo nada excepcional: un modelo de consumo ya publicado, haciendo un mandado.
Qué hacer
Tres cosas, ninguna con presupuesto de seguridad.
- Poné el chequeo de propiedad donde se lee y se escribe el dato, no en el endpoint de adelante. OWASP recomienda chequear "si el usuario logueado tiene acceso a realizar la acción solicitada sobre el registro, en cada función que usa un input del cliente para acceder a un registro de la base de datos".
- Apagá introspection en producción. OWASP lo dice así: "deshabilitá las consultas de introspection en todo el sistema en cualquier entorno productivo o accesible públicamente".
- Escribí el test que ninguna pantalla generaría: autenticate con una cuenta, operá sobre el objeto de otra y afirmá que tiene que fallar. OWASP lo pone así: "no despliegues cambios que hagan fallar esos tests". Si hoy nada en tu suite hace eso, nunca lo chequeó nadie.
Nuestra posición es que esto dejó de ser tarea de seguridad y pasó a ser de diseño. Mientras la interfaz era el límite, "qué puede hacer esta cuenta" se respondía implícito, con lo que dibujabas. Ahora hay que responderlo explícito, en la especificación, al lado del modelo de datos, y no dejárselo a quien audita en la última semana de un proyecto.
Bird cierra con una frase que vale guardar: "gané poder. También gané radio de explosión". Estaba hablando de su propio agente. La versión que te preocupa es la otra: el agente es de tu cliente, pega contra tu API y hace algo que no se deshace —el suyo no pudo revertir la cancelación, según la cobertura del 10 de agosto de 2026—. De quién es ese incidente no lo resolvió nadie todavía: del cliente, del proveedor, o tuyo. La primera empresa que lo averigüe no va a poder elegir.
Fuentes
- Andrew Bird, When my AI agent hacked my gym, Mythos stopped feeling theoretical — Affinda, 30 de abril de 2026. La página original fue dada de baja; ésta es la copia del Internet Archive.
- API1:2023 Broken Object Level Authorization — OWASP API Security Top 10, edición 2023.
- GraphQL Cheat Sheet — OWASP Cheat Sheet Series, consultado el 12 de agosto de 2026.
- Project Glasswing — Anthropic, 7 de abril de 2026.
- Julie Bort, Tech industry is buzzing after a Claude agent hacked into a gym — TechCrunch, 10 de agosto de 2026.

![[object Object]](/_next/image?url=https%3A%2F%2Fres.cloudinary.com%2Fdh1xrwguk%2Fimage%2Fupload%2Fv1794330226%2Fblog%2Fmythos-fable-chips-v2-transparent.png&w=3840&q=75)
![[object Object]](/_next/image?url=https%3A%2F%2Fres.cloudinary.com%2Fdh1xrwguk%2Fimage%2Fupload%2Fv1793962274%2Fblog%2Fspotify-ai-remix-v1-transparent.png&w=3840&q=75)
![[object Object]](/_next/image?url=https%3A%2F%2Fres.cloudinary.com%2Fdh1xrwguk%2Fimage%2Fupload%2Fv1793282724%2Fblog%2Fgenie-4-cuaderno-transparent.png&w=3840&q=75)