🇰🇷 한글 설명
Heimdall은 클라우드 네이티브 Identity Aware Proxy 및 접근 제어 결정 서비스입니다. 0.17.17 이전 버전에서 trusted_proxies 옵션이 설정되면 Forwarded 및 X-Forwarded-For 헤더에서 클라이언트 IP를 추출하지만, 추출된 값의 IP 형식 유효성을 검증하지 않습니다. 또한 Forwarded 헤더 파서가 RFC 7239의 따옴표 문자열을 고려하지 않고 쉼표와 세미콜론으로 분할하여 잘못된 주소가 생성될 수 있으며, 이 문제는 0.17.17 버전에서 패치되었습니다.
💡 쉬운 설명
Heimdall이 프록시 헤더에서 읽은 클라이언트 IP 주소를 올바른 형식인지 확인하지 않습니다. 그래서 잘못된 값이 접근 제어 정책 판단에 그대로 사용될 수 있습니다.
🇺🇸 원문 (English)
Heimdall is a cloud native Identity Aware Proxy and Access Control Decision service. Prior to version 0.17.17, when the trusted_proxies option is configured, heimdall extracts client IP addresses from the Forwarded (for= parameter) and X-Forwarded-For headers and exposes them as Request.ClientIPAddresses to the rule pipeline. However, extracted values are not validated to be syntactically valid IP addresses. Arbitrary strings, malformed IP literals, and RFC 7239 unknown values and obfuscated identifiers are accepted without further checks. In addition, the Forwarded header parser splits on , and ; without accounting for RFC 7239 quoted strings, which can cause a single quoted value to be parsed as multiple entries, with fragments — including trailing quote characters — treated as independent addresses. This issue has been patched in version 0.17.17.
📍 영향받는 시스템
Heimdall 0.17.17 미만 버전 (trusted_proxies 옵션 사용 환경)
⚔️ 공격 벡터
공격자가 조작된 Forwarded 또는 X-Forwarded-For 헤더를 신뢰된 프록시 경로로 전송해 IP 기반 접근 제어 규칙을 우회하거나 혼란시킴
🛡️ 대응 방법
Heimdall을 0.17.17 이상으로 업그레이드하고 trusted_proxies 설정을 최소 범위로 제한
🔧 검증 코드
출력된 버전이 0.17.17 미만이면 취약하며, 0.17.17 이상이면 패치가 적용된 것입니다.
heimdall version 2>/dev/null || docker inspect --format '{{.Config.Image}}' heimdall 2>/dev/null
💻 영향받는 소프트웨어
IBM Verify Identity Access