You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
SoundCloud URL handling may be an SSRF problem if the backend is exposed #173
Looking at the URL pipeline, YouTube URLs get normalized to a single-video form, but SoundCloud URLs are passed straight through to yt-dlp:
ifhostin_SOUNDCLOUD_HOSTS:
returnurl
Allowed SoundCloud hosts include:
soundcloud.comwww.soundcloud.comon.soundcloud.com
The shortener is the part that makes me nervous, since the app hands the URL to yt-dlp without an extractor allowlist or final URL/network target checks.
Prob low-risk when StemDeck is strictly loopback-only. But if someone runs the backend exposed on a LAN or public interface, the unauthenticated endpoints that change stuff make it easier to poke at:
POST /api/jobs
POST /api/jobs/{id}/cancel
PATCH /api/jobs/{id}/sections
DELETE /api/jobs/{id}
The Docker image itself runs uvicorn on 0.0.0.0; the sample compose binds loopback, but deployments can easily change that.
Not sure if the best fix is removing on.soundcloud.com, adding a yt-dlp extractor allowlist, rejecting redirects/final URLs outside expected hosts, adding auth/bind checks for non-loopback deployments, or some combo of those.
Handled in #176 — dropped the on.soundcloud.com shortener from the allowlist and locked yt-dlp to just the youtube/soundcloud extractors, so it won't chase arbitrary redirects/hosts anymore. Ships in the next alpha.
Activity
thcp commentedon Jun 2, 2026
Hi @omglazrgunpewpew , thanks for the report, this will be addressed on the next release
fix: address open issues #169 (version), #170 (XSS), #173 (SSRF) (#176)
thcp commentedon Jun 2, 2026
Handled in #176 — dropped the on.soundcloud.com shortener from the allowlist and locked yt-dlp to just the youtube/soundcloud extractors, so it won't chase arbitrary redirects/hosts anymore. Ships in the next alpha.
YouTube import diagnostics, an opt-in cookies file, and 0.75x playback (
Search and audition from the topbar, and three bugs found on the way (#…