Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
scc-check — Comprobador offline para Spring Cloud Config CVE-2026-40982 — te indica si tu línea de versión tiene alguna corrección OSS (3.1.x/4.1.x/4.2.x: no la tiene). | Kitploit
Herramientas/GitHubGitHub/xiaoqimikko/scc-check
Análisis EstáticoEscáneres de VulnerabilidadesAnálisis de VulnerabilidadesDevSecOpsSeguridad de Cadena de Suministro
GitHubxiaoqimikko/scc-check

scc-check

Comprobador offline para Spring Cloud Config CVE-2026-40982 — te indica si tu línea de versión tiene alguna corrección OSS (3.1.x/4.1.x/4.2.x: no la tiene).

Ver Repositorio
hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

scc-check

Herramienta de diagnóstico offline para Spring Cloud Config CVE-2026-40982 —— sin dependencias, un solo jar, sin conexión a la red.

No responde a «¿me afecta?», sino a esa pregunta más incómoda:

Mi línea de versión, ¿tiene realmente alguna versión segura a la que pueda actualizar en Maven Central?

Para las tres líneas 3.1.x / 4.1.x / 4.2.x, la respuesta es no.


Por qué se necesita

El advisory oficial (spring.io/security/cve-2026-40982) indica las versiones corregidas:

Línea de versiónVersión oficial corregidaDisponibilidadVersión más alta de esa línea en Maven Central¿Puedes actualizar?
3.1.x3.1.14Enterprise Support Only3.1.10❌
4.1.x4.1.10Enterprise Support Only4.1.7❌
4.2.x4.2.7Enterprise Support Only4.2.4❌
4.3.x4.3.3OSS4.3.4✅
5.0.x5.0.3OSS5.0.4✅

Esas tres versiones corregidas no están en repositorios públicos. Cualquiera puede verificarlo:

curl -sI https://repo1.maven.org/maven2/org/springframework/cloud/spring-cloud-config-server/4.2.7/
# HTTP/1.1 404 Not Found

Y además, las herramientas automatizadas no te dirán esto — en los datos estructurados del aviso de GitHub, el first_patched_version de estas tres líneas es exactamente null:

{"range": "<= 3.1.13",          "first_patched_version": null}
{"range": ">= 4.1.0, <= 4.1.9", "first_patched_version": null}
{"range": ">= 4.2.0, <= 4.2.6", "first_patched_version": null}
{"range": ">= 4.3.0, <= 4.3.2", "first_patched_version": "4.3.3"}
{"range": ">= 5.0.0, <= 5.0.2", "first_patched_version": "5.0.3"}

Dependabot / OSV consumen exactamente estos datos. Sin un objetivo de actualización, no se puede dar una recomendación de actualización.


Uso

java -jar scc-check.jar <目录或 jar/war 路径>

# 中文乱码时(Windows 控制台代码页与 Java 判断常常对不上):
java -jar scc-check.jar target/ --utf8

Requiere Java 17+. Cero dependencias en tiempo de ejecución, se puede colocar directamente en un entorno offline.

Códigos de salida: 2 hay líneas de versión que no se pueden actualizar · 1 afectado pero actualizable / no se puede determinar · 0 no encontrado · 3 error de uso o de ruta

Qué lugares inspecciona

  • Nombres de archivo .jar / .war
  • Dependencias embebidas en fat jars y wars de Spring Boot (BOOT-INF/lib/, WEB-INF/lib/)
  • Metadatos Maven dentro del jar (META-INF/maven/.../pom.properties) — reconoce el jar aunque haya sido renombrado
  • pom.xml

Tres cosas que deliberadamente no hace

1. No cuenta al cliente como afectado. Este CVE solo afecta al lado servidor spring-cloud-config-server. Los proyectos que incluyen spring-cloud-starter-config (cliente) no se ven afectados; la herramienta te lo indica claramente en lugar de hacerte preocupar sin motivo.

2. No emite veredicto para 4.0.x. Ningún rango del advisory oficial cubre 4.0.x (4.0.0 > 3.1.13, no cae en la línea sin límite inferior). La herramienta solo informa «fuera del alcance oficial», no reporta CRITICAL — rellenar la tabla de veredictos con conjeturas llevaría a tomar decisiones equivocadas.

3. Cuando no puede leer la versión, dice explícitamente «no se puede determinar», nunca lo trata como seguro. Spring Cloud gestiona las versiones de forma unificada mediante release train, y en el pom.xml a menudo no hay <version> en absoluto. En ese caso la herramienta te indica que escanees los artefactos de compilación, en lugar de fingir que no se encontró ningún problema. Del mismo modo, las dependencias con scope test / provided no se propagan a los consumidores y no cuentan como superficie de exposición; las dependencias envueltas en comentarios XML se eliminan.


La tabla de veredictos se genera, no se copia a mano

tools/gen_rules.py compila RuleTable.java a partir de dos fuentes de datos primarias:

  • GitHub advisory GHSA-6g23-24mc-hx6x → rangos afectados + versión oficial corregida
  • maven-metadata.xml de repo1.maven.org → versiones que realmente existen en el repositorio público

E incluye cuatro aserciones: número de rangos ≥5, first_patched=null ≥3, líneas de versión ≥5, clasificadas como ENTERPRISE_ONLY ≥3. Si alguna no se cumple, se aborta directamente y no se genera el archivo — de lo contrario, un fallo de análisis produciría una tabla vacía, y las pruebas unitarias contra una tabla vacía seguirían pasando en verde.

python tools/gen_rules.py     # 重新生成判定表
mvn test                      # 31 个测试

Descargo de responsabilidad

Esta herramienta solo realiza comparación de versiones; no detecta si tu Config Server está realmente expuesto a Internet, si tiene un WAF, o si ya se ha mitigado por otros medios. El resultado es un punto de partida para la investigación, no una conclusión de seguridad. Prevalece el aviso oficial (advisory).

Licencia

MIT


¿Necesitas una investigación más profunda?

Esta herramienta responde a «¿estoy afectado o no?». Lo siguiente no puede responderlo, pero puedes contactarme para hacerlo:

  • Las dependencias han sido sometidas a shade / relocate, o el artefacto de compilación simplemente no está disponible
  • Lo que hay que determinar es «si este CVE realmente se activa en nuestra cadena de llamadas», y no solo si coincide la versión
  • Se necesita personalización según vuestro propio flujo de compilación o entorno de red interna, e integrarlo en el pipeline existente
  • Tienes el mismo tipo de problema con otro componente y aún no existe una herramienta lista

📮 [email protected] —— explica la situación y en 24 horas te daré una respuesta escrita de una página: si se puede hacer, dónde está la dificultad y cuánto tiempo tomará aproximadamente. Este paso es gratuito y no requiere que te comprometas a nada de antemano.

Códigos de salida

CódigoSignificado
0El escaneo terminó y cada archivo se leyó realmente, sin hallazgos que requieran tu acción
4Hay archivos que no se pueden leer —— no es un zip, contenido truncado, o fallo de lectura

🔴 El código 4 se añadió el 2026-09-09, y la razón merece explicarse claramente. Antes de eso, los archivos que no se podían leer solo dejaban una línea de aviso en la salida, mientras que el código de salida seguía siendo 0 —— el rastro es para que lo vean las personas, pero CI y los scripts miran el código de salida, así que «no pude leerlo» equivale a «aprobado» en la automatización. Un jar corrupto, cifrado o descargado de forma incompleta se convierte silenciosamente en un «no se encontraron problemas».

«No puedo leerlo» y «estás a salvo» deben ser dos frases distintas.

⚠️ Un jar vacío legítimo no cuenta como ilegible (un registro EOCD de 22 bytes es un zip vacío real) y no activa el 4 —— cuando hay demasiadas alertas falsas, nadie presta atención a las alertas reales.

El significado de los demás códigos de salida se encuentra en las secciones anteriores sobre los niveles de veredicto y las instrucciones de uso.

Descargar herramienta