CriticalCVSS 3.0 9.8UnauthenticatedRuby on Rails

Is your Rails app exposed to the Active Storage flaw GHSA-f3w6-w445-fwh9?

GHSA-f3w6-w445-fwh9 lets an attacker with no login upload a crafted file that makes ImageMagick write files on your server, and with the Disk service read files such as secret_key_base. Rails rates it Critical, CVSS 3.0 9.8. Apps using ImageMagick that accept untrusted uploads are exposed. Upgrade Active Storage to 8.1.4.1 or 8.0.5.2.

No CVE yet, not in CISA KEV

The flaw has no CVE yet and is not in CISA's Known Exploited Vulnerabilities catalogue (checked 4 November 2026). The Rails advisory does not say whether it has been exploited. It needs no login, so do not wait: upgrade or apply the interim ImageMagick policy now.

At a Glance

Based on the Rails advisories and CISA as of 4 November 2026. Last updated 4 November 2026, 12:29 GMT.

4 Nov

Rails publishes GHSA-f3w6-w445-fwh9 and releases Active Storage 8.1.4.1 and 8.0.5.2.

4 Nov

The same releases fix GHSA-v924-7rp8-4mxh (High, CVSS 8.8, needs a low-privilege login) and 19 other issues.

4 Nov

The flaw is reported publicly. No CVE yet, not in CISA KEV.

7 Nov

Rails 8.0 security support ends. Rails before 8.0 is already unsupported.

Affected and fixed versions

VersionStatusFix
Active Storage 8.1.0 to 8.1.4.0AffectedUpgrade to 8.1.4.1
Active Storage 8.0.x below 8.0.5.2AffectedUpgrade to 8.0.5.2. Rails 8.0 security support ends on 7 November 2026, so plan the move to 8.1.
Rails 7.2 and earlierUnsupported, no fix releasedUpgrade to 8.0.5.2 or 8.1.4.1. Until then, apply the ImageMagick policy below or switch to :vips.
Active Storage 8.1.4.1 or 8.0.5.2 and laterFixedCheck mini_magick is 5.1 or later, or the app fails to boot.

Are you exposed? All three must be true

  • ImageMagick: the app uses config.active_storage.variant_processor = :mini_magick. This is the default for apps on load_defaults 6.1 or earlier.
  • Permissive policy: ImageMagick's security policy does not block the coders involved. The policies Debian and Ubuntu package do not.
  • Untrusted uploads: the app accepts file uploads from users you do not fully trust, such as public sign-up, customers or suppliers.

Attaching the upload is enough. The ImageMagick analyzer runs on attach, so no variant, preview or analyze call is needed. With the Disk service an attacker may also read files the app can read, including secret_key_base and config/credentials.yml.enc, which may in turn allow remote code execution or lateral movement.

What to Do in the Next 24 Hours

Proactive on the left. Reactive on the right. Tick both tracks.

Proactive: Check Exposure and Upgrade

Upgrade the apps that accept uploads first. Until you can, stop ImageMagick running the dangerous coders.

Free Detection Pack

Built by the CybaVerse threat hunt team for businesses, internal IT teams and MSPs. Check each app's exposure offline and hunt for signs of exploitation. Everything is read-only.

Verdicts

  • PATCHEDActive Storage 8.1.4.1 or 8.0.5.2 or later. Warns if mini_magick is below 5.1.
  • LIKELY VULNERABLEAn affected version with ImageMagick in use. Whether uploads are untrusted cannot be checked offline, so confirm it yourself.
  • UNKNOWNA missing Gemfile.lock or application.rb, a pre-release version, an unknown processor or a bad CSV.
  • NOT EXPOSED:vips on Active Storage 7.0 or later, no mini_magick, no Active Storage, or a policy that blocks the coders. Upgrade anyway.

Exit codes

CodeMeaning
0PATCHED
1LIKELY VULNERABLE
2UNKNOWN
3NOT EXPOSED
5Error, such as bad usage or an unreadable file

MSPs can use the exit code in RMM or scheduled jobs to flag apps at scale. With a CSV, the exit code is the worst row. Rails below 8.0 is flagged EOL.

Know the limits

  • Both checkers are read-only and offline. They only read the files you point them at, send no network traffic, write nothing and contain no exploit payloads.
  • No indicators of compromise have been published, and the pack contains none. The hunts look for behaviour.
  • The hunt paths are unverified. The process tree, the ImageMagick binary MiniMagick calls on your build and the file-write targets (cron, SSH keys, app code, web root) are likely, not confirmed.
  • None of the KQL has been run against a live tenant. Fields and paths marked UNVERIFIED depend on your connectors. Endpoint tools rarely log file reads on Linux, so use auditd for secret access.
  • Prefer the hand-written KQL. Some Sigma pipeline conversions map these Linux rules to the wrong tables, as the README explains.

What is in the pack

FileWhat it does
check-rails-activestorage.shOffline exposure checker for Linux and macOS (bash)
Check-RailsActiveStorage.ps1The same checker in PowerShell 7
KQL (7 queries)Microsoft Sentinel and Defender XDR hunts Q1 to Q7
Sigma (5 rules)Linux process, file and file-access rules, plus Kusto conversions
tests/Fixtures, bash and Pester tests and a sandboxed no-network run
README.mdVerified facts, corrections, limits and usage

Reactive: How to Hunt

No indicators of compromise have been published, so hunt for behaviour across the whole period each app ran an affected version. CybaOps can run these hunts across your estate or your clients'.

If you suspect compromise

  • Isolate the host and keep its logs, disk and storage directory for investigation.
  • Rotate secret_key_base, the master key and everything in config/credentials.yml.enc, plus storage, database and third-party credentials. Do not keep an exposed secret as a fallback.
  • End all user sessions, as rotating secret_key_base invalidates signed cookies.
  • Check logs for lateral movement into the systems those secrets reach.
  • Upgrade, rebuild from a known good state where you can, and keep monitoring.

Patched does not mean clean

Upgrading stops new attacks but does not remove files an attacker wrote or secrets they read. Every exposed app should be hunted, not just upgraded.

Rails Active Storage GHSA-f3w6-w445-fwh9 FAQ

Short answers based on the Rails advisories and CISA as of 4 November 2026.

What is GHSA-f3w6-w445-fwh9?

It is a flaw in Ruby on Rails Active Storage image analysis. Active Storage did not limit which ImageMagick coders could run, so a crafted upload, such as an SVG that reaches the MSL scripting coder, can make ImageMagick write arbitrary files on the server. With the Disk storage service it can also read files the app can read.

Does it have a CVE?

Not yet. Rails published it as GitHub advisory GHSA-f3w6-w445-fwh9 on 4 November 2026 and rates it Critical, CVSS 3.0 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H). Track it by the advisory ID until a CVE is assigned.

Is it being exploited or in CISA KEV?

The Rails advisory does not say whether it has been exploited, and it was not in CISA's Known Exploited Vulnerabilities catalogue when we checked on 4 November 2026. Rails says one attack chain was reported to it but it does not assume it is the only one. Treat exposed apps as urgent.

Is my app affected?

Only if all three are true: it uses ImageMagick for Active Storage (variant_processor :mini_magick, the default for apps on load_defaults 6.1 or earlier), its ImageMagick policy does not block the coders involved (the Debian and Ubuntu packaged policies do not), and it accepts file uploads from untrusted users.

Do we need to generate a variant or preview to be at risk?

No. The ImageMagick analyzer runs when a file is attached, so attaching an uploaded file is enough. No variant, preview or analyze call is needed.

How bad is it if we use the Disk service?

Worse. With Disk storage an attacker may also read files the app can read, including secret_key_base, the master key and everything in config/credentials.yml.enc. Rails says that may in turn allow remote code execution or lateral movement into your databases, storage and third-party services. If you use Disk and were exposed, rotate secret_key_base, the master key and all credentials.

How do we fix it?

Upgrade Active Storage to 8.1.4.1 or 8.0.5.2. The fixed versions ship a restrictive ImageMagick policy and need mini_magick 5.1 or later. Apps that render PDF or PostScript through ImageMagick must re-allow those coders in the host policy. The same releases fix 21 security issues in total.

What is GHSA-v924-7rp8-4mxh?

A separate Active Storage flaw fixed in the same releases, rated High, CVSS 3.1 8.8. Unlike GHSA-f3w6-w445-fwh9 it needs a low-privilege login. The uploaded file's extension can choose which decoder FFmpeg or ImageMagick uses, which could disclose files or possibly lead to code execution. Switching to :vips does not fix it. Upgrading to 8.1.4.1 or 8.0.5.2 fixes both.

We cannot upgrade today. What can we do?

Copy the policy from the fixed release into ImageMagick's system policy.xml. At a minimum deny the MSL coder, the Ghostscript coders and the gs delegate, and ideally copy the full list Rails ships, which also blocks URL, FILE, TEXT and other coders that read other files. On Rails 7.0 or later you can instead switch Active Storage to :vips. These reduce risk but do not replace the upgrade.

We are on Rails 7 or earlier. Is there a patch?

No. Rails before 8.0 is out of support and gets no fix. Apply the ImageMagick policy now. Switching to :vips only helps on Rails 7.0 to 7.2, because Active Storage 6.x still analyses images with MiniMagick whatever variant_processor says. Plan the upgrade to a supported release. Rails 8.0 security support ends on 7 November 2026, so aim for 8.1.

Protect Your Web Apps, and Your Clients'

CybaOps monitors your servers, endpoints and cloud workloads, whether that's your own business or your clients'. UK-based analysts monitor alerts 24/7, run these threat hunts and act on pre-approved response actions, and CybaOps drives remediation through to a verified fix, so proactive checks and reactive response happen in one place.