Depthfirst reporta 105 fallas en proyectos de Ruby con 8.6 mil millones de descargas

La startup de seguridad de IA dice que 62 hallazgos han sido reconocidos por los mantenedores, tras fallas relacionadas que permitieron la ejecución de código en GitLab autogestionado.

By · Published

Primary source: X

Why it matters

Depthfirst's findings show how native code can undermine a memory-safe language, while the GitLab exploit tests whether AI security agents can connect buried bugs to reachable product risk.

Illustration of Depthfirst exposing 105 flaws in widely used Ruby projects, showing fragmented code and warning icons tied to self-managed GitLab.

Qasim Mithani, Andrea Michi (@andreamichi), y Daniele Perito de Depthfirst dijeron el 27 de julio que su plataforma de seguridad de IA encontró y validó 105 vulnerabilidades en 34 proyectos Ruby cuyos paquetes han registrado más de 8.6 mil millones de descargas combinadas.

La cifra proviene de una revisión de aproximadamente 40 proyectos de gemas Ruby, con Depthfirst enfocándose en paquetes que incluyen extensiones nativas en C. En su informe técnico, Depthfirst dijo que los mantenedores han reconocido 62 de los hallazgos. Esa distinción importa: el conteo principal es el total validado por Depthfirst, mientras que el reconocimiento por parte de los proyectos afectados cubre un subconjunto más reducido.

La investigación surgió del descubrimiento anterior de Depthfirst de dos fallas de corrupción de memoria que los investigadores encadenaron para lograr ejecución remota de código en instalaciones autogestionadas de GitLab. El escaneo más amplio le da a Depthfirst una prueba concreta de la premisa detrás de su producto: agentes de IA especializados pueden pasar de detectar código sospechoso a reproducir vulnerabilidades, rastrearlas hasta aplicaciones descendentes y proponer correcciones.

Mithani previamente desarrolló productos para desarrolladores y seguridad en AWS y dirigió trabajo de infraestructura en Databricks. Perito cofundó Faire, trabajó en el equipo fundador de Cash App y realizó investigación de seguridad en UC Berkeley. Michi fue líder de ingeniería de investigación en Google DeepMind, donde trabajó en aprendizaje por refuerzo para Gemini y AlphaDev. Sus trayectorias explican la decisión de Depthfirst de entrenar sistemas específicos para seguridad en lugar de tratar la seguridad de aplicaciones como otro prompt añadido a un modelo de propósito general.

La capa insegura bajo Ruby

Ruby maneja la memoria automáticamente a nivel de aplicación, protegiendo a los desarrolladores de muchos de los errores de asignación y punteros comunes en C y C++. Las gemas Ruby que contienen extensiones nativas en C cruzan ese límite. Esas extensiones pueden introducir búferes de tamaño fijo, conversiones de enteros inseguras, punteros obsoletos y objetos cuya vida útil ya no es gestionada correctamente por el recolector de basura de Ruby.

Depthfirst dijo que las violaciones de seguridad de memoria representaron alrededor del 61% de sus hallazgos. Los paquetes afectados abarcan analizadores (parsers), controladores de bases de datos, servidores web, bibliotecas criptográficas, herramientas de procesamiento de imágenes, componentes de redes y enlaces a bibliotecas nativas.

Una vulnerabilidad afectó a Nokogiri, un parser XML y HTML de uso generalizado. Según el análisis de Depthfirst, el bug entró en Nokogiri en 2009 y sobrevivió hasta que se lanzó la versión 1.19.4 el 18 de junio de 2026. El fallo convirtió un índice de arreglo de 64 bits a un entero de 32 bits durante una verificación de límites y luego usó el valor original de 64 bits para acceder a la memoria. Un índice negativo lo suficientemente grande podría, por tanto, pasar la validación y desencadenar una lectura fuera de límites.

Otro hallazgo afectó a concurrent-ruby, una biblioteca de concurrencia utilizada por Rails y otro software Ruby. Un contador de bloqueos de lectura (read-lock) y una bandera de bloqueo de escritura (write-lock) compartían el mismo entero. Tras 32,768 adquisiciones repetidas del bloqueo de lectura, el conteo podría desbordarse hacia el bit que representa la propiedad del bloqueo de escritura, haciendo que el código reportara acceso exclusivo sin bloquear a otros lectores.

Depthfirst dijo que sus agentes generaron entradas que disparan la vulnerabilidad, scripts de reproducción y evidencia como salidas de AddressSanitizer antes de la revisión humana. Los hallazgos llegaron a través de su Open Defense Initiative, que ofrece créditos a los mantenedores de proyectos de código abierto ampliamente desplegados y alimenta los descubrimientos al producto Supply Chain de Depthfirst.

De un bug en Oj a la ejecución de código en GitLab

El resultado más consecuente provino de Oj, un parser JSON de alto rendimiento implementado en parte en C. El sistema de Depthfirst priorizó 18 vulnerabilidades potenciales en Oj, incluidas siete problemas de seguridad de memoria. Los investigadores combinaron una escritura fuera de límites con una divulgación de puntero del heap para producir una cadena de ejecución remota de código.

GitLab usaba el parser Oj afectado al renderizar diferencias entre versiones de archivos de Jupyter Notebook. Según Depthfirst, un miembro autenticado del proyecto que pudiera hacer push de commits y ver la diff de un commit podía colocar datos de notebook manipulados en un repositorio y encaminar esos bytes hacia Oj dentro de un worker Puma de GitLab.

Depthfirst dijo que la cadena afectó a GitLab Community Edition y Enterprise Edition en las versiones 15.2.0 hasta 18.10.7, 18.11.0 hasta 18.11.4, y 19.0.0 hasta 19.0.1. El lanzamiento de parche del 10 de junio de GitLab actualizó Oj a la versión 3.17.3 en GitLab 18.10.8, 18.11.5 y 19.0.2. GitLab recomendó actualizaciones inmediatas para las instalaciones autogestionadas afectadas y dijo que GitLab.com ya estaba parcheado. Depthfirst también publicó código de prueba de concepto.

La cadena de GitLab afina el argumento comercial detrás de Depthfirst. Un escáner que simplemente etiqueta código C inseguro dejaría a los ingenieros de seguridad la tarea de determinar si el bug es alcanzable desde una interfaz del producto. Depthfirst rastreó el parser vulnerable a través de la función de diferencias de notebooks de GitLab y demostró una ruta desde datos controlados por el repositorio hasta la ejecución de código.

Los inversionistas ya han hecho una gran apuesta en ese enfoque. Depthfirst anunció una Serie B de $80 millones liderada por Meritech Capital el 31 de marzo, con la participación de Forerunner Ventures, The House Fund, Accel, BoxGroup, Liquid 2 Ventures, Alt Capital y Mantis VC. La ronda siguió a una Serie A de $40 millones liderada por Accel en enero y elevó la financiación divulgada de Depthfirst a $120 millones.

La investigación en Ruby ahora les da a Mithani, Michi y Perito evidencia más allá de métricas de clientes y puntajes de benchmark. Paquetes maduros de código abierto aún contienen bugs que pueden sobrevivir durante años, y un fallo en una dependencia de bajo nivel puede convertirse en una vulneración a nivel de aplicación varias capas aguas abajo. Depthfirst apuesta a que los agentes de seguridad diseñados para seguir todo ese recorrido se convertirán en parte de la propia cadena de suministro de software.

Reader comments

Conversation for this story loads after sign-in.