guardvibe 3.28.0 → 3.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +9 -9
- package/build/data/rules/cve-versions.js +24 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,14 @@ All notable changes to GuardVibe are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.29.0] - 2026-06-27
|
|
9
|
+
|
|
10
|
+
### Added — 2 rules from daily intel: deepstream prototype pollution + pnpm path-traversal cluster (451 → 453 rules)
|
|
11
|
+
- **VG1098 — deepstream Server Prototype Pollution (CVE-2026-49252 / GHSA-9v98-6g37-x9g6, critical, CVSS 9.9).** `@deepstream/server` before 10.0.5 lets an authenticated client with write permissions merge `__proto__`-style keys onto `Object.prototype` via a crafted record/RPC payload — privilege escalation / DoS across the realtime server. Published 2026-06-26. 0-FP semver: 10.0.5 is a patch within 10.0, so caret/tilde on 10.0.x resolve to the fix; only exact/= pins in 10.0.0–10.0.4 (and any range on 0.x–9.x) are flagged. 9 tests.
|
|
12
|
+
- **VG1099 — pnpm Lockfile/Manifest Path-Traversal & RCE Cluster (CVE-2026-55698 / -55487 / -50016 and others, June 2026, high).** A crafted `pnpm-lock.yaml` / manifest can escape the project root and overwrite arbitrary files on the install host (transitive alias path traversal, manifest identity spoof running attacker lifecycle scripts, env-lockfile resolution short-circuit, malicious patch-file write) — supply-chain RCE on dev/CI machines. Fixed in 10.34.2 (10.x) / 11.5.3 (11.x). Flags the Corepack `packageManager` pin (always exact): any `pnpm@` below 10.34.2, or in 11.0.0–11.5.2; recommends 10.34.4 / 11.8.0. 12 tests.
|
|
13
|
+
|
|
14
|
+
CVE version-pin rule count 78 → 80. Gate green (build / lint / test / self-audit PASS / A / 0).
|
|
15
|
+
|
|
8
16
|
## [3.28.0] - 2026-06-25
|
|
9
17
|
|
|
10
18
|
### Added — 1 rule from daily intel: i18next missing-key prototype pollution (450 → 451 rules)
|
package/README.md
CHANGED
|
@@ -9,13 +9,13 @@
|
|
|
9
9
|
> **Security infrastructure your AI can't be.**
|
|
10
10
|
> No matter how good your coding agent gets, it can't know the CVE published after its training cutoff, it can't deterministically guarantee the same check every run, it can't hold your whole repo in context, and it can't objectively review its own code. GuardVibe does all four — the deterministic, post-cutoff-current, whole-repo, author-independent verification layer for AI-written code.
|
|
11
11
|
|
|
12
|
-
- **🗓️ Knows what your AI doesn't.** CVE rules refreshed **daily** from GHSA / OSV.dev / CISA KEV — GuardVibe flags vulnerable dependencies published *after* your model's training cutoff. (
|
|
12
|
+
- **🗓️ Knows what your AI doesn't.** CVE rules refreshed **daily** from GHSA / OSV.dev / CISA KEV — GuardVibe flags vulnerable dependencies published *after* your model's training cutoff. (80 CVE rules, `npm run intel` daily triage.)
|
|
13
13
|
- **🎯 Deterministic, not probabilistic.** Same code = same result, every run (content-hashed). Your AI guesses; GuardVibe doesn't.
|
|
14
14
|
- **🗺️ Sees the whole repo.** Cross-file taint + auth-coverage across every route — catches the unprotected endpoint your agent's narrow context missed.
|
|
15
15
|
- **🔍 An independent second pair of eyes.** The thing that wrote the code can't review itself. GuardVibe is the outside checker on AI-written code — in the loop *while* your AI codes (real-time edit hook), not after.
|
|
16
16
|
- **⬅️ NEW: Starts before the first line of code.** Every scanner on earth — including your agent reviewing itself — acts *after* the code exists. [`secure_prompt`](#prompt-level-security-shift-left) acts *before*: it analyzes the coding prompt itself, detects the stack and attack surfaces it implies, and embeds severity-ranked GuardVibe requirements into the prompt your AI executes. The vulnerability is prevented, not caught. Deterministic, zero LLM calls — and if the prompt is already secure, it passes through untouched.
|
|
17
17
|
|
|
18
|
-
**The security MCP built for vibe coding.**
|
|
18
|
+
**The security MCP built for vibe coding.** 453 security rules, 39 tools covering the entire AI-generated code journey — from the prompt itself to production deployment.
|
|
19
19
|
|
|
20
20
|
Works with **Claude Code, Cursor, Gemini CLI, Codex, VS Code (Copilot), Windsurf**, and any MCP-compatible coding agent.
|
|
21
21
|
|
|
@@ -27,11 +27,11 @@ Works with **Claude Code, Cursor, Gemini CLI, Codex, VS Code (Copilot), Windsurf
|
|
|
27
27
|
|
|
28
28
|
Most security tools are built for enterprise security teams. GuardVibe is built for **you** — the developer using AI to build and ship web apps fast.
|
|
29
29
|
|
|
30
|
-
- **
|
|
30
|
+
- **453 security rules, 39 tools** purpose-built for the stacks AI agents generate
|
|
31
31
|
- **Zero setup friction** — `npx guardvibe` and you're scanning
|
|
32
32
|
- **No account required** — runs 100% locally, no API keys, no cloud
|
|
33
33
|
- **Understands your stack** — not generic SAST, but rules that know Next.js, Supabase, Stripe, Clerk, and the tools you actually use
|
|
34
|
-
- **CVE version intelligence** — detects
|
|
34
|
+
- **CVE version intelligence** — detects 80 known vulnerable package versions in package.json, refreshed every day from GHSA / OSV.dev / CISA KEV
|
|
35
35
|
- **AI agent & MCP security** — detects MCP server vulnerabilities, tool-description prompt injection (OWASP MCP Top 10), model-controlled sandbox-disable flags, excessive AI permissions, indirect prompt injection
|
|
36
36
|
- **Auto-fix suggestions** — `fix_code` tool returns concrete patches and structured edits the AI agent can apply mechanically. Coverage: hardcoded credentials → env-var migration; public-prefix LLM keys (`NEXT_PUBLIC_/VITE_/EXPO_PUBLIC_/REACT_APP_`) → prefix removal; CORS wildcards → env allowlist; `dangerouslyAllowBrowser` flags → drop; sandbox bypass flags (`unsafe`/`noSandbox`/`allowEval`) → drop; agent loops → add `maxSteps`; raw-HTML React props → `<ReactMarkdown>`; missing auth checks → insert auth guard; SQL injection → parameterized queries; missing rate limiters / CSRF / security headers → snippet templates.
|
|
37
37
|
- **Pre-commit hook** — block insecure code before it reaches your repo
|
|
@@ -62,10 +62,10 @@ GuardVibe is purpose-built for the AI coding workflow. Traditional tools are exc
|
|
|
62
62
|
| AI/LLM security (prompt injection, MCP, tool abuse) | 68 rules | Experimental/None | None |
|
|
63
63
|
| AI host security (CVE-2025-59536, CVE-2026-21852) | `guardvibe doctor` | Not supported | Not supported |
|
|
64
64
|
| Auto-fix suggestions for AI agents | `fix_code` tool | CLI autofix | Not supported |
|
|
65
|
-
| CVE version detection |
|
|
65
|
+
| CVE version detection | 80 packages, refreshed daily | Extensive | Extensive |
|
|
66
66
|
| Compliance mapping (SOC2, PCI-DSS, HIPAA) | Built-in | Paid tier | None |
|
|
67
67
|
| SARIF CI/CD export | Yes | Yes | Limited |
|
|
68
|
-
| Rule count |
|
|
68
|
+
| Rule count | 453 (focused, 68 AI-native) | 5000+ (broad) | N/A |
|
|
69
69
|
|
|
70
70
|
**When to use GuardVibe:** You're building with AI agents and want security scanning integrated into your coding workflow — no dashboard, no account, no CI setup.
|
|
71
71
|
|
|
@@ -190,7 +190,7 @@ React Native, Expo — AsyncStorage secrets, deep link token exposure, hardcoded
|
|
|
190
190
|
### Firebase
|
|
191
191
|
Firestore security rules, Firebase Admin SDK exposure, storage rules, custom token validation
|
|
192
192
|
|
|
193
|
-
### CVE Version Intelligence (
|
|
193
|
+
### CVE Version Intelligence (80 CVEs, refreshed daily)
|
|
194
194
|
**Frameworks:** Next.js (CVE-2024-34351, CVE-2024-46982, CVE-2025-29927, CVE-2026-23869, CVE-2026-44573 / 44574 / 44575 / 44578 / 44579 / 45109 May 2026 cluster), React + react-server-dom-* (CVE-2025-55182, CVE-2026-23870), Express, Hono pre-4.12.18 cluster, @vitejs/plugin-rsc, Strapi content-type-builder (CVE-2026-22599)
|
|
195
195
|
**Auth:** Clerk middleware bypass (GHSA-vqx2), Clerk `has()` org/billing/reverification bypass (GHSA-w24r), Clerk `clerkFrontendApiProxy` SSRF (CVE-2026-34076), NextAuth.js (2 CVEs), jsonwebtoken
|
|
196
196
|
**ORMs / SQL:** Drizzle SQL identifier injection (CVE-2026-39356) + Drizzle `sql.raw` interpolation (VG1073), MikroORM SQL injection (CVE-2026-44680), Prisma raw-query call-form, Kysely JSON-path traversal (CVE-2026-44635)
|
|
@@ -302,7 +302,7 @@ The offline tier is also a `full_audit` section (online never runs inside the au
|
|
|
302
302
|
{ "slopscan": { "online": true, "allow": ["@myorg/internal-pkg"] } }
|
|
303
303
|
```
|
|
304
304
|
|
|
305
|
-
## Security Rules (
|
|
305
|
+
## Security Rules (453 rules across 25 modules)
|
|
306
306
|
|
|
307
307
|
| Category | Rules | Coverage |
|
|
308
308
|
|----------|-------|----------|
|
|
@@ -321,7 +321,7 @@ The offline tier is also a `full_audit` section (online never runs inside the au
|
|
|
321
321
|
| AI / LLM Security | 33 | Prompt injection, MCP SSRF, excessive agency, indirect injection |
|
|
322
322
|
| **AI Host Security** | **14** | **CVE-2025-59536 hook injection, CVE-2026-21852 base URL hijack, MCP config audit** |
|
|
323
323
|
| **AI Tool Runtime** | **14** | **MCP tool output sanitization, obfuscated descriptions, safety bypass** |
|
|
324
|
-
| CVE Version Intelligence |
|
|
324
|
+
| CVE Version Intelligence | 78 | Known vulnerable versions in package.json — incl. Vite dev-server cmd injection (CVE-2024-52011), React Router 7 cluster (CVE-2026-33245/42211/42342), DOMPurify XSS (CVE-2026-47423), Better Auth bypass (CVE-2026-45337), Axios supply-chain backdoor |
|
|
325
325
|
| Shell / Bash | 5 | Pipe to bash, chmod 777, rm -rf, sudo password |
|
|
326
326
|
| SQL | 4 | DROP/DELETE without WHERE, stacked queries, GRANT ALL |
|
|
327
327
|
| Supply Chain | 19 | Malicious install scripts, lockfile integrity, dependency confusion, typosquat detection |
|
|
@@ -913,4 +913,28 @@ export const cveVersionRules = [
|
|
|
913
913
|
fixCode: '// package.json\n"i18next-fs-backend": "^2.6.6", // or latest\n"i18next-http-middleware": "^3.9.7" // or latest',
|
|
914
914
|
compliance: ["SOC2:CC6.1", "PCI-DSS:Req6.5.1", "HIPAA:§164.312(a)"],
|
|
915
915
|
},
|
|
916
|
+
{
|
|
917
|
+
id: "VG1098",
|
|
918
|
+
name: "deepstream Server Prototype Pollution (CVE-2026-49252 / GHSA-9v98-6g37-x9g6)",
|
|
919
|
+
severity: "critical",
|
|
920
|
+
owasp: "A03:2025 Injection",
|
|
921
|
+
description: "@deepstream/server versions before 10.0.5 are vulnerable to prototype pollution (CVSS 9.9). An authenticated client with write permissions can craft a record/RPC payload whose keys (e.g. __proto__) are merged onto Object.prototype, corrupting global object state across the realtime server — privilege escalation and denial of service. Fixed in 10.0.5. 0-FP semver: 10.0.5 is a patch within the 10.0 line, so a caret (^10.0.x) or tilde (~10.0.x) range resolves to the fixed release and is not flagged — only exact/= pins in 10.0.0–10.0.4 are. Older 0.x–9.x majors are flagged with any range since they never reach the fix.",
|
|
922
|
+
pattern: /["']@deepstream\/server["']\s*:\s*["'](?:(?:\^|~|>=?)?\s*[0-9]\.\d+\.\d+|=?\s*10\.0\.[0-4](?![0-9]))["']/g,
|
|
923
|
+
languages: ["json"],
|
|
924
|
+
fix: "Upgrade @deepstream/server to 10.0.5 or later: npm install @deepstream/server@latest. As defence-in-depth, freeze Object.prototype at startup (Object.freeze(Object.prototype)) and reject record keys named __proto__, constructor, or prototype before merging client payloads.",
|
|
925
|
+
fixCode: '// package.json\n"@deepstream/server": "^10.0.5" // or latest\n\n// Defence-in-depth — block prototype writes at bootstrap\nObject.freeze(Object.prototype);',
|
|
926
|
+
compliance: ["SOC2:CC6.1", "PCI-DSS:Req6.5.1", "HIPAA:§164.312(a)"],
|
|
927
|
+
},
|
|
928
|
+
{
|
|
929
|
+
id: "VG1099",
|
|
930
|
+
name: "pnpm Lockfile/Manifest Path-Traversal & RCE Cluster (CVE-2026-55698 / -55487 / -50016, June 2026)",
|
|
931
|
+
severity: "high",
|
|
932
|
+
owasp: "A01:2025 Broken Access Control",
|
|
933
|
+
description: "pnpm before 10.34.2 (10.x line) and before 11.5.3 (11.x line) is affected by a June-2026 cluster of path-traversal and arbitrary-file-write/RCE advisories driven by attacker-controlled lockfiles and manifests: transitive dependency alias path traversal escaping the project root (CVE-2026-50016), manifest identity spoofing that satisfies allowBuilds and runs attacker lifecycle scripts (CVE-2026-55487), project env-lockfile short-circuiting package-manager resolution (CVE-2026-55698), reserved-bin-name deletion of PNPM_HOME (CVE-2026-55699), and malicious patch-file arbitrary write/delete (CVE-2026-50015), among others. A crafted pnpm-lock.yaml can overwrite arbitrary files on the install host — supply-chain RCE on developer and CI machines. This rule flags the Corepack `packageManager` pin (always an exact version), so a caret/tilde never applies: any pnpm@ below 10.34.2, or in the 11.0.0–11.5.2 window, is flagged; 10.34.2+/11.5.3+ are clean (the brief recommends 10.34.4 / 11.8.0).",
|
|
934
|
+
pattern: /["']packageManager["']\s*:\s*["']pnpm@(?:[0-9]\.\d+\.\d+|10\.(?:[0-9]|[12]\d|3[0-3])\.\d+|10\.34\.[01](?![0-9])|11\.[0-4]\.\d+|11\.5\.[0-2](?![0-9]))(?:\+[^"']*)?["']/g,
|
|
935
|
+
languages: ["json"],
|
|
936
|
+
fix: "Upgrade pnpm to 10.34.4+ (10.x) or 11.8.0+ (11.x): update the packageManager field and run `corepack use pnpm@latest`. Until then, treat untrusted pnpm-lock.yaml / patch files as hostile and review dependency aliases for ../, absolute paths, or reserved names (.bin, .pnpm) before install.",
|
|
937
|
+
fixCode: '// package.json — Corepack pin to a patched pnpm\n"packageManager": "pnpm@11.8.0" // or "pnpm@10.34.4" for the 10.x line',
|
|
938
|
+
compliance: ["SOC2:CC7.1", "PCI-DSS:Req6.2", "PCI-DSS:Req6.3.2"],
|
|
939
|
+
},
|
|
916
940
|
];
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "guardvibe",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.29.0",
|
|
4
4
|
"mcpName": "io.github.goklab/guardvibe",
|
|
5
|
-
"description": "Security infrastructure your AI can't be — deterministic, current past your model's training cutoff, whole-repo-aware, author-independent. Security MCP for vibe coding.
|
|
5
|
+
"description": "Security infrastructure your AI can't be — deterministic, current past your model's training cutoff, whole-repo-aware, author-independent. Security MCP for vibe coding. 453 rules, 39 tools, CLI + doctor. Prompt-level shift-left security (secure_prompt — embed security requirements BEFORE code generation), host security, auth coverage mapping, LLM-powered deep scan (IDOR/business logic), taint analysis. 80 CVE rules refreshed daily from GHSA/OSV/CISA KEV — js-cookie cookie-attribute injection, PostCSS </style> stringify XSS, Axios proxy prototype-pollution gadget, Vite dev-server RCE, React Router 7 cluster, DOMPurify XSS, Better Auth bypass, Miasma @redhat-cloud-services compromise, Next.js May 2026 13-advisory cluster, Drizzle/MikroORM/Kysely SQL injection, Axios proxy-auth redirect leak, Hono setCookie attribute injection, Clerk SSRF, tRPC prototype pollution, @tanstack supply-chain, node-ipc protestware, OpenClaude sandbox bypass, plus the full AI-generated stack (Supabase, Stripe, Prisma, Hono, GraphQL, Convex, Turso, Uploadthing, AI SDK). 68 AI-native rules including OWASP MCP Top 10 tool-description prompt injection (VG1068), model-controlled sandbox-disable flag detection (VG1063), Session messenger exfil endpoint IOC (VG1075), and CI/CD supply-chain hardening (VG1070 npm --expect-provenance / --ignore-scripts enforcement).",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
|
8
8
|
"guardvibe": "build/cli.js",
|