← CVE Veritabanı

CVE-2026-55598

Kritik

Teknik Veri (Otomatik)

CVSS Skoru
9.1
EPSS
0.3%
CWE
CWE-918
KEV Durumu
Hayır

Yayım tarihi: 30 Ekim 2026

PinePods, Rust dilinde yazılmış, self-hosted bir podcast yönetim sistemidir. 0.9.0 sürümünden önceki sürümlerde, kimliği doğrulanmış bir kullanıcı, `POST /api/data/add_podcast` aracılığıyla bir saldırganın kontrol ettiği RSS beslemesine abone olabilir. `rust-api/src/handlers/podcasts.rs` dosyasındaki `get_podcast_values` ve `add_episodes` fonksiyonları, `feed-rs` ile beslemeyi parse eder ve `<enclosure url>` değerini `Episodes.episodeurl` alanında hedef ana bilgisayar/IP doğrulaması olmadan saklar. `POST /api/data/download_podcast` isteği, `rust-api/src/services/tasks.rs` dosyasındaki `spawn_download_podcast_episode` ve `download_episode_and_wait()` fonksiyonlarını çağırır. Bu fonksiyonlar, depolanan URL'ye `reqwest` GET isteği gönderir ve yanıtı `DownloadedEpisodes` alanında daha sonra erişilmek üzere kaydeder. `rust-api/src/database.rs` dosyasındaki `estimate_duration_from_audio_url_async()` yolu da, besleme eklendiğinde veya yenilendiğinde doğrulanmamış bir HEAD isteği gönderir. Varsayılan yönlendirme izleme, ilk olarak dış bir kapsül URL'sinin dahili bir hedefe yönlendirilmesine izin verir. Düşük ayrıcalıklı bir kullanıcı, sunucu tarafında GET/HEAD isteklerini erişilebilen döngü geri besleme, özel ağ ve bulut meta verileri hizmetlerine göndererek ve indirilen dahili yanıtları okuyarak, dahili hizmet numaralandırması, gizli veri açığa çıkması ve olası meta veri kimlik bilgileri hırsızlığını gerçekleştirebilir. Bölüm indirme işleminin çalışması için sunucu indirme işlemlerinin etkin olması gerekir ve bu, varsayılan ayarlardır; ayrıca self-service kayıt da desteklenmektedir. Bu sorun, 0.9.0 sürümünde giderilmiştir.

Orijinal açıklama (İngilizce)

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.

Bu CVE için henüz editoryal inceleme yapılmadı. Sadece otomatik teknik veri gösteriliyor.