CVE-2026-55598 in PinePods
Riassunto
di VulDB • 31/10/2026
PinePods è un sistema completo di gestione dei podcast auto-ospitato (self-hosted) scritto in Rust. Prima della versione 0.9.0, un utente autenticato può iscriversi a un feed RSS controllato da un attaccante tramite `POST /api/data/add_podcast` in `rust-api/src/handlers/podcasts.rs`. Le funzioni `get_podcast_values` e `add_episodes` in `rust-api/src/database.rs` analizzano il feed con `feed-rs` e memorizzano l'attributo `<enclosure url>` verbatim nel campo `Episodes.episodeurl` senza alcuna validazione dell'host/IP di destinazione. La chiamata `POST /api/data/download_podcast` invoca `spawn_download_podcast_episode` e `download_episode_and_wait()` in `rust-api/src/services/tasks.rs`, che effettua una richiesta GET con `reqwest` all'URL memorizzato e salva e registra la risposta in `DownloadedEpisodes` per un successivo recupero. Il percorso `estimate_duration_from_audio_url_async()` in `rust-api/src/database.rs` invia inoltre una richiesta HEAD non validata durante l'aggiunta/aggiornamento del feed. La gestione predefinita dei redirect consente a un URL di enclosure inizialmente esterno di reindirizzare verso un target interno. Un utente con privilegi ridotti può effettuare richieste GET/HEAD lato server (SSRF) verso servizi raggiungibili su loopback, reti private e metadata services cloud, leggendo le risposte interne scaricate; ciò abilita l'enumerazione dei servizi interni, la divulgazione di dati confidenziali e un possibile furto di credenziali dai metadati. Il download degli episodi richiede che i download lato server siano abilitati (impostazione predefinita); è supportata anche la registrazione self-service. Questo problema è risolto nella versione 0.9.0.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.