🇰🇷 한글 설명
Traefik의 HTTP/2 또는 HTTP/3 CONNECT 요청 처리 과정에서 발생하는 HTTP 요청 비동기화(Desynchronization) 취약점입니다. 공격자가 비정상적인 응답을 유도하여 공유된 소켓 풀에 오염된 소켓을 반환하게 함으로써, 다른 사용자의 인증 정보나 개인 데이터를 탈취할 수 있습니다. 특히 ForwardAuth 미들웨어를 사용하는 환경에서 위험도가 높습니다.
💡 쉬운 설명
웹 서버가 통신 통로를 관리하는 과정에서 실수로 이전 사용자의 통로를 다음 사용자에게 그대로 넘겨주는 문제입니다. 이를 통해 해커는 다른 사람이 주고받는 비밀스러운 정보를 몰래 훔쳐볼 수 있습니다.
🇺🇸 원문 (English)
Traefik is an open source HTTP reverse proxy and load balancer. Prior to 2.11.53, 3.6.24, and 3.7.9, Traefik's default HTTP reverse proxy forwards a plain HTTP/2 or HTTP/3 CONNECT request and its body to an HTTP/1.1 upstream through a shared net/http.Transport. When the upstream answers the CONNECT with a keep-alive non-2xx response and does not drain the body, Traefik returns the desynchronized backend socket to its shared pool and reuses it for other clients. An unauthenticated attacker can use this behavior to make a different client read the attacker's smuggled response, which can include authenticated or private content from another request. The ForwardAuth middleware with forwardBody true and preserveRequestMethod true can re-issue a CONNECT with the buffered body attached, exposing the auth-client pool to the same desynchronization. This issue is fixed in 2.11.53, 3.6.24, and 3.7.9.
📍 영향받는 시스템
Traefik versions prior to 2.11.53, 3.6.24, and 3.7.9
⚔️ 공격 벡터
Unauthenticated attacker sending specially crafted HTTP/2 or HTTP/3 CONNECT requests to cause socket desynchronization.
🛡️ 대응 방법
Traefik을 최신 패치 버전(2.11.53, 3.6.24, 3.7.9 이상)으로 업데이트하십시오.
🔧 검증 코드
명령어 실행 결과에 취약점이 해결된 버전(2.11.53, 3.6.24, 3.7.9 이상)이 나타나면 안전합니다.
traefik version | grep -E 'v(2\.[0-9]+\.[5][3-9]|3\.[6]\.[2][4-9]|3\.[7]\.[9])'