Government Rails Site Hit Hours After CVE Patch
Posted by rietta 4 days ago
Comments
Comment by throwatdem12311 4 days ago
We don’t use ActiveStorage but Claude was able create a similar exploit in own our app in the exact same way via our own file upload library in 3 minutes simply by point Opus 5 at our site and asking it if we were vulnerable to an attack similar to KindaRails2Shell.
What a time to be alive.
Comment by jcupitt 3 days ago
https://www.rubydoc.info/gems/ruby-vips/Vips.block_untrusted
You can also set the env var `VIPS_BLOCK_UNTRUSTED`, which might be easier.
You can block or allow specific load operations, so you can limit format support to just the types you need:
https://www.rubydoc.info/gems/ruby-vips/Vips#block-class_met...
That might be even better.
There was a post on libvips.org about this a while ago:
https://www.libvips.org/2022/05/28/What's-new-in-8.13.html
And a note about it in the checklist for devs:
https://www.libvips.org/API/current/developer-checklist.html...
Comment by tyre 4 days ago
- There was a bug with a patch
- We applied it to our clients
- There were live exploits within eight hours of the patch being released
- The Rails team had to expedite release of the technical details because POCs obviated the need to embargo
Comment by adastra22 3 days ago
Comment by jeremyjh 4 days ago
Comment by comrade1234 4 days ago
Comment by bradly 4 days ago
bin/rails runner '
require "vips"
puts "ruby-vips #{Vips::VERSION} libvips #{Vips.version(0)}.#{Vips.version(1)}.#{Vips.version(2)}"
begin
Vips::Operation.new("matload")
puts "matload PRESENT - this build can reach libmatio"
rescue Vips::Error
puts "matload ABSENT - this build cannot reach libmatio"
end
'
This is from the Rails official docs for the CVE which, interestingly, they only released as an agent skill. https://github.com/rails/rails-forensics-CVE-2026-66066/blob...Comment by XenoCyber0 4 days ago
Comment by TeMPOraL 3 days ago
Human incentives are funny.
Comment by XenoCyber0 11 hours ago
Comment by comrade1234 4 days ago
Comment by fishtoaster 4 days ago
Comment by rietta 4 days ago
Comment by kawsper 4 days ago
vips -l
VipsForeignLoadMat (matload), load mat from file (.mat), priority=0, untrusted, is_a, get_flags, get_flags_filename, header, loadComment by rietta 4 days ago
Comment by BirAdam 3 days ago
It reeks of people just writing stuff and tossing it up thinking that they’ve crafted something so great they needn’t worry. Get a good platform team.
Comment by onemoresoop 3 days ago
Comment by rietta 3 days ago
We recently updated the design. This is a very old site so it has some quirks in the design for sure.
Comment by onemoresoop 3 days ago
Comment by bavell 3 days ago
Comment by pmontra 3 days ago
Comment by dorianmariecom 4 days ago
Comment by bastawhiz 4 days ago
Comment by rietta 4 days ago
Comment by rietta 4 days ago
Comment by ceejayoz 4 days ago
Comment by hobonation 4 days ago
Comment by shevy-java 4 days ago
Comment by stephenhuey 4 days ago
Comment by dleink 3 days ago
Comment by stephenhuey 3 days ago
Comment by tclancy 3 days ago
Comment by tyre 4 days ago
The rails developers are incredibly smart and capable. They patched the exploit. The problem is that it’s too easy to reverse engineer based on the patch. They can’t do anything about that.
Comment by kazinator 4 days ago
Overdramatized.
It means compromise if you delay patching and don't take the unpatched deployment offline.
Oh right, this is government sites; every second of down time is lost revenue.