🇰🇷 한글 설명
Apache Tomcat의 HTTP/2 구현체에서 과도한 SETTINGS 프레임을 수신하거나 데이터를 주고받지 않은 채 스트림을 계속 열어둘 수 있는 취약점이 발견되었습니다. 공격자는 이를 이용해 Servlet API의 블로킹 I/O를 사용하는 서버 스레드를 점유함으로써 스레드 고갈을 유도하고 서비스 거부(DoS) 상태를 만들 수 있습니다.
💡 쉬운 설명
공격자가 서버에 가짜 요청을 끊임없이 보내 서버의 일꾼(스레드)들을 모두 붙잡아 두는 공격입니다. 이로 인해 서버가 새로운 요청을 처리하지 못하게 되어 서비스가 중단될 수 있습니다.
🇺🇸 원문 (English)
The HTTP/2 implementation in Apache Tomcat 9.0.0.M1 to 9.0.14 and 8.5.0 to 8.5.37 accepted streams with excessive numbers of SETTINGS frames and also permitted clients to keep streams open without reading/writing request/response data. By keeping streams open for requests that utilised the Servlet API's blocking I/O, clients were able to cause server-side threads to block eventually leading to thread exhaustion and a DoS.
📍 영향받는 시스템
Apache Tomcat 9.0.0.M1 ~ 9.0.14, 8.5.0 ~ 8.5.37
⚔️ 공격 벡터
HTTP/2 프로토콜의 SETTINGS 프레임 남용 및 스트림 유지 기능을 이용한 DoS 공격
🛡️ 대응 방법
Apache Tomcat을 취약점이 해결된 최신 버전(9.0.15 이상 또는 8.5.38 이상)으로 업데이트하십시오.
🔧 검증 코드
현재 설치된 Tomcat 버전을 확인하여 취약한 버전 범위에 해당하는지 체크합니다.
echo $TOMCAT_VERSION | grep -E '^(9\.0\.[0-9]{1,2}|8\.5\.[0-9]{1,2})' | awk '$1 < "9.0.15" || $1 < "8.5.38"'