🇰🇷 한글 설명
Firefly III의 웹훅 URL 검증기(IsValidWebhookUrl.php)가 127.0.0.0/8 대역의 주소를 허용하는 논리적 오류를 가지고 있습니다. 이로 인해 인증된 사용자가 서버 내부의 루프백 서비스로 웹훅을 전송하도록 설정할 수 있습니다.
💡 쉬운 설명
웹훅 주소를 검사할 때 보안 규칙을 건너뛰는 실수가 있어, 공격자가 서버 내부의 비밀스러운 서비스에 접근할 수 있는 통로가 생겼습니다. 인증된 사용자가 서버 자기 자신에게 명령을 보내는 방식으로 악용될 수 있습니다.
🇺🇸 원문 (English)
Firefly III's webhook URL validator (IsValidWebhookUrl.php) filters most private/reserved IPv4 ranges but contains an explicit early-return that allows any resolved address in 127.0.0.0/8, permitting an authenticated user (with webhooks enabled, which is off by default) to configure a webhook targeting loopback services on the server.
📍 영향받는 시스템
Firefly III (Webhook 기능이 활성화된 모든 버전)
⚔️ 공격 벡터
인증된 사용자가 웹훅 설정 시 127.0.0.0/8 대역의 IP 주소를 입력하여 서버 내부 서비스에 요청을 보냄
🛡️ 대응 방법
IsValidWebhookUrl.php의 검증 로직을 수정하여 127.0.0.0/8 대역을 포함한 모든 루프백 주소를 차단하고 최신 패치를 적용하십시오.
🔧 검증 코드
명령어 결과에서 127.0.0.0/8 대역을 허용하거나 조기에 반환(early-return)하는 코드가 발견되면 취약한 상태입니다.
grep -r "127.0.0.0/8" path/to/FireflyIII/src/IsValidWebhookUrl.php