
CVE-2026-2332 y 4 CVE más de Jetty de 2026: ¿a cuáles afecta tu compilación de Jetty (o Spring Boot), y existe siquiera en Maven Central la versión corregida que Jetty nombra? Para las líneas EOL 9.4/10/11 la respuesta es 'consulta los detalles para disponibilidad' = 404.
¿Cuáles de estas seis CVE de 2026 afectan a tu despliegue de Jetty (o al Jetty que arrastra Spring Boot), y la versión que la documentación oficial te dice que actualices, existe realmente en Maven Central?
El foco principal es CVE-2026-2332 (GHSA-355h-qmc2-wpwf, high / CVSS v3 7.4): contrabando de solicitudes chunked en jetty-http.
El 2026-09-17 la documentación oficial publicó además la CVE-2026-19203 de la misma familia (contrabando LF EXT.TERM, high / CVSS v4 8.3): su rama 9.4 cubre hasta 9.4.63,
y la documentación oficial te indica actualizar a 9.4.64 — pero 9.4.64 también da 404 en Central.
El hecho más contundente: las versiones públicas corregidas de las tres ramas antiguas EOL 9.4 / 10 / 11 simplemente no existen — la página de seguridad oficial indica para cada una de ellas
see details for availability (= soporte comercial), y esos números de versión, verificados en Maven Central, dan todos 404.
java -jar jetty-line-check.jar /path/to/jetty # 解压部署的 Jetty(扫 lib/*.jar)
java -jar jetty-line-check.jar app.war # war
java -jar jetty-line-check.jar app.jar # Spring Boot fat jar
java -jar jetty-line-check.jar --table # 只看六条 CVE × 模块 × 版本线的判定表
java -jar jetty-line-check.jar --utf8 ... # Windows 控制台中文乱码时加
El criterio del proyecto hermano tomcat-line-check es «si el jar contiene cierta clase de corrección», porque aquella corrección de Tomcat añadió una clase nueva.
Con Jetty estas no sirven. El principal, CVE-2026-2332, cuya corrección modifica el cuerpo del método de HttpParser y no añade ninguna clase
(verificado antes de construir con gh api compare + javap). Por eso el criterio solo puede ser:
Tus coordenadas completas + línea de versión, qué CVE cumplen; y si la versión corregida señalada oficialmente existe realmente en Maven Central.
La tabla de decisión la genera tools/gen_table.py a partir de los vulnerabilities[] de seis avisos de GitHub + el sondeo HEAD del jar real en Maven Central,
y se niega a emitir la tabla si no pasan siete grupos de aserciones (control positivo / afirmación central / versión final de la línea antigua / centinela / estructura del principal / módulo dividido / calificación).
| Tres estados | Significado |
|---|---|
PUBLIC | el aviso señala una versión corregida y esta realmente está en Maven Central —— actualizable públicamente |
404 | el aviso señala una versión corregida, pero esta da 404 en Central —— la página oficial de seguridad dice see details for availability (soporte comercial) |
无 | el aviso no da en absoluto una versión corregida para esta línea (first_patched_version vacío) —— para corregir esta línea solo cabe actualizar saltando de versión mayor |
Toda esa franja de 404 y 无 de las líneas antiguas (9.4 / 10.0 / 11.0) es justamente el valor de esta herramienta. Ejecuta --table para ver el panorama completo.
org.eclipse.jetty, año 2026)| CVE | Módulo | Calificación | En una frase |
|---|---|---|---|
| CVE-2026-2332 | jetty-http | high / v3 7.4 | ⭐ Principal: el \r\n dentro de un quoted-string chunked se interpreta como fin de cabecera de fragmento → contrabando de solicitudes (CWE-444) |
| CVE-2026-19203 | jetty-http | high / v4 8.3 | ⭐ Secuela de la misma familia que 2332 (09-17): el \n (LF) en la extensión de chunk se interpreta como fin de cabecera de fragmento → contrabando (LF EXT.TERM); la línea 9.4 cubre hasta 9.4.63 |
| CVE-2026-5795 | jaspi (12.x se divide en ee8/9/10/11-jaspi) | high / v3 7.4 | El ThreadLocal de JASPI no se limpia → escalada de privilegios |
| CVE-2026-6790 | jetty-server | medium / v3 5.3 | Confusión entre Host / :authority en HTTP/2·3 |
| CVE-2026-10050 | jetty-security (12.x añade ee8/9-security) | high / v4 8.7 | Manejo de ISO-8859-1 en la autenticación Digest |
| CVE-2025-11143 | jetty-http | low / v3 3.7 | Diferencias en el análisis de URI |
🔴 La superficie afectada de los dos de contrabando (2332 y 19203) se sostiene (ambos caen en la ruta principal de análisis por defecto ServerConnector / HttpParser,
no requieren activar ninguna función específica). Los otros cuatro solo figuran como una fila en la tabla de decisión:
--table como en la salida del escaneo), no des falsos positivos en despliegues por defecto. Las líneas 9.4 / 10 / 11 / 12.0 sí se ven afectadas por defecto.CVE-2026-10050 (Digest) es muy pequeña —— solo se alcanza si se habilita explícitamente la autenticación Digest, no lo uses como argumento de venta principal.CVE-2026-6790 es medium y CVE-2025-11143 es low —— no se permite llamarlos en conjunto «de alta gravedad».vulnerabilities está vacío,
Dependabot puede reportar «existe este agujero» pero no puede dar «a qué versión actualizar»; el intervalo solo está en el aviso a nivel de repositorio. En cuanto la base global lo complete, esta frase debe cambiarse.see details for availability, hasta ahí llega.GHSA-p2j5-5566-vpv9 global tiene vulnerabilities vacío)GHSA-r7p8-xq5m-436c · GHSA-7p3p-8qv8-m2vh · GHSA-2fvj-hgj9-j2gr · GHSA-wjpw-4j6x-6rwhsee details for availability):https://jetty.org/security.htmlpython tools/gen_table.py --dry # 只跑断言,不写文件
python tools/gen_table.py # 断言全过才写 CveTable.java
python tools/recheck_before_publish.py # 发文当天重跑,主张失效就改文案别改判据
mvn package # 需要 JDK 17;运行时零依赖(JUnit 仅测试期)