🇰🇷 한글 설명
SiYuan v3.7.4 미만 버전의 isPrivateIP 함수에서 SSRF 취약점이 발견되었습니다. 이 함수는 IPv6 전환 주소(NAT64, 6to4, Teredo)를 제대로 식별하지 못해 SafeMode의 보호 기능을 우회할 수 있습니다. 공격자는 이를 통해 내부 서비스나 클라우드 메타데이터 엔드포인트에 접근하여 민감한 정보를 탈취할 수 있습니다.
💡 쉬운 설명
보안 검사 기능이 특정 특수 주소 형식을 인식하지 못하는 허점을 이용한 공격입니다. 이를 통해 공격자가 외부에서 접근할 수 없는 회사의 내부 네트워크나 중요한 서버 정보에 몰래 접근할 수 있습니다.
🇺🇸 원문 (English)
SiYuan before v3.7.4 contains a server-side request forgery (SSRF) vulnerability in the isPrivateIP function in kernel/util/net.go, used by SSRFSafeDialer to enforce SSRF protection in SafeMode. The function only checks for loopback, link-local unicast, private, and unspecified addresses and does not recognize IPv6 transition addresses (NAT64 64:ff9b::/96, 6to4 2002::/16, Teredo 2001::/32) that embed private IPv4 destinations. When SafeMode is enabled, an authenticated attacker can bypass the SSRF guard via the network forward proxy, WebSocket proxy, or SSE proxy endpoints by supplying a URL whose hostname resolves to such a transition address, reaching internal services and cloud metadata endpoints (e.g., 169.254.169.254). Because the forward proxy returns the full response body, this is a full-read SSRF that can be used to steal instance credentials, reach internal services, and port-scan internal infrastructure.
📍 영향받는 시스템
SiYuan versions before v3.7.4
⚔️ 공격 벡터
인증된 공격자가 IPv6 전환 주소를 포함한 URL을 프록시 엔드포인트에 전달하여 내부망 접근
🛡️ 대응 방법
SiYuan을 v3.7.4 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 태그 버전이 v3.7.4보다 낮으면 취약한 버전이 설치되어 있을 가능성이 높습니다.
curl -s https://api.github.com/repos/siyuan-notes/SiYuan/releases | grep -E 'tag_name' | head -n 1