Researchers Document "SleeperGem" RubyGems Supply-Chain Attack Targeting Developer Machines

Ecosystem supply-chain compromises now extend to RubyGems — three malicious gems built to skip CI runners and land on developer machines make this week's defender inventory work a Ruby-dependency audit.

Share
Editorial illustration of a gem-shaped package hiding a dormant timer over a developer's keyboard, marking the SleeperGem RubyGems supply-chain attack.

Key Takeaways

  • Researchers on July 20, 2026 documented a software supply-chain attack codenamed “SleeperGem” in which malicious gems were published to RubyGems — the Ruby ecosystem’s package registry — making the immediate defender task a dependency inventory across teams that build with Ruby, not a malware-analysis exercise.
  • The activity is built to run on developer machines and to skip continuous-integration runners: the code reportedly checks for roughly 30 CI-related environment variables and exits if it finds them, so a defender’s exposure question is which developer workstations pulled an affected gem, not which build pipelines did.
  • The named packages include git_credential_manager (versions 2.8.0, 2.8.1, 2.8.2, 2.8.3, published July 18, 2026), which impersonates Microsoft’s Git Credential Manager, plus dormant gems Dendreo (1.1.3, 1.1.4) and fastlane-plugin-run_tests_firebase_testlab (0.3.2) that received malicious updates — though whether RubyGems has removed the packages, and any link to recent npm compromises, remains unestablished.

A takedown of long-dormant maintainer accounts, a deliberate CI-runner skip, and a Microsoft-tool impersonation — the defender task is inventory, removal, and credential rotation, not payload analysis.

SAN FRANCISCO, CALIF. — Researchers on July 20, 2026 documented a software supply-chain attack, codenamed “SleeperGem,” in which malicious gems were published to RubyGems, the package registry for the Ruby programming ecosystem. Each release is described as a loader whose end goal is to serve additional payloads, and the campaign is selective about where it runs: it is reported to check whether it is executing inside a build system and to skip if it is, aiming instead at developer machines. For defenders, that selectivity narrows exposure to a specific population — the workstations of engineers who build with Ruby and pulled in an affected gem.

The campaign was reported by The Hacker News, drawing on analysis from StepSecurity and Aikido Security. The CyberSignal is deliberately not reconstructing how the loader stages its follow-on payload; what matters on the defender side is narrower — which machines resolved an affected gem, and how those machines and their credentials should now be treated.

At a Glance
FieldDetails
Campaign“SleeperGem,” codenamed by researchers
DocumentedJuly 20, 2026, reported by The Hacker News; analysis by StepSecurity and Aikido Security
RegistryRubyGems (the Ruby ecosystem’s package registry)
Named packagesgit_credential_manager (2.8.0, 2.8.1, 2.8.2, 2.8.3); Dendreo (1.1.3, 1.1.4); fastlane-plugin-run_tests_firebase_testlab (0.3.2)
git_credential_manager publishedJuly 18, 2026
TargetingDeveloper machines; reportedly checks for ~30 CI-related environment variables and exits on build systems
Impersonation“git_credential_manager” impersonates Microsoft’s Git Credential Manager
Spreadgit_credential_manager reportedly added as a dependency to five packages, seeding malicious code to their users
Registry statusNot established whether RubyGems has removed the packages

What Researchers Documented

According to The Hacker News, researchers flagged the SleeperGem supply-chain attack after three malicious gems were published to RubyGems to serve additional payloads. StepSecurity, whose analysis the reporting draws on, describes each release as a loader that fetches a second stage, checks whether it is running in a build system and skips if it is, and — on a developer machine — installs persistence. The CI-skip behavior is the defining defender-relevant trait: the code reportedly inspects around 30 environment variables tied to services such as GitHub Actions, GitLab, CircleCI, Travis, Jenkins, and Vercel.

Two further reported characteristics matter for triage. The flagged releases were published directly to the registry with no matching commit or tag in the underlying source projects — a provenance gap a reviewer can check independently of any malware. And the name points to the entry method: Aikido Security researcher Charlie Eriksen is quoted describing SleeperGem as the takeover of an ordinary maintainer account that had gone dormant for years and looked harmless enough to hijack.

The Named Affected Packages and Versions

The reporting names three gems. The first is git_credential_manager, in versions 2.8.0, 2.8.1, 2.8.2, and 2.8.3, published on July 18, 2026 — a package that impersonates Microsoft’s official Git Credential Manager. The other two are long-dormant gems that received malicious updates: Dendreo, in versions 1.1.3 and 1.1.4, and fastlane-plugin-run_tests_firebase_testlab, in version 0.3.2. Match these names and versions verbatim; the confusion with legitimate tooling is the point, echoing the typosquatted npm packages Microsoft documented targeting cloud and CI/CD secrets.

The spread is wider than the three headline gems. Reporting notes that git_credential_manager was added as a dependency to five packages — Dendreo, fastlane-plugin-run_tests_firebase_testlab, slackHtmlToMarkdown, seo_optimizer, and array_fast_methods — carrying the loader to existing users of those packages. Most affected gems belong to one maintainer account and another to a second, which researchers read as evidence that more than one account was likely compromised.

Defender Posture for Organizations Using Ruby Dependencies

The response requires no understanding of the payload. Match the named gems and versions against Gemfile.lock files, dependency trees, and any software bill of materials — weighting the search toward developer laptops rather than CI, since the campaign skips build systems. Include the five reverse-dependency package names too, since a team could inherit the loader without installing git_credential_manager directly.

Where a match is found, the reported guidance is direct: treat the affected machine and any reachable secrets as compromised, remove the package and any persistence the loader established, and rotate all exposed credentials. StepSecurity points to concrete artifacts to check on Unix-like systems — a dropped component under a per-user data directory and a suspicious set-user-ID copy of the system shell at a networking-utility path. Rebuild from a pinned, known-good dependency set. Registry-hardening The CyberSignal has covered on the npm side — including npm’s move to disable install scripts by default for new packages — has limited reach here: install-gating controls do not help once code runs at require time on a developer’s machine.

Continuation Context: The Broader Ecosystem Supply-Chain Thread

SleeperGem’s arrival on RubyGems widens a supply-chain thread that has mostly played out on npm. Four vendors recently confirmed that compromised @asyncapi npm packages were distributing a multi-stage botnet loader — an incident that drew a subsequent Microsoft deep dive — and researchers separately documented the ViteVenom campaign compromising Vite npm packages with blockchain-based command-and-control, part of a cross-registry pattern that includes the Trapdoor campaign spanning npm, PyPI, and crates. No link between SleeperGem and any of these has been established, and nothing in the reporting asserts one; the recurring shape is what makes the comparison useful — named packages, a plausible-looking namespace or maintainer, and a trigger during normal developer use.

RubyGems Platform Response and What to Watch For

It is not established in the reporting whether RubyGems has unpublished the named gems — the difference between a cleanup exercise and an open installation path — so teams should add the names to any internal blocklist or registry-proxy policy rather than assuming the registry has acted. RubyGems has been under pressure before: The CyberSignal previously covered how RubyGems briefly suspended new signups after a coordinated malicious-publishing campaign.

What to watch is narrow: confirmation of removal for each named version, any expansion of the reverse-dependency list beyond the five already flagged, and whether the compromised-account theory resolves into a specific number of hijacked maintainers.

Open Questions

Several points remain unresolved. The reporting does not name the operator — the codename describes tradecraft, not an identified actor — and gives no total download figures, so the blast radius is unquantified. It is not established whether RubyGems has removed the packages, nor whether SleeperGem overlaps with the recent npm compromises; no connection has been drawn. What is firm enough to act on is the incident’s shape: named gems, a Microsoft-tool impersonation, dormant-account takeovers, a CI-runner skip, and a focus on developer machines — enough to run the inventory, which does not depend on the open questions resolving.


The CyberSignal Analysis

The reported facts above come from The Hacker News’ account and the StepSecurity and Aikido Security analyses it draws on; what follows is The CyberSignal’s editorial reading of what defenders should take from them. None of the judgments below are new reported facts.

Signal 01 — The CI-Runner Skip Redraws the Blast Radius

Supply-chain triage usually centers on build pipelines, where dependencies resolve at scale. SleeperGem inverts that instinct: by checking for CI environment variables and exiting, it spares the runners and aims at the harder-to-inventory population of developer workstations. Teams should weight the hunt toward laptops and local development environments, where telemetry is thinner and credential exposure often richer.

Signal 02 — Dormant Accounts Are an Underpriced Attack Surface

A maintainer account quiet for years reads as harmless to almost everyone, which is exactly what makes it worth taking over. Registries and downstream consumers alike should treat long-dormant-then-suddenly-active packages as a first-order signal — a release with no matching source commit or tag, on an account that has not published in years, is a cheap check that would have flagged this independently of any malware.

Signal 03 — Impersonating a Trusted Tool Is the Reusable Trick

Naming a malicious gem after Microsoft’s Git Credential Manager borrows a provenance most dependency reviews cannot verify, and the reverse-dependency chaining carries that borrowed trust to unrelated packages. The durable pattern — impersonation plus dependency chaining — is registry-agnostic. The practical control is an approved-package allowlist at the registry proxy, which blocks a lookalike regardless of what it contains or which ecosystem it targets next.


Sources

TypeSource
ReportingThe Hacker News — SleeperGem Uses Three Malicious RubyGems Packages to Target Developer Machines
AnalysisStepSecurity — SleeperGem: Compromised RubyGems Drop a Persistent Backdoor
AnalysisAikido Security — SleeperGem RubyGems Supply-Chain Attack
RelatedThe CyberSignal — RubyGems Suspends New Signups After a Major Malicious Attack
RelatedThe CyberSignal — Compromised @asyncapi npm Packages Deliver a Multi-Stage Botnet Loader
RelatedThe CyberSignal — ViteVenom: Seven Vite npm Packages Use Blockchain C2 to Deliver a RAT