🇰🇷 한글 설명
Traefik이 URL 프래그먼트가 포함된 요청을 받을 때 이를 자동으로 인코딩하여 백엔드 서버로 전달하는 취약점입니다. 이는 RFC 7230 표준을 위반하며, Nginx와 같은 다른 프록시와 함께 사용될 경우 프론트엔드 프록시의 URI 기반 접근 제어를 우회할 수 있습니다.
💡 쉬운 설명
웹 서버가 주소창의 특수 기호를 처리하는 방식의 오류로 인해 보안 규칙을 피해 들어갈 수 있는 문제입니다. 공격자가 주소를 교묘하게 조작하면 원래 막혀 있어야 할 페이지에 접근할 수 있습니다.
🇺🇸 원문 (English)
Traefik is an open source HTTP reverse proxy and load balancer. When a request is sent to Traefik with a URL fragment, Traefik automatically URL encodes and forwards the fragment to the backend server. This violates RFC 7230 because in the origin-form the URL should only contain the absolute path and the query. When this is combined with another frontend proxy like Nginx, it can be used to bypass frontend proxy URI-based access control restrictions. This vulnerability has been addressed in versions 2.10.6 and 3.0.0-beta5. Users are advised to upgrade. There are no known workarounds for this vulnerability.
📍 영향받는 시스템
Traefik 2.10.6 미만 및 3.0.0-beta5 미만 버전
⚔️ 공격 벡터
URL 프래그먼트를 포함한 요청을 보내 프론트엔드 프록시의 URI 기반 접근 제어 규칙을 우회함
🛡️ 대응 방법
Traefik을 2.10.6 또는 3.0.0-beta5 이상의 버전으로 업그레이드하십시오.
🔧 검증 코드
출력된 버전이 2.10.6 미만이거나 3.0.0-beta5 미만인 경우 취약한 상태입니다.
traefik version 2>/dev/null | grep -E 'v(2\.[0-9]+\.[0-5]|3\.[0-9]+\.[0-9]+)'