🔍 CVE-2026-71280

8.5
CVSS Score
HIGH
2026-08-05
2026-08-05 16:17
✅ 완료

🇰🇷 한글 설명

go-shiori의 DownloadBookmark() 함수가 사용자로부터 입력받은 URL을 검증 없이 처리하여 발생하는 SSRF 취약점입니다. 인증된 사용자가 루프백 주소나 내부 네트워크 주소를 포함한 북마크를 생성하면, 서버가 내부 서비스나 클라우드 메타데이터 엔드포인트로 요청을 보내게 됩니다.

💡 쉬운 설명

해커가 가짜 주소를 입력하면 서버가 자기 자신이나 내부의 비밀스러운 네트워크에 접속하여 정보를 가져오게 만드는 공격입니다. 이를 통해 서버 내부의 중요한 데이터가 외부로 유출될 수 있습니다.

🇺🇸 원문 (English)

go-shiori's DownloadBookmark() (internal/core/download.go) fetches a caller-supplied bookmark URL using a plain http.Client with no custom DialContext or destination-IP validation (no IsLoopback(), IsPrivate(), IsUnspecified(), or IsLinkLocalUnicast() checks). An authenticated user creating or updating a bookmark via POST /api/bookmark, PUT /api/v1/bookmarks/cache, or POST /api/bookmarks/ext can supply a loopback (127.0.0.1) or 0.0.0.0 (which Linux redirects to loopback) URL, causing the server to make outbound requests to internal-only services, cloud metadata endpoints, or other network-restricted resources.

📍 영향받는 시스템

go-shiori (DownloadBookmark() 함수를 사용하는 버전)

⚔️ 공격 벡터

인증된 사용자가 API를 통해 127.0.0.1 또는 0.0.0.0과 같은 내부 주소를 북마크 URL로 등록

🛡️ 대응 방법

URL 요청 시 목적지 IP가 루프백, 사설 IP, 또는 링크 로컬 주소인지 확인하는 검증 로직을 추가해야 합니다.

🔧 검증 코드

내부 주소로의 요청이 성공하거나 서버 내부 응답이 반환되면 취약한 상태이며, 요청이 차단되면 안전한 상태입니다.

Shell / Script
curl -s -X POST http://<target>/api/bookmark -d '{"url":"http://127.0.0.1:80"}' | grep -E 'success|error'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N

💻 영향받는 소프트웨어

Cloud Services