🇰🇷 한글 설명
Dalfox는 자동화에 초점을 둔 오픈소스 XSS 스캐너입니다. 2.13.0 이전 버전에서는 POST 본문 파라미터를 처리하는 두 번째 워커 단계가 이미 닫힌 results 채널에 쓰기를 시도하여 Go 런타임 패닉이 발생하고, 서버 모드에서는 인증되지 않은 원격 공격자가 이를 트리거해 프로세스 전체를 종료시킬 수 있습니다.
💡 쉬운 설명
Dalfox 보안 도구의 특정 처리 과정에 결함이 있어, 악의적인 요청 하나로 프로그램 전체가 강제로 꺼질 수 있습니다. 서버 모드로 운영 중이라면 외부에서도 이 문제를 일으킬 수 있습니다.
🇺🇸 원문 (English)
Dalfox is a powerful open-source XSS scanner and utility focused on automation. Prior to 2.13.0, ParameterAnalysis in pkg/scanning/parameterAnalysis.go runs two sequential worker stages that both write to the same results channel. The channel is correctly closed after the first stage completes (close(results) at line 438), but the second stage — which processes POST-body parameters (dp) — is then launched with the same already-closed channel as its output. When a scanned parameter is reflected, processParams executes results <- paramResult on the closed channel, triggering a Go runtime panic that crashes the entire dalfox process. In server mode, the crash is remotely triggerable by any unauthenticated caller who can reach the REST API, because the default configuration has no API key and the second stage activates whenever options.Data != "" (i.e., the attacker supplies the data field) and the target reflects at least one parameter. This vulnerability is fixed in 2.13.0.
📍 영향받는 시스템
Dalfox 2.13.0 미만 버전 (서버 모드 REST API 사용 환경에서 특히 위험)
⚔️ 공격 벡터
API 키가 없는 기본 설정의 서버 모드에 data 필드를 포함한 요청을 보내고, 대상 파라미터가 반사되도록 하여 프로세스 충돌을 유발
🛡️ 대응 방법
Dalfox를 2.13.0 이상으로 업그레이드하고, 서버 모드 사용 시 API 키 인증 및 네트워크 접근 제한을 적용
🔧 검증 코드
출력된 버전이 2.13.0 미만이면 취약하므로 업그레이드가 필요하고, 2.13.0 이상이면 패치가 적용된 것입니다.
dalfox version 2>/dev/null || dalfox --version 2>/dev/null