Security1 distinct publisher3 min readPublished
Rails shipped fixes on July 29 in 7.2.3.2, 8.0.5.1 and 8.1.3.1. Whether your app is actually closed depends on the libvips version sitting on the host and on which features serve a processed image back to the uploader.
The Watch · Security desk

Compiled by The WatchSomething wrong?How this is made
The bug comes down to how libvips picks a loader: it decides how to open a file by inspecting it, not by trusting the extension your upload form validated, so a payload that passes as an image can be routed to the MATLAB, NIfTI, SVG or PDF reader instead, and Active Storage did not switch those readers off even though some are unsafe on files that come from strangers [1]. That routing only becomes dangerous once the variant actually gets built, because building it is what executes the loader. According to a member of the Rails core team, an app that displays image variants in its default configuration may let an unauthenticated attacker read arbitrary files including the process environment, which typically holds secret_key_base and often credentials for external systems, and that opens escalation to remote code execution or lateral movement into those systems [2].
That's also why the gem version alone is a weak inventory key. The affected releases are the 7.0 line before 7.2.3.2, 8.0 before 8.0.5.1 and 8.1 before 8.1.3.1 [4]; apps configured to use the ImageMagick processor rather than vips are out of scope [6]; and Rails 6.0.0 through 6.1.7.10 is affected only where Active Storage was configured outside its defaults, so a stock 6.x install is not exposed, per Ethiack [7]. Ethiack also flags every user-facing feature that accepts an upload and later serves a processed version, naming avatars, thumbnails and profile pictures, plus third-party software built on Rails that you did not write [8]. The question per app is which features serve variants and what libvips is underneath, not only what Gemfile.lock says.
What actually determines your options here is the host layer, specifically which libvips version is installed. With libvips 8.13 or later present, setting the VIPS_BLOCK_UNTRUSTED environment variable disables the unfuzzed operations at library init and does so without a Rails upgrade; below 8.13, the Rails team says there is no workaround other than removing the libvips dependency [10]. The full guidance runs on both tracks, Rails to a fixed version and libvips to 8.13 or later, then rotation of the master key, database credentials, S3, GCS or Azure keys and third-party tokens [9].
Details and exploit code were withheld to give operators time to patch, and other researchers then reverse-engineered the attack [13]. Help Net Security's writeup ran on August 3 [14]; measured from the July 29 release, that is five days of head start [15]. Akamai says it coordinated with Ethiack before disclosure and has deployed WAF rules for the attack, while both Akamai and Ethiack say rules matched to known exploit patterns do not substitute for the patch and the rotation [11]. Rotation is the step most likely to slip. An app patched this week with its old secret_key_base still in place is closed against the read and still holding the key an earlier read would have taken [9].</body_markdown> </invoke>
Ranked by verification strength, evidence, and original report placement.
A member of the Rails core team: "In its default configuration, a Rails application that displays image variants may allow an unauthenticated attacker to read arbitrary files from the server, including the process environment. That environment typically holds secret_key_base and often credentials for external systems, which may in turn allow escalation to remote code execution or lateral movement to those systems."
Help Net Security published its report on CVE-2026-66066 on August 3, 2026.
libvips can open obscure scientific and specialty formats including MATLAB .mat files, NIfTI medical scans, SVG and PDF; the tools it uses for some of these formats are unsafe to run on files that come from strangers, and Rails was not switching them off, so a crafted file that looks like a harmless image can instruct the server to read whatever the attacker asks when a thumbnail is generated.
Rails released the fix for CVE-2026-66066 on July 29, 2026, in Rails versions 7.2.3.2, 8.0.5.1 and 8.1.3.1.
Apps are affected if running one of the affected Active Storage 7.0 releases before 7.2.3.2, 8.0 releases before 8.0.5.1, or 8.1 releases before 8.1.3.1.
An app is exposed if it uses Active Storage with the default image processor "vips", which has been the standard setup since Rails 7, and lets users upload images via features or direct uploads.
Distinct publishers with included, body-backed reporting in this cluster.
1 article · August 31, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
build
Answering one hardcoded address gives you root on 20+ Zbtlink router models1 distinct publisher
build
The 680 MB database that was really a 17 GB disk: self-hosted support platforms fail at month six1 distinct publisher
build
Four indexes, none of them covering: the 78-second page and the one index that fixed it1 distinct publisher
build
AI writes the login check and skips the ownership check. IDOR is now the default review item.1 distinct publisher
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Primary-sourced, single-relay
One outlet carries this, but almost nothing in it is that outlet's own assertion: the patched version numbers and the VIPS_BLOCK_UNTRUSTED workaround are Rails' advisory language, the 6.x carve-out and the avatar-and-thumbnail warning are Ethiack's, the 'a firewall rule is not a patch' caveat is Akamai's, the exploitation sighting is VulnCheck's. Each attribution is named and checkable against a public advisory. What is missing is a second newsroom reading the same advisory — and any number at all for how much of the Rails installed base sits on the default vips path.
Fix shipped, uptake unmeasured
The observable movement is all on the supply side of the fix and the wrong side of the attack: three patched releases on July 29, Akamai firewall rules, two Rails forensic skills, then reverse-engineered proof-of-concept code circulating, and by the end of August a confirmed exploitation attempt with command-and-control traffic. Defender uptake is the one thing nobody counts. Exposure is described in loving configuration detail and never sized.
Nickname loud, conclusion buried
The nickname does the shouting and the prose then walks it back — 'in some cases take full control' rests on Rails' own conditional chain from file read to secret_key_base to escalation, and the story is careful to say no exploitation had been seen. Then four short paragraphs at the very bottom, added weeks later, report the flaw being used for real. Read on the day it published, this was measured; read now, the most alarming fact on the page is the footnote.
Vendors on the record, advisory checkable
Three of the named parties sell into this moment: Akamai obtained pre-disclosure access through coordination and shipped rules its customers pay for, Ethiack converted a credited find and a nickname into a technical deep-dive, and VulnCheck's exploitation telemetry is the product. None of that makes the advisory wrong — version numbers and the libvips 8.13 threshold are the kind of facts that break if fudged — but 'patch, don't lean on a firewall' is advice a firewall vendor can afford to give, and urgency serves everyone quoted here. Rails, for its part, benefits from a scary default-configuration framing that drives upgrades.
Solid on mechanics, hedged on scope
Strong where it is specific, thin where it matters most for triage. Which versions are fixed, which processor is safe, what to rotate, what the environment flag does — unambiguous and traceable to primary statements. Whether a particular 6.x deployment or third-party Rails product is exposed stays at 'may be affected', and the exploitation finding rests on a single researcher's post relayed second-hand. With one publisher there are no contradictions to weigh, which is not the same as agreement.