Cyber Security News

OpenAI Agent Swarm Linked to 3,022 Malicious RubyGems Packages in GemStuffer Campaign

Open-source packages are meant to save developers time. In the GemStuffer campaign, that trust became a route for code that could run on documentation systems, collect online material, and seek RubyGems credentials.

The expanded inventory shows an operation far larger than initial reports suggested. The activity ran from May through July 2026, peaking on May 12. Some packages did not depend on a developer installing a gem.

They abused automated documentation processing, making a routine service feature an execution point for untrusted code. JFrog analysts identified 3,022 campaign-linked RubyGems packages, covering 3,315 package and version combinations.

The results expand a RubyHack investigation that linked May and June activity to OpenAI agents through package content and overlap with a public-wiki incident.

The evidence describes an agent-linked operation, not a finding that OpenAI deliberately operated it. JFrog said in a report shared with Cyber Security News (CSN) that the packages used documentation workers to retrieve websites and send results back through RubyGems.

The campaign crossed package uploads, automated workers, publishing keys, public metadata, and administrative views. Teams tracking poisoned developer package threats should note that danger can arise when a service processes a gem, not only when somebody installs it.

That distinction broadens potential impact: a centralized worker may process many submissions and hold network access or credentials that ordinary package consumers never receive. The rapid publishing rate also substantially complicated review.

OpenAI Agent Swarm

Package names gave investigators clues to the scale and automation behind the uploads. JFrog found many names with “oai” and “probe,” plus references to fetching, proxies, scraping, YARD, and payloads.

Some carried Unix timestamps that closely matched publication times; others used short, sequential, or random-looking names.

A key path used RubyDoc settings to load package-controlled Ruby code. As a documentation worker processed a crafted gem, the code could run, gather council calendar pages and linked documents, and package the results for publication back to the registry.

slnleaker5 (Source – JFrog)

This differs from malicious RubyGems credential theft, where the intended victim is usually the developer who installs the package.

Researchers also examined a sample that tried to collect RubyGems API keys through several forms of a legacy endpoint before uploading data.

RubyGems later said it fixed the cache issue and revoked legacy keys. The timeline shows an attempt before public disclosure, but does not prove a cache bypass worked. Another sample put encoded collection results into webhook configuration instead of a new gem.

Using the registry as a return channel reduced the need for a separate command server. Defenders should therefore investigate unusual registry actions as well as suspicious outbound build traffic.

Documentation Workers and Metadata Risks

July uploads added test payloads to package descriptions and author fields. They attempted cross-site scripting and template-expression injection against package pages, administrative panels, or metadata parsers.

A gem can create exposure even when its library code looks harmless, particularly where a site renders package-supplied text. Organizations that generate documentation or process uploaded gems should review recent jobs involving affected versions.

southpxdatapp6pi (Source – JFrog)

Isolate a worker that may have executed an untrusted payload, preserve logs and artifacts, rebuild it from a trusted image, and rotate credentials it could reach. Similar safeguards matter in CI pipeline credential theft, where automation often holds valuable secrets.

Documentation builds for untrusted packages should use disposable environments without publishing keys, cloud credentials, host mounts, or unnecessary network access.

Package-controlled load options should never execute in a trusted process. Where executable helpers are unavoidable, teams must treat the job as untrusted code from beginning to end.

Administrators should review account history for unexpected releases, removed versions, owner changes, trusted publishers, and webhooks. Scoped, short-lived credentials and multi-factor authentication for API actions can reduce the impact of a stolen key.

Escape metadata in public and administrative pages, and treat suspicious fields as text, not executable templates or unsafe serialized objects. These steps reinforce lessons from broader open-source supply-chain attacks.

Indicators of compromise (IoCs):-

TypeIndicatorDescription
Malicious RubyGems packageslnleaker5@0.0.1Package identified by JFrog; includes a RubyGems token-stealing payload
Malicious RubyGems packagef2fe-s1@0.0.1Package that collected Wandsworth council data and attempted to republish it
Malicious RubyGems packageyardxabc889@0.0.1Package that collected Lambeth data through documentation-worker execution
Malicious RubyGems packagesouthpxdatapp6pi@0.0.1Package that attempted to store encoded collected data in RubyGems webhooks
Malicious RubyGems packagexss-test-gem@0.1.0-0.3.5Package family containing metadata-based XSS test payloads
Malicious RubyGems packagetest-apex-gem@0.1.1, 0.1.3Package associated with an author-field XSS test
Malicious RubyGems packageattacker-xss-admin-1@0.0.1Package containing an XSS payload in the author metadata
Malicious RubyGems packagexssname-1783397821@0.0.1Package containing a cookie-stealing XSS test in author metadata
Malicious RubyGems packagetest-ssti-0@0.1.0Package containing an ERB template-expression test
Malicious RubyGems packagetest-ssti-1@0.1.0Package containing an expression-language interpolation test
Malicious RubyGems packagetest-ssti-4@0.1.0Package containing a percent-encoded ERB expression test
File namescript.rbRuby payload file loaded by slnleaker5
File name.yardoptsDocumentation configuration file used to load package-controlled Ruby code
File nameevil.rbRuby payload file referenced through a YARD load directive
File nameINDEX.txtFile used by the slnleaker5 payload while collecting data
File nameloader.rbRuby payload file used by f2fe-s1
File namep0.txt, ids.txt, d0.binFiles used to store collected calendar responses, meeting IDs, and documents
File nameREADME.mdFile written with collected Lambeth calendar content in the yardxabc889 sample
File nameyardxabc889-0.0.2.gemGenerated gem archive used to attempt data publication
URLhttps://d96877a5q295v25se560q7ntmmwky7x8o.oast.online/admin-xss-authorOAST endpoint embedded in an XSS test payload
URLhttps://webhook.site/steal?c='+document.cookieCookie-exfiltration URL embedded in an XSS test payload
URL patternhttps://example.com/A000/<encoded-chunk>Example webhook data chunk format used by the Southwark collection sample
URL patternhttps://example.com/A001/<encoded-chunk>Example sequential webhook data chunk format used by the Southwark collection sample
URL patternhttps://example.com/ZZEND/<chunk-count>Example completion-marker format used by the Southwark collection sample

Note: IP addresses and domains are intentionally defanged (e.g., [.]) to prevent accidental resolution or hyperlinking. Re-fang only within controlled threat intelligence platforms such as MISP, VirusTotal, or your SIEM.

Keep your SOC up to date on active malware & phishing within 24h of their emergence. Try ANYRUN to prevent incidents with early detection.

Tushar Subhra Dutta

Tushar is a senior cybersecurity and breach reporter. He specializes in covering cybersecurity news, trends, and emerging threats, data breaches, and malware attacks. With years of experience, he brings clarity and depth to complex security topics.

Recent Posts

Google Chrome 153 Update Fixes 42 Security Flaws, Including 3 Critical Ones

Google has released an important Chrome 153 security update that fixes 42 vulnerabilities across the…

4 hours ago

CISA and NIST Release Technical Checklist for Safeguarding Identity Tokens From Theft and Misuse

The Cybersecurity and Infrastructure Security Agency (CISA) and the National Institute of Standards and Technology…

14 hours ago

CISA Shares 17 Techniques Used by Hackers to Compromise Active Directory Environments

CISA and five international cybersecurity agencies have released detailed guidance describing 17 common techniques hackers…

15 hours ago

Apple Rolls Out Massive Security Update Fixing 273 Vulnerabilities Across Its Devices

Apple has released one of its largest coordinated security rollouts, addressing 273 distinct critical vulnerabilities…

15 hours ago

How to Keep Malware’s Rotating Infrastructure From Becoming a Detection Gap

You can’t detect today's attacks with yesterday’s threat intelligence; that’s how you could briefly formulate…

16 hours ago

Microsoft Bans Its AI Models From Launching Cyberattacks or Escalating Their Own Access

Microsoft has published a draft Humanist AI Code of Conduct that would prohibit its in-house…

16 hours ago