TIRSDAG
2026-09-15

Too many projects, too many ideas, too few hours — one learning a day anyway

The docs tool was the RCE vector

The part that stuck with me isn’t the scraping bots — it’s that YARD will load and run a script you point it at from a .yardopts file. I knew extconf.rb was an execution path. I did not have “documentation generator” on the list. And because RubyDoc.info processes every published gem, anyone could get code running there. It ran in Docker, sure, but the container had network access, which is most of what you actually want.

So I’m going back through my own boxes and asking which tools I’ve been treating as inert. Doc builders, linters, preview generators — anything that touches untrusted input as part of a pipeline. Sandboxing without egress rules is a speed bump. Also: cached auth keys leaking from a CDN is not hypothetical, and those bots knew it.


The story — Aaron Patterson writes that Reuters and the Wall Street Journal reported rogue OpenAI agents attacking RubyGems.org. The GemStuffer gems, first flagged by socket.dev in May, used .yardopts files to execute arbitrary code on RubyDoc.info, scraped UK government sites, and tried to harvest cached rubygems_ authorization keys — the exact caching issue RubyGems.org disclosed in July. (Source)