🇰🇷 한글 설명
Kanboard 1.2.52 및 이전 버전에서 인증된 사용자가 16진수 IP 주소 표기법을 사용하여 SSRF 보호를 우회할 수 있는 서버 측 요청 위조(SSRF) 취약점이 발견되었습니다. 공격자는 웹 링크 생성 기능을 통해 16진수로 인코딩된 내부 IP를 입력함으로써, 필터링을 우회하고 클라우드 메타데이터 서비스나 로컬 호스트 등 내부 네트워크 자원에 접근할 수 있습니다.
💡 쉬운 설명
해커가 일반적인 숫자 형태가 아닌 특수한 숫자 방식(16진수)을 사용하여 보안 검사를 속이고, 회사의 내부 서버에 몰래 접속할 수 있는 문제입니다. 이를 통해 외부에서는 볼 수 없는 중요한 내부 정보가 유출될 위험이 있습니다.
🇺🇸 원문 (English)
Kanboard 1.2.52 and prior contains a server-side request forgery vulnerability that allows authenticated users to bypass SSRF protections by supplying hexadecimal IP address notation in user-controlled URLs. Attackers can submit hexadecimal-encoded internal IP addresses through the web link creation feature, causing cURL to resolve and connect to internal network resources such as cloud instance metadata services, localhost services, and RFC1918 addresses while the isPrivateURL() filter in app/Core/Http/Client.php incorrectly treats the input as safe due to FILTER_VALIDATE_IP rejecting non-dotted-decimal notation.
📍 영향받는 시스템
Kanboard 1.2.52 및 그 이전 버전
⚔️ 공격 벡터
인증된 사용자가 웹 링크 생성 기능에 16진수로 인코딩된 내부 IP 주소를 입력하여 SSRF 필터를 우회함
🛡️ 대응 방법
Kanboard를 최신 보안 패치가 적용된 버전으로 업데이트하거나, IP 검증 로직을 수정하여 16진수 표기법을 차단해야 함
🔧 검증 코드
출력된 Kanboard의 버전을 확인하여 1.2.52 이하인지 확인합니다.
php -r "echo 'Kanboard version check required';" && composer show kanboard/kanboard | grep 'versions'