🇰🇷 한글 설명
Apache Tomcat의 NIO HTTP 커넥터 파일 전송 에러 핸들링 버그로 인해 요청 처리 객체(Processor)가 캐시에 중복 저장되어 동일 객체가 여러 동시 요청에 재사용된다. 이는 요청 간 세션 ID와 응답 본문 같은 민감한 정보 유출을 야기한다.
💡 쉬운 설명
웹 서버가 사용자 요청을 처리하는 내부 메모리 객체를 잘못 관리하여 여러 사용자의 데이터가 섞일 수 있다. 한 사용자의 개인 정보나 세션이 다른 사용자에게 노출될 수 있다.
🇺🇸 원문 (English)
A bug in the error handling of the send file code for the NIO HTTP connector in Apache Tomcat 9.0.0.M1 to 9.0.0.M13, 8.5.0 to 8.5.8, 8.0.0.RC1 to 8.0.39, 7.0.0 to 7.0.73 and 6.0.16 to 6.0.48 resulted in the current Processor object being added to the Processor cache multiple times. This in turn meant that the same Processor could be used for concurrent requests. Sharing a Processor can result in information leakage between requests including, not not limited to, session ID and the response body. The bug was first noticed in 8.5.x onwards where it appears the refactoring of the Connector code for 8.5.x onwards made it more likely that the bug was observed. Initially it was thought that the 8.5.x refactoring introduced the bug but further investigation has shown that the bug is present in all currently supported Tomcat versions.
📍 영향받는 시스템
Tomcat 6.0.16-48, 7.0.0-73, 8.0.0.RC1-39, 8.5.0-8, 9.0.0.M1-M13
⚔️ 공격 벡터
NIO 커넥터를 통해 동시 다중 요청 전송으로 다른 사용자의 세션/응답 데이터 접근
🛡️ 대응 방법
Tomcat을 패치 버전(6.0.49+, 7.0.74+, 8.0.40+, 8.5.9+, 9.0.0.M14+)으로 즉시 업그레이드
🔧 검증 코드
설치된 Tomcat 버전을 확인하고, 6.0.48 이하, 7.0.73 이하, 8.0.39 이하, 8.5.8 이하, 9.0.0.M13 이하면 취약 상태
dpkg -l tomcat 2>/dev/null | tail -1 | awk '{print $3}' || rpm -qa | grep tomcat | grep -oE '[0-9]+\.[0-9]+'