
CVE-2026-24880: Apache의 업그레이드 권고가 실제로 귀하의 Tomcat에 적용되나요? 버전 비교가 아닌 클래스 존재 여부로 수정 여부를 감지합니다. 7.0/8.0/8.5/9.0/10.0/10.1/11.0 라인을 지원합니다.
CVE-2026-24880 · GHSA-563x-q5rq-57qp —— Apache의
upgrade to version 11.0.20, 10.1.52 or 9.0.116 문구가 당신에게도 적용되나요?
대부분의 경우 적용되지 않으며, 그 이유는 네 가지로 나뉩니다. 이 도구는 당신의 아티팩트를 스캔하여 어떤 경우에 해당하는지 알려줍니다.
java -jar tomcat-line-check.jar /path/to/tomcat # 압축 해제 배포된 Tomcat
java -jar tomcat-line-check.jar app.war # war
java -jar tomcat-line-check.jar app.jar # Spring Boot fat jar
java -jar tomcat-line-check.jar --table # 일곱 개 라인의 판정표만 보기
java -jar tomcat-line-check.jar --utf8 ... # Windows 콘솔에서 중국어가 깨질 때 추가
unzip -l tomcat-coyote-<ver>.jar | grep ChunkExtension
org/apache/tomcat/util/http/parser/ChunkExtension.class 존재 = 패치 적용됨; 없음 = 패치 누락.
🔴 이 도구는 버전 번호 크기 비교로 패치 여부를 판정하지 않습니다 —— 버전 번호 표기 자체가 이 CVE에서 오류가 발생하는 지점이기 때문입니다. 판정표는 가 1차 소스에서 생성하며, 일곱 개의 단언(assertion)이 모두 통과하지 않으면 테이블 생성을 거부합니다.
tools/gen_table.py| 라인 | 최종 버전 | EOL | 패치 적용 | 출구 |
|---|---|---|---|---|
| 7.0 | 7.0.109 | 2021-03-31 | 없음 | ❌ 7.0.110 = 404 |
| 8.0 | 8.0.53 | 2018-06-30 | 없음 | ❌ 8.0.54 = 404 |
| 8.5 | 8.5.100 | 2024-03-31 | 없음 | ❌ 8.5.101 = 404 |
| 10.0 | 10.0.27 | 2022-10-31 | 없음 | ❌ 10.0.28 = 404 |
| 9.0 | 9.0.121 | 2027-03-31 | 9.0.115 없음 | ✅ 9.0.116 |
| 10.1 | 10.1.59 | EOL 아님 | 10.1.52 없음 | ✅ 10.1.53 |
| 11.0 | 11.0.25 | EOL 아님 | 11.0.18 없음 | ✅ 11.0.20 |
① 당신이 8.5 / 7.0 / 8.0 라인에 있는 경우 —— 공식이 제시한 세 버전 중 어느 것도 당신의 라인에 해당하지 않으며,
당신의 라인은 이미 단종되었습니다(8.5.101 / 7.0.110 / 8.0.54는 Maven Central에서 모두 404).
8.0은 더 특별합니다: 공식이 이를 unknown으로 표시하여, 「취약 여부」조차 답하지 않았습니다.
② 당신이 10.1 라인에 있는 경우 —— 공식은 10.1.52로 업그레이드하라고 하지만, 10.1.52 자체에 패치가 없습니다.
같은 공지의 이전 문단에서 10.1.0-M1 through 10.1.52를 영향을 받는 버전으로 나열했습니다.
Apache 자체의 security-10.html은
이 CVE를 10.1.53 섹션에 분류합니다; compare 10.1.52...10.1.53에는 실제로 패치 커밋 f07df938이 포함되어 있습니다.
→ 그 문구대로 업그레이드해도 업그레이드한 것이 아닙니다.
③ 당신이 10.0 라인에 있는 경우 —— 공식 공지에서 10.0.은 0회 등장합니다.
영향을 받는 목록에도, 두 개의 unknown 항목에도 없습니다; GitHub advisory의 두 구간
(>= 7.0.0, < 9.0.116 및 >= 10.1.0-M1, < 10.1.52)도 이를 포함하지 않습니다.
그런데 10.0.27의 ChunkedInputFilter 멤버는 7.0.109 / 8.5.100과 문자 그대로 동일하며, 10.0.28은 404입니다.
→ 10.0의 취약 여부를 답한 소스는 없습니다.
④ 당신이 Dependabot / OSV를 사용하는 경우 —— GitHub advisory는 7.0/8.5/9.0을 하나의 구간으로 압축하고,
first_patched_version = 9.0.116으로 설정하여, 기계가 8.5 사용자에게 9.0.116으로 업그레이드하라고 지시합니다.
그것은 다른 메이저 버전 라인이며, 패치가 아닙니다.
low로 평가했습니다(GitHub advisory는 high / CVSS 7.5로 표시).
두 숫자를 모두 여기에 나열하며, 자신에게 유리한 것만 선택하지 않습니다.1b586d6(9.0)· f07df938(10.1)· fde1a82(11.0)python tools/gen_table.py --dry # 단언만 실행, 파일 쓰지 않음
python tools/gen_table.py # 모든 단언 통과 시에만 LineTable.java 작성
단언 범위: 양성(9.0.116 / 10.1.53 / 11.0.20은 패치 클래스가 있어야 함), 음성(9.0.115 / 10.1.52는 없어야 함), 핵심 주장(공식 recommend에 정확히 10.1.52가 적혀 있음), EOL 라인, 출구 없음(최종 버전의 다음 버전은 반드시 404), 센티널(존재하지 않는 버전은 반드시 404여야 하며, 이는 404 판정 기준 자체가 정상임을 증명), 10.0 부재.
mvn package # JDK 17 필요; 런타임 의존성 없음
Apache-2.0