🇰🇷 한글 설명
Nightingale(n9e)의 aiagent/tools/http.go 내 isPublicIP 함수에서 서버 측 요청 위조(SSRF) 취약점이 발견되었습니다. 해당 함수는 IPv4-mapped IPv6 주소만 검사하며, 6to4, NAT64 또는 사이트 로컬 IPv6 주소 형식을 제대로 필터링하지 못합니다. 공격자는 이를 이용해 클라우드 메타데이터 서비스와 같은 내부 네트워크 자원에 비정상적으로 접근할 수 있습니다.
💡 쉬운 설명
AI 에이전트가 웹사이트 정보를 가져올 때, 보안 검사를 우회하여 내부 비밀 정보가 담긴 서버에 접속할 수 있는 결함입니다. 특수한 형태의 주소를 사용하면 차단 목록을 피해 내부 네트워크로 침투할 수 있습니다.
🇺🇸 원문 (English)
Nightingale (n9e), as of commit 8362cbe (main branch, confirmed 2026-08-27), contains a server-side request forgery vulnerability in the isPublicIP function in aiagent/tools/http.go, the SSRF guard for the http_fetch AI-agent tool. The function only unwraps standard IPv4-mapped (::ffff:a.b.c.d) IPv6 addresses before checking them against the forbidden-range list, and does not classify 6to4 (2002::/16), NAT64 (64:ff9b::/96, 64:ff9b:1::/48), or deprecated site-local (fec0::/10) addresses. On a dual-stack or NAT64-enabled host, an attacker able to supply a URL to the http_fetch tool can bypass the guard by encoding a forbidden IPv4 address (such as the cloud instance-metadata endpoint 169.254.169.254) in one of these IPv6 forms to reach internal or metadata services.
📍 영향받는 시스템
Nightingale (n9e) commit 8362cbe 이하 버전
⚔️ 공격 벡터
http_fetch 도구에 6to4, NAT64 또는 사이트 로컬 형식을 사용한 IPv6 주소를 입력하여 SSRF 공격 수행
🛡️ 대응 방법
isPublicIP 함수를 수정하여 6to4, NAT64, site-local 등 모든 IPv6 변형 주소 형식을 차단 목록에 포함하도록 업데이트
🔧 검증 코드
명령어 결과로 8362cbe로 시작하는 커밋 해시가 출력되면 해당 취약점에 노출된 버전입니다.
git log -1 --format=%H | grep 8362cbe