refuse.devREFUSE.DEV
★ Open-source shim for package installers362K+ advisories · 21 ecosystems
refuse.devREFUSE.DEV
We refuse vulnerable packages so your SHELL doesn't install them — and neither does your agent or your CI.
— 01 / Pick a backend
refuse needs a server to check packages against. Pick where it lives — you can switch later.
Hosted SaaSRecommendedFree up to 100k scans / 30 days.— Zero infra. Always-up MCP endpoint.— Grab a key at app.refuse.dev/sign-up.— Upgradeable to higher quota when needed.Pricing & sign-up →Self-hostApache-2.0 · No keyOne docker run. $0 forever.— ghcr.io/refusehq/refuse:latest— SQLite by default, same advisory feed.— No data leaves your network.Self-host guide →
— 02 / Install the CLI
Same binary on every platform. Wraps npm, pip, cargo, gem, go and 13 other managers.
macOS / LinuxWindowsFrom source
$ shellmacOS / Linux
curl -fsSL https://raw.githubusercontent.com/RefuseHQ/refuse-cli/main/scripts/install.sh | shWiring it into Claude Code, Cursor, Codex, or any MCP client? Full install docs →
— 03 / Point it at your backend
One prompt. Paste your key (or your self-host URL). Saves to \~/.refuse/config.yaml.
$ shellrefuse init
$ refuse init
Server URL [https://mcp.refuse.dev]: ↵
API key (paste rfs_…, or leave blank for localhost): rfs_••••••••
✓ wrote ~/.refuse/config.yamlSelf-host on localhost? Skip init and run `refuse config set server_url http://localhost:8080` directly.
— 04 / Drop the shim into your shell
Every install — typed by you, your agent, or your CI — now routes through refuse before it touches the registry.
$ shellrefuse install
$ refuse install
installed 18 shims to ~/.refuse/bin
npm pnpm yarn bun npx pip pip3 uv poetry pipenv
pdm pipx cargo gem bundle go composer dotnet
added managed block to ~/.zshrc
✓ open a new shell to pick up PATH
──────────────────────────────────
$ npm install next@15.2.5
✗ refused next@15.2.5 → next@16.2.4$ npm install next@$(refuse fix npm next@15.2.5)
✓ added 1 package — next@16.2.4
`refuse fix` prints the suggested safe version to stdout, so the bash substitution `$(refuse fix …)` pipes it back into the install. The same loop works for `pip`, `cargo`, `gem`, and the rest.
See exactly what happens when a CVE gets blocked ↓
— 02 / How it works
Three steps. Thirty
seconds.01
$
Install the CLI
One command on macOS, Linux, or Windows. The shim wraps npm, pip, cargo, gem, go — every manager you use.
02
→
Every install is intercepted
Type it, prompt your agent, run CI — every install routes through refuse before it touches the registry.
03
✕
Vulnerable gets refused
CVE-tagged versions blocked with a safe-version suggestion. Clean ones pass through untouched.
— 01 / Live
Live advisories.
What your agent would have refused today.
11h ago
acme-widget-layout-utilsMAL-2026-5545
Malicious code in acme-widget-layout-utils (PyPI)
Recently foundMalicious
12h ago
mermaid-v11MAL-2026-5539
Malicious code in mermaid-v11 (npm)
Recently foundMalicious
12h ago
@entos-ems/xerxes-client-jsMAL-2026-5537
Malicious code in @entos-ems/xerxes-client-js (npm)
Recently foundMalicious
12h ago
hex-typeMAL-2026-5538
Malicious code in hex-type (npm)
Recently foundMalicious
14h ago
github.com/juev/nebula-meshCVE-2026-47768
nebula-mesh: Newly-minted operator API key exposed in redirect URL (Referer, history, proxy logs)
DisclosedMedium
16h ago
pdmCVE-2026-47764
PDM wheel installation leads to Path Traversal via overridden write\_to\_fs
DisclosedMedium
17h ago
@whiskeysockets/baileysCVE-2026-48063
Baileys has message upsert / hist sync spoofing and app state corruption when using maliciously crafted protocolMessage payload
New CVEHigh
17h ago
litestarCVE-2026-48060
Litestar has HTML Injection Through its CSRF Token
New CVEHigh
19h ago
github.com/open-telemetry/opentelemetry-operatorCVE-2026-47701
OpenTelemetry Operator for Kubernetes's ServiceMonitor bearerTokenFile reads arbitrary local file and sends contents as bearer auth
New CVEHigh
3d ago
CVE-2026-11645
Out of bounds read and write in V8 in Google Chrome prior to 149.0.7827.103 allowed a remote...
Active threatCritical
— 02 / Supported
Every ecosystem
you install from.Whatever runs the install — you, your agent, or your CI — we check it against 362,000+ known vulnerabilities.
— 01.A / Languages
Every package manager.
If the package manager pulls it, we know the rules for whether the version is safe.
PyPInpmRubyGemsCargoGoComposerMavenNuGetHexPub
— 01.B / Containers
Dockerfile dependencies.
apt, apk, and dnf installs inside a Dockerfile get scanned along with any pip/npm/etc. lines.
Docker
— 01.C / CI
GitHub Actions workflows.
Every action your workflow uses is checked against advisories for that exact ref before it lands.
GitHub Actions
— 01.D / OS
Linux distros.
Distro-specific advisories, not generic CVE lookup — the comparison rules differ per family.
DebianUbuntuAlpineRed Hat
— 03 / Most refused
Top packages your agent tries to install.
What each frontier model pinned when asked for “the latest stable secure version”.
model output: 2026-04-30
OSV: live
Package
Today's safe
Opus 4.7
Sonnet 4.6
GPT-5.5
GPT-5.5 Pro
Gemini 3.1
urllib3
2.7.0
2.5.05
decompression bomb
2.2.37
redirect SSRF
2.5.05
decompression bomb
2.5.05
decompression bomb
2.2.27
redirect SSRF
requests
2.34.2
2.32.41
temp-file reuse
declined
2.32.51
temp-file reuse
2.32.51
temp-file reuse
2.32.32
.netrc leak
lodash
4.18.1
4.17.213
\_.template RCE
4.17.213
\_.template RCE
4.17.213
\_.template RCE
4.17.213
\_.template RCE
4.17.213
\_.template RCE
axios
1.17.0
1.7.726
NO\_PROXY SSRF
1.7.926
NO\_PROXY SSRF
1.13.224
NO\_PROXY SSRF
1.13.224
NO\_PROXY SSRF
1.7.926
NO\_PROXY SSRF
next
16.2.9
15.5.421
image-cache DoS
14.2.2920
cache poisoning
15.3.124
middleware SSRF
15.2.324
middleware SSRF
15.1.624
KEV-listed RCE
urllib3safe @ 2.7.0
- Opus 4.72.5.05 decompression bomb
- Sonnet 4.62.2.37 redirect SSRF
- GPT-5.52.5.05 decompression bomb
- GPT-5.5 Pro2.5.05 decompression bomb
- Gemini 3.12.2.27 redirect SSRF
- Opus 4.72.32.41 temp-file reuse
- Sonnet 4.6declined
- GPT-5.52.32.51 temp-file reuse
- GPT-5.5 Pro2.32.51 temp-file reuse
- Gemini 3.12.32.32 .netrc leak
- Opus 4.74.17.213 \_.template RCE
- Sonnet 4.64.17.213 \_.template RCE
- GPT-5.54.17.213 \_.template RCE
- GPT-5.5 Pro4.17.213 \_.template RCE
- Gemini 3.14.17.213 \_.template RCE
- Opus 4.71.7.726 NO\_PROXY SSRF
- Sonnet 4.61.7.926 NO\_PROXY SSRF
- GPT-5.51.13.224 NO\_PROXY SSRF
- GPT-5.5 Pro1.13.224 NO\_PROXY SSRF
- Gemini 3.11.7.926 NO\_PROXY SSRF
- Opus 4.715.5.421 image-cache DoS
- Sonnet 4.614.2.2920 cache poisoning
- GPT-5.515.3.124 middleware SSRF
- GPT-5.5 Pro15.2.324 middleware SSRF
- Gemini 3.115.1.624
requestssafe @ 2.34.2
lodashsafe @ 4.18.1
axiossafe @ 1.17.0
nextsafe @ 16.2.9
— 04 / Try it
Run a check without installing.
Type a package, version, ecosystem. Same answer your local shim gets at install time.