ACTIVESTORAGE · GHSA-3f4q-8x5m-76v8 · Package
FIX → 8.1.4.1 +1
Active Storage runs FFmpeg on uploaded video and audio without limiting the input format, so a crafted HLS playlist uploaded under a video or audio type can make FFmpeg read local media files. An attacker who knows a file path readable by the app can get that file's content back through a preview image or stored metadata.
first public Nov 4, 2026 · 1 source
Could this affect your app?
Free first check from your website. Connect your repo for the full answer.
Applications that accept uploads from untrusted users and generate video previews or analyze video or audio attachments with FFmpeg are exposed. Apps that do not use Active Storage video or audio previewing or analysis, or that accept uploads only from trusted users, can skip it.
Not affected if no-video-processing, trusted-uploads-only
Who cares activestorage, rails, ruby, self-hosted
Gemfile.lock (look for activestorage ().ActiveStorage::Previewer::VideoPreviewer, ActiveStorage::Analyzer::VideoAnalyzer or ActiveStorage::Analyzer::AudioAnalyzer appear in config.active_storage.previewers or .Active Storage's VideoPreviewer, VideoAnalyzer and AudioAnalyzer run ffmpeg and ffprobe on a blob's contents without restricting the input format, so FFmpeg selects a demuxer by probing the file. A blob created through a direct upload keeps the content type the client declared, so a client can store an HLS playlist under a video/* or audio/* type. When that blob is previewed or analyzed, the hls demuxer opens the file:// segments that the playlist names, and the preview image or the stored metadata could disclose a local media file that the application process can read and whose path the attacker knows.
Applications that accept uploads from untrusted users and generate video previews, or analyze video or audio attachments with FFmpeg, are affected.
The fixed releases limit the formats FFmpeg may open to common audio and video containers, configured by the new config.active_storage.ffmpeg_allowed_formats setting. Files in other formats no longer preview or receive media metadata; the Active Storage CHANGELOG names some of them and shows how to add a format to the list.
Check it with your coding agent
It reads this page and tells you if your code is affected.
Are you affected?
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
config.active_storage.analyzersUpgrade to 8.1.4.1 +1
8.1.4.18.0.5.2Applications that cannot upgrade can stop Active Storage from running FFmpeg on uploaded files by removing ActiveStorage::Previewer::VideoPreviewer from config.active_storage.previewers, and ActiveStorage::Analyzer::VideoAnalyzer and ActiveStorage::Analyzer::AudioAnalyzer from config.active_storage.analyzers.
The fixed releases are available at the normal locations.
Patches for those who cannot upgrade at once:
This issue was responsibly reported by HackerOne researcher w3rmut.