Un estudio realizado por Truffle Security reveló que 543.699 credenciales únicas seguían siendo válidas y estaban expuestas en repositorios públicos de GitHub durante julio, pese a las herramientas de la plataforma destinadas a impedir la publicación accidental de secretos sensibles. Los resultados se obtuvieron tras analizar datos que incluían 224 millones de repositorios y más de 58.000 millones de archivos, incluidas copias bifurcadas de los repositorios.
El problema no se limitaba a secretos recientes; las credenciales únicas permanecieron disponibles públicamente durante una mediana de 784 días. Aproximadamente el 10% de las credenciales activas tenía más de 6,3 años, mientras que la credencial válida más antigua detectada por el estudio se remontaba a 2009.
Alcance y tendencia de la exposición
Las credenciales contabilizadas en el estudio aparecieron en más de 1,1 millones de archivos y repositorios. El análisis se basó en un conjunto de datos preparado para entrenar modelos lingüísticos grandes, a partir de un proceso de rastreo completado el 7 de agosto de 2025.
Truffle Security afirma que la cifra supera en más del doble la que detectó en agosto al analizar la plataforma Hugging Face, donde encontró 221.303 credenciales activas. La densidad de secretos activos también aumentó de 3,72 por cada millón de archivos en 2015 a un máximo de 11,62 en 2025.
¿Qué cambió con Push Protection?
GitHub introdujo la función Push Protection en abril de 2022 para los usuarios de Advanced Security, luego la habilitó para los repositorios públicos en mayo de 2023 y la activó de forma predeterminada un año después. La función analiza el código entrante en busca de patrones conocidos, como claves de API y tokens de acceso, y bloquea la carga cuando los detecta.
Sin embargo, la función no revoca ni desactiva las credenciales que se expusieron antes de ser detectadas. De las credenciales que seguían activas en julio, 199.843 se expusieron después de que Push Protection se activara para todos los usuarios en febrero de 2024, aproximadamente el 36,8% del total. Asimismo, el 51,8% de las credenciales activas pertenecía a categorías que la protección predeterminada no bloquea, incluidas las cadenas de conexión de bases de datos y las claves de Google API.
Aun así, la función pareció eficaz dentro de su ámbito de cobertura: la tasa de exposición de credenciales en las categorías protegidas disminuyó un 53% después de activarse de forma predeterminada.
¿Por qué es importante esta noticia?
Los resultados muestran que impedir la carga de un nuevo secreto no resuelve todo el riesgo. Los secretos pueden permanecer durante largos periodos en el historial del repositorio o en sus copias bifurcadas, y la eficacia de la respuesta varía según el tipo de credencial y el servicio asociado.
Por ejemplo, solo uno de los 101.886 tokens de npm expuestos seguía siendo válido, mientras que 69.041 de las 126.963 credenciales de cuentas de servicio de Google Cloud seguían siendo válidas durante el análisis. Truffle Security recomienda rotar inmediatamente las credenciales expuestas, limpiar los repositorios, revisar el historial de cambios y configurar la caducidad automática de los secretos activos.
El estudio no determina el porcentaje de secretos que fueron robados o utilizados realmente en ataques, por lo que mide el volumen de exposición susceptible de explotación, no la magnitud del daño confirmado. Este punto sigue siendo una de las preguntas abiertas que no debería confundirse con el número de credenciales válidas detectadas.