🇰🇷 한글 설명
AsyncHttpClient(AHC) 라이브러리에서 NTLM 및 Negotiate 인증을 사용하는 HTTP/1.1 연결 풀의 키 생성 시 인증된 주체(principal)를 제외하는 취약점이 발견되었습니다. 이로 인해 특정 사용자로 인증된 소켓이 다른 사용자의 요청에 재사용될 수 있으며, 서버는 후속 요청을 이전 사용자의 신원으로 실행하게 됩니다.
💡 쉬운 설명
로그인 정보가 포함된 통신 통로를 공유할 때, 다른 사람의 요청이 마치 원래 로그인한 사람의 요청인 것처럼 서버에 전달될 수 있는 문제입니다. 이로 인해 권한이 없는 사용자가 다른 사용자의 권한을 빌려 서버에 접근할 위험이 있습니다.
🇺🇸 원문 (English)
The AsyncHttpClient (AHC) library allows Java applications to easily execute HTTP requests and asynchronously process HTTP responses. Prior to 3.0.13 and 2.16.1, the HTTP/1.1 connection-pool key excludes the authenticated principal for connection-oriented NTLM and Negotiate authentication. A pooled socket authenticated for one request can be reused by a request carrying another principal, and the server executes that later request as the first identity. Basic and Digest are not affected because they authenticate each request. This issue is fixed in versions 3.0.13 and 2.16.1.
📍 영향받는 시스템
AsyncHttpClient (AHC) versions prior to 3.0.13 and 2.16.1
⚔️ 공격 벡터
인증된 연결이 재사용되는 과정에서 다른 사용자의 요청을 끼워 넣어 권한을 탈취하는 방식
🛡️ 대응 방법
AsyncHttpClient 라이브러리를 3.0.13 또는 2.16.1 이상의 버전으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 3.0.13 이상 또는 2.16.1 이상의 버전이 나타나지 않으면 취약한 버전이 사용 중인 것입니다.
mvn dependency:tree | grep -E 'async-http-client:(3\.0\.1[3-9]|2\.16\.[1-9])|async-http-client:(3\.[1-9]\.|2\.1[6-9]\.)'
💻 영향받는 소프트웨어
IBM WebSphere Application Server