# no-fun - compromised RubyGems versions

> no-fun on RubyGems.org has 1 version flagged in 1 tracked supply-chain incident. Only the exact versions listed below were named by the source advisories. no-fun was recorded in a daily advisory sweep. The write-up groups it into a cluster with the evidence available at the time; check the cluster note before treating it as a confirmed compromise.

- Package: no-fun
- Ecosystem: RubyGems
- Highest severity: high
- Kind: Advisory sweep
- Compromised versions: 1.0.0
- Check what you have installed: `gem list no-fun`

## The incident that flagged it

| Date | Severity | Kind | Incident | Versions named |
|---|---|---|---|---|
| 2026-09-23 | high | Advisory sweep | [GitHub Advisory malware sweep - 2026-09-22 (late) + 2026-09-23 (npm `@tvg-mar/*` + `@user-services/web-components` `oob.algamil7x.xyz` DNS-OOB day 6 at `9.9.10`; `hardhat-hold` axios-loader RCE typosquat wave extension; `chai-as-viem` + `chai-logger` chai/pino/jsonspack axios-loader family extension; `envforge/envparse` 6-package coordinated typosquat batch; `@wizloft/harness-*` 15-package Aug-Sep buildup batch quarantine; `oracle-redis` + `turbo-ws` transitive-dependency trojans; `@vitemirrorte/element-plus-vite-cli` `npmjs.it.com` mall4cloud-react-targeted RAT; `@gsutevil/hta-stage` Windows HTA/WSH MSI loader; org-internal dep-confusion cluster (`@tesla-insurance`, `devplatform-sdk`, `uolcs-host-uol-anuncios-fe`, `bnpl-blocks-*`, `bigops-*`, `agora402-payment-utils`, `ubiquiti-agents-link-mcp`, `internallib_v497/550` at RFC1918 `10.0.5.109`, `cisco-github-simple` oastify.com); pip `auclean` cloud-credential infostealer + `snap-queue`/`crypto-trader-py`/`poly-check-b` silent-install campaign + `kerokwis` pypi+rubygems telemetry; pentest `cloushaar-poc-exfil-91827` pip; ~60 random-name bulk quarantines)](https://dependencywatch.io/incident/multi-2026-09-23-ghsa-malware-sweep) | 1.0.0 |

## What to do if you installed one of these

1. Treat the machine as compromised rather than simply upgrading. Packages in these incidents typically execute at install time, so the payload has already run with whatever credentials were in the environment.
2. Rotate every credential that machine or CI job could reach - registry tokens, cloud keys, SSH keys, CI secrets - from a *different* machine.
3. Pin to a version not listed above, then reinstall from a clean lockfile.
4. Clear caches and private mirrors. Artifactory, Nexus, Verdaccio, and devpi routinely keep serving a tarball after the public registry has pulled it.
5. Read the incident write-up linked above - recommended actions differ per incident, and some have specific indicators of compromise worth grepping your logs for.

## Check your whole project

We don't parse RubyGems manifests yet, but the incident write-ups list every affected package. Incident feed: https://dependencywatch.io/feed

All flagged RubyGems packages: https://dependencywatch.io/package/rubygems

## Other packages in the same incident

If no-fun is in your tree, these are worth checking too - they were published by the same campaign.

- [@gsutevil/hta-stage](https://dependencywatch.io/package/npm/@gsutevil/hta-stage) (npm)
- [@httttt/mcp-demo](https://dependencywatch.io/package/npm/@httttt/mcp-demo) (npm)
- [@httttt/mcp-npx-fetch-1](https://dependencywatch.io/package/npm/@httttt/mcp-npx-fetch-1) (npm)
- [@mikudeveloper/baileys](https://dependencywatch.io/package/npm/@mikudeveloper/baileys) (npm)
- [@mr-supun-fernando/supunmd-bail](https://dependencywatch.io/package/npm/@mr-supun-fernando/supunmd-bail) (npm)
- [@tesla-insurance/vinless-quote](https://dependencywatch.io/package/npm/@tesla-insurance/vinless-quote) (npm)
- [@test1230504/probe-7f3k2m-utils](https://dependencywatch.io/package/npm/@test1230504/probe-7f3k2m-utils) (npm)
- [@test1230504/string-format-helper](https://dependencywatch.io/package/npm/@test1230504/string-format-helper) (npm)
- [@test1230504/test-publish-verify](https://dependencywatch.io/package/npm/@test1230504/test-publish-verify) (npm)
- [@tvg-mar/promos-context](https://dependencywatch.io/package/npm/@tvg-mar/promos-context) (npm)
- [@tvg-mar/promos-gtm](https://dependencywatch.io/package/npm/@tvg-mar/promos-gtm) (npm)
- [@tvg-mar/storyblok-bridge](https://dependencywatch.io/package/npm/@tvg-mar/storyblok-bridge) (npm)

Full incident: https://dependencywatch.io/incident/multi-2026-09-23-ghsa-malware-sweep

## Sourcing

Version data comes from the public advisories cited on each incident page. We list only versions those advisories name - we don't infer additional ones. Corrections: https://dependencywatch.io/submit

---

Canonical page: https://dependencywatch.io/package/rubygems/no-fun
Markdown version: https://dependencywatch.io/package/rubygems/no-fun.md
Site index for agents: https://dependencywatch.io/llms.txt
DependencyWatch.io is operated by Precursor Security (https://precursorsecurity.com).
