🇰🇷 한글 설명
Traefik의 BasicAuth 미들웨어에서 발생하는 타이밍 차이 취약점입니다. 존재하지 않는 사용자 이름에 대한 요청이 병합되는 과정에서 발생하는 시간 차이를 통해 유효한 사용자 이름의 존재 여부를 파악할 수 있습니다.
💡 쉬운 설명
로그인 시도 시 응답 속도의 미세한 차이를 이용해 시스템에 등록된 아이디가 무엇인지 알아낼 수 있는 문제입니다. 비밀번호를 알아내거나 로그인을 우회하는 것은 아니지만, 공격자가 아이디를 수집하는 데 악용될 수 있습니다.
🇺🇸 원문 (English)
Traefik is an open source HTTP reverse proxy and load balancer. From 3.6.11 until 3.7.13, checkPassword in pkg/middlewares/auth/basic_auth.go constructs the BasicAuth singleflight key from the submitted password and stored secret. Concurrent requests for absent usernames therefore coalesce on one key while configured usernames perform separate password hashes, creating an unauthenticated timing discrepancy that reveals whether a username exists. Sequential checks remain cost-equalized, Traefik v2 and Digest authentication are not affected, and the issue does not disclose credentials or bypass authentication. This issue is fixed in version 3.7.13.
📍 영향받는 시스템
Traefik v3.6.11 ~ v3.7.12
⚔️ 공격 벡터
동시 다발적인 인증 요청을 통한 타이밍 분석 (Timing Attack)
🛡️ 대응 방법
Traefik 버전을 v3.7.13 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 취약한 범위(3.6.11~3.7.12)에 해당하면 업데이트가 필요합니다.
traefik version 2>/dev/null | grep -E 'v3\.(6|7)\.(1[0-12])'