🔍 CVE-2026-55598

9.1
CVSS Score
CRITICAL
2026-10-30
2026-10-30 20:17
✅ 완료

🇰🇷 한글 설명

PinePods는 Rust로 작성된 자체 호스팅 팟캐스트 관리 시스템입니다. 0.9.0 이전 버전에서는 인증된 사용자가 공격자가 제어하는 RSS 피드를 구독할 수 있으며, 에피소드 URL에 대한 대상 호스트/IP 검증이 없어 서버 측 요청 위조(SSRF)가 발생합니다. 이로 인해 내부 네트워크와 클라우드 메타데이터 서비스에 접근해 응답을 읽을 수 있습니다.

💡 쉬운 설명

일반 사용자 계정으로도 팟캐스트 주소를 조작해 서버가 내부 시스템에 접속하도록 만들 수 있습니다. 이를 통해 서버 내부의 민감한 정보가 노출될 수 있습니다.

🇺🇸 원문 (English)

PinePods is a complete, self-hosted podcast management system written in Rust. Prior to 0.9.0, an authenticated user can subscribe to an attacker-controlled RSS feed through `POST /api/data/add_podcast` in `rust-api/src/handlers/podcasts.rs`. `get_podcast_values` and `add_episodes` in `rust-api/src/database.rs` parse the feed with `feed-rs` and store the `<enclosure url>` verbatim in `Episodes.episodeurl` without destination host/IP validation. `POST /api/data/download_podcast` invokes `spawn_download_podcast_episode` and `download_episode_and_wait()` in `rust-api/src/services/tasks.rs`, which sends a `reqwest` GET to the stored URL and saves and records the response in `DownloadedEpisodes` for later retrieval. The `estimate_duration_from_audio_url_async()` path in `rust-api/src/database.rs` also sends an unvalidated HEAD during feed add/refresh. Default redirect following permits an initially external enclosure URL to redirect to an internal target. A low-privilege user can make server-side GET/HEAD requests to reachable loopback, private-network and cloud metadata services and read downloaded internal responses, enabling internal-service enumeration, confidential-data disclosure and possible metadata credential theft. Episode downloading requires server downloads to be enabled, which is the default; self-service signup is supported. This issue is fixed in version 0.9.0.

📍 영향받는 시스템

PinePods 0.9.0 미만 버전 (Rust 기반 팟캐스트 관리 시스템)

⚔️ 공격 벡터

인증된 사용자가 악의적인 RSS 피드를 등록한 뒤 enclosure URL을 내부 주소나 메타데이터 서비스로 리다이렉트시켜 서버 측 요청을 유도

🛡️ 대응 방법

PinePods를 0.9.0 이상으로 업그레이드하고, 외부 요청 대상에 대한 내부 IP/호스트 검증 및 리다이렉트 제한을 적용

🔧 검증 코드

출력된 이미지 태그나 버전 정보가 0.9.0 미만이면 취약하며, 0.9.0 이상이면 패치가 적용된 것입니다. 결과가 없으면 PinePods가 설치되어 있지 않을 수 있습니다.

Shell / Script
docker inspect $(docker ps -q --filter ancestor=pinepods) --format '{{.Config.Image}}' 2>/dev/null || grep -ri 'pinepods' /opt /srv 2>/dev/null | grep -i version | head -5

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Windows iSCSI Target Service