🇰🇷 한글 설명
zenml-io/zenml 0.57.0부터 0.94.2 버전 사이에서 X-Forwarded-For 헤더를 조작하여 로그인 및 비밀번호 변경 엔드포인트의 속도 제한(rate-limiting)을 우회할 수 있는 취약점이 발견되었습니다. Uvicorn이 모든 IP를 신뢰하도록 설정된 경우, 공격자는 클라이언트 호스트 값을 임의로 변경하여 무차별 대입 공격을 수행할 수 있습니다.
💡 쉬운 설명
로그인 시도를 제한하는 보안 장치가 공격자가 가짜 IP 주소를 계속 바꿔가며 접속하는 것을 막지 못하는 문제입니다. 이로 인해 해커가 비밀번호를 알아내기 위해 수많은 로그인을 반복 시도할 수 있습니다.
🇺🇸 원문 (English)
A vulnerability in zenml-io/zenml versions 0.57.0 through 0.94.2 allows an attacker to bypass rate-limiting on the `POST /api/v1/login` and self password-change endpoints by rotating the `X-Forwarded-For` header. The rate limiter keys requests by `request.client.host`, which is derived from the `X-Forwarded-For` header when Uvicorn is launched with `--proxy-headers --forwarded-allow-ips *`. This configuration allows clients to control the value of `request.client.host`, effectively bypassing rate-limiting protections. This vulnerability leaves the affected endpoints open to unthrottled credential guessing attacks.
📍 영향받는 시스템
zenml-io/zenml versions 0.57.0 through 0.94.2
⚔️ 공격 벡터
X-Forwarded-For 헤더 값을 계속 변경하여 속도 제한 메커니즘을 우회하는 방식
🛡️ 대응 방법
zenml 버전을 최신 버전으로 업데이트하고, Uvicorn 설정 시 --forwarded-allow-ips에 '*' 대신 실제 프록시 서버의 IP만 허용하도록 제한하십시오.
🔧 검증 코드
출력된 버전이 0.57.0 이상 0.94.2 이하인지 확인하십시오.
pip show zenml | grep Version