🇰🇷 한글 설명
Traefik의 특정 버전에서 rootless HTTP/1 요청 타겟을 처리할 때 URL.Opaque 필드에 값을 저장하면서 URL.Path를 비워두는 취약점이 발견되었습니다. 이로 인해 백엔드 서버가 Opaque 타겟을 경로로 해석할 경우, 교차 가상 호스트 라우팅 우회, 경로 기반 권한 부여 우회 및 액세스 로그 회피가 가능합니다.
💡 쉬운 설명
웹 서버의 길잡이 역할을 하는 Traefik이 요청 주소를 잘못 처리하여 보안 검사를 통과한 뒤 엉뚱한 곳으로 연결될 수 있는 문제입니다. 공격자가 이를 악용하면 허가되지 않은 페이지에 접근하거나 보안 기록을 남기지 않고 침입할 수 있습니다.
🇺🇸 원문 (English)
Traefik is an open source HTTP reverse proxy and load balancer. Prior to 2.11.57, and 3.7.13, Traefik accepts a rootless HTTP/1 request target that Go stores in URL.Opaque while leaving URL.Path empty. The rewriteRequestBuilder path evaluates routing, path sanitization, forwardAuth, encodedCharacters, and access logging against a path normalized to / but forwards URL.Opaque verbatim to the backend, allowing cross-vhost routing bypass, path-scoped authorization bypass, and access-log evasion when the backend interprets the opaque target as a path. This issue is fixed in 2.11.57 and 3.7.13.
📍 영향받는 시스템
Traefik 2.11.57 미만 및 3.7.13 미만 버전
⚔️ 공격 벡터
특수하게 조작된 rootless HTTP/1 요청을 통해 경로 검증 및 권한 부여 로직을 우회함
🛡️ 대응 방법
Traefik을 최신 보안 패치가 적용된 버전(2.11.57 또는 3.7.13 이상)으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 2.11.57 미만이거나 3.7.13 미만이면 취약한 상태입니다.
traefik version | grep -E 'v(2\.[0-9]+\.[0-9]+|3\.[0-9]+\.[0-9]+)'