Active Storage variant processing allows unauthenticated arbitrary file read en route to RCE
Rails' Active Storage passes untrusted uploads to libvips's ‘unfuzzed’ loaders and savers without disabling them, so an unauthenticated attacker who uploads a crafted file and triggers variant generation can read arbitrary files off the server — including the process environment, which typically holds secret_key_base and credentials for every external system the app talks to. This is default-configuration exposure: variant_processor: :vips has been the default since Rails 7.0, and the only other precondition is allowing image uploads from untrusted users. Upgrade activestorage and libvips past 8.13, then rotate secret_key_base, the master key, and every credential the app process could read — the upgrade closes the hole but doesn't undo a secret that already leaked.