보안이슈

Apache Tomcat 취약점 10건 분석|인증 우회와 서비스 거부 대응

Apache Tomcat의 인증·경로·RewriteValve·HTTP/2·WebSocket·UDS 관련 CVE 10건을 구성 조건별로 구분하고 활성 분기별 수정판과 검증 순서를 다룹니다.

Apache Tomcat 취약점 10건 표지
Apache Tomcat 취약점 10건 표지

공개 범위와 분기

Apache Tomcat 보안 페이지에는 인증·보안 제약·RewriteValve·HTTP/2·WebSocket·Unix Domain Socket 등 서로 다른 경계를 다루는 CVE 10건이 공개됐습니다. 활성 분기의 수정 릴리스는 11.0.25, 10.1.59, 9.0.121입니다. 10.1.58은 후보 투표를 통과하지 못했으므로 수정판으로 간주하면 안 됩니다. 운영자는 제품 이름만 확인하지 말고 실제 실행 분기, 패키지 공급자 빌드, 컨테이너 태그와 임베디드 Tomcat 버전을 대조해야 합니다. 같은 조직에서도 스프링 부트 내장형과 독립 설치형, 상용 제품에 포함된 번들이 섞일 수 있어 자산별 업데이트 경로가 달라집니다.

CVE-2026-68569 인증 실패 개방

CVE-2026-68569는 CLIENT-CERT 또는 SPNEGO 인증을 사용하면서 DataSourceRealm이나 JDBCRealm에 사용자가 없을 때 주체 조회가 실패 개방으로 이어질 수 있은 중요 취약점입니다. 인증서나 Kerberos를 쓴다는 사실보다 Realm 구성과 사용자 저장소의 조회 결과가 핵심 조건입니다. server.xml과 애플리케이션 보안 설정에서 인증 방식·Realm·사용자 테이블을 확인하고, 존재하지 않은 사용자와 비활성 사용자가 인증되는지 안전한 시험 계정으로 검증합니다. 수정판 적용 전에는 해당 인증 경로를 제한하고 인증 성공·실패 로그와 Realm 오류를 보존합니다.

CVE-2026-68525 FORM 리디렉션

CVE-2026-68525는 FORM 인증의 저장 요청과 리디렉션 처리에서 메서드별 보안 제약을 우회할 수 있은 낮은 심각도 문제입니다. GET과 POST에 다른 접근 규칙을 두거나 특정 메서드만 보호하는 애플리케이션이 우선 대상입니다. web.xml과 애노테이션 기반 security-constraint를 모두 확인하고, 로그인 전 요청이 인증 후 어떤 메서드와 경로로 복원되는지 시험합니다. 프록시가 메서드를 바꾸거나 리디렉션을 재작성하는 구조도 포함합니다. 수정판 뒤에는 허용 메서드와 차단 메서드가 기대대로 분리되는지 확인합니다.

CVE-2026-66422 역할 별칭

CVE-2026-66422는 `security-role-ref` 별칭 처리의 오류로 선언적 역할 제약을 우회할 수 있은 문제입니다. 서블릿 코드가 `isUserInRole`을 호출할 때 배포 서술자의 별칭과 실제 역할이 어긋나는 애플리케이션에서 영향이 커집니다. 역할 이름, 그룹 매핑, 보안 제약과 애플리케이션 코드의 호출 문자열을 대조하고, 관리자·운영자·일반 사용자 계정으로 기능별 접근을 검증합니다. 역할을 단순화한다는 이유로 여러 별칭을 같은 그룹에 연결하면 검증이 어려워지므로 수정판 적용과 함께 불필요한 role-ref를 다룹니다.

CVE-2026-66299 WebSocket 예제

CVE-2026-66299는 배포된 WebSocket 채팅 예제에서 느린 클라이언트가 무제한 버퍼를 유발해 메모리를 소진할 수 있은 문제입니다. examples 애플리케이션을 제거한 환경은 해당 조건에서 벗어나지만, 기본 이미지나 교육 서버를 운영에 그대로 사용하면 노출될 수 있습니다. webapps 아래 examples 존재 여부, 가상호스트 라우팅, 외부 프록시 경로를 확인하고 사용하지 않은 예제는 제거합니다. 수정판 적용 뒤에는 느린 소비자에 대한 버퍼 제한과 연결 종료가 동작하는지 부하를 통제한 시험 환경에서 검증합니다.

CVE-2026-65182 보안 경로 우선순위

CVE-2026-65182는 더 긴 경로 규칙이 제한적인 하위 경로 규칙보다 먼저 선택되는 경우 보안 제약을 우회할 수 있은 중요 취약점입니다. 경로가 길수록 더 구체적이라는 일반 기대와 실제 매칭 순서가 어긋나는 구성이 문제를 만들 수 있습니다. web.xml의 URL 패턴과 애노테이션 경로, 프록시의 prefix 재작성, 컨텍스트 경로를 한 표에서 비교합니다. 보호 경로의 상위·하위·확장자 패턴을 역할별로 요청해 기대한 제약이 적용되는지 확인하고, 겹치는 패턴은 단순화합니다.

CVE-2026-65183 UDS 경쟁 조건

CVE-2026-65183은 Unix Domain Socket을 사용하는 구성에서 파일 확인과 사용 사이의 경쟁 조건으로 로컬 접근이 영향을 줄 수 있은 문제입니다. UDS 경로, 소유자, 그룹, 디렉터리 권한과 Tomcat 실행 계정을 확인하고, 소켓 디렉터리를 일반 사용자가 쓰거나 교체할 수 없게 제한합니다. 컨테이너에서 hostPath로 소켓을 공유하거나 여러 서비스가 같은 디렉터리를 사용하는 경우에는 로컬 경계가 넓어집니다. 수정판 적용과 함께 마운트 권한, 임시 디렉터리 정리 절차, 재기동 시 소켓 생성 주체를 검증합니다.

Tomcat 인증·경로·RewriteValve·HTTP2·WebSocket 5단계 점검
취약점 조건을 구성 경계별로 분리한 운영 점검

CVE-2026-65637 엄격한 SNI

CVE-2026-65637은 strict SNI 구성이 켜져 있어도 authority 정보가 없은 요청이 의도한 제한을 우회할 수 있은 문제이며 CVE-2026-32990 수정의 불완전한 부분을 보완합니다. TLS 가상호스트, 기본 호스트, 프록시의 Host·:authority 전달과 HTTP 버전을 함께 확인해야 합니다. 외부 로드밸런서가 누락된 authority를 보완하는지 또는 백엔드에 그대로 전달하는지 시험하고, 기본 가상호스트가 민감한 애플리케이션을 제공하지 않도록 구성합니다. 수정판 뒤에는 SNI 일치·불일치·authority 누락 세 경우를 각각 확인합니다.

CVE-2026-65927 RewriteValve 반복

CVE-2026-65927은 RewriteValve의 `[N]` 플래그가 규칙 집합의 처음이 아니라 두 번째 규칙에서 다시 시작하는 오프바이원 동작 때문에 접근통제 우회로 이어질 수 있은 중요 취약점입니다. RewriteValve를 인증·IP 제한·관리 경로 차단에 사용하는 환경은 규칙 순서와 반복 분기를 검토합니다. 설정을 읽기 전용으로 보존한 뒤 요청 경로가 각 반복에서 어떤 규칙을 거치는지 시험 환경에서 추적합니다. 보안 제약을 rewrite 규칙 하나에만 의존하지 말고 애플리케이션과 프록시의 인증·인가로 겹쳐 보호합니다.

CVE-2026-68763·65905 자원과 재전송

CVE-2026-68763은 HTTP/2 처리에서 할당된 자원이 해제되지 않아 반복 요청이 서비스 거부로 이어질 수 있은 중요 문제입니다. CVE-2026-65905는 DIGEST 인증 응답이 재전송 창 안에서 한 번 더 재사용될 수 있은 낮은 심각도 문제입니다. 전자는 HTTP/2 커넥터와 메모리·연결 지표를, 후자는 DIGEST 사용 여부와 replay window를 확인합니다. 두 문제는 조건과 영향이 달라 같은 완화책으로 묶지 않습니다. 수정판을 적용하고 HTTP/2 연결 안정성, 인증 재전송 거부, 정상 사용자 로그인과 장시간 연결을 각각 검증합니다.

업그레이드와 변경관리

수정 릴리스로 올리기 전에 server.xml, web.xml, Realm, RewriteValve, TLS·HTTP/2 커넥터와 배포 애플리케이션 목록을 백업합니다. 패키지 관리자나 상용 제품이 Tomcat을 번들링한 경우 Apache 바이너리를 직접 덮어쓰지 말고 공급자의 지원 경로를 따릅니다. 롤링 배포에서는 모든 노드의 실행 버전과 빌드 날짜를 확인하고 구형 이미지가 오토스케일링으로 다시 생성되지 않도록 레지스트리와 배포 선언을 갱신합니다. 적용 후 인증 방식, 역할 매핑, 보호 경로, rewrite, WebSocket, HTTP/2, UDS를 구성별로 시험하고 오류 로그와 성능 지표를 변경 전 기준과 비교합니다.

검증 증적과 실패 처리

검증 기록에는 취약점별 성립 조건, 영향 자산, 수정 릴리스, 설정 파일 해시, 시험 계정과 결과를 남깁니다. 기능 장애가 생기면 보안 경계와 무관한 애플리케이션 오류인지 먼저 분리하고, 외부 접근 제한을 유지한 채 공급자 지원 절차로 해결합니다. 취약한 분기로 무조건 복귀하면 인증·경로 우회와 서비스 거부 위험이 다시 열릴 수 있습니다. 임시로 비활성화한 HTTP/2·예제·RewriteValve·UDS 기능은 업무 영향과 복구 조건을 기록하고, 수정판 안정화 뒤 필요한 기능만 다시 활성화합니다. 최종적으로 자산 목록과 모니터링 경보의 기준 버전도 함께 바꿔야 완료입니다.

  1. 실행 중인 Tomcat 분기와 임베디드·번들 제품을 모두 식별합니다.
  2. Realm·FORM·역할 별칭·경로 제약·RewriteValve 조건을 구성별로 대조합니다.
  3. HTTP/2·WebSocket 예제·UDS·DIGEST 사용 여부와 노출 경로를 확인합니다.
  4. 11.0.25·10.1.59·9.0.121 이상의 해당 활성 분기로 업그레이드합니다.
  5. 모든 노드의 버전과 구성별 회귀 시험 결과를 변경 기록에 남깁니다.

확인한 출처

  1. Apache Tomcat 11.x vulnerabilitiesApache Tomcat · 공식 자료
  2. Apache Tomcat 10.x vulnerabilitiesApache Tomcat · 공식 자료
  3. Apache Tomcat 9.x vulnerabilitiesApache Tomcat · 공식 자료

사실관계와 수치는 연결된 자료에서 다시 확인할 수 있습니다.

독자 의견

의견을 남겨주세요

0

아직 등록된 댓글이 없습니다.

개인정보·광고·외부 연락처는 입력하지 마세요.