guardvibe 1.4.0 → 1.6.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.
Files changed (65) hide show
  1. package/build/data/rules/api-security.d.ts.map +1 -1
  2. package/build/data/rules/api-security.js +1 -0
  3. package/build/data/rules/api-security.js.map +1 -1
  4. package/build/data/rules/auth.d.ts.map +1 -1
  5. package/build/data/rules/auth.js +1 -0
  6. package/build/data/rules/auth.js.map +1 -1
  7. package/build/data/rules/deployment.d.ts.map +1 -1
  8. package/build/data/rules/deployment.js +6 -0
  9. package/build/data/rules/deployment.js.map +1 -1
  10. package/build/data/rules/firebase.d.ts.map +1 -1
  11. package/build/data/rules/firebase.js +1 -0
  12. package/build/data/rules/firebase.js.map +1 -1
  13. package/build/data/rules/payments.d.ts.map +1 -1
  14. package/build/data/rules/payments.js +3 -0
  15. package/build/data/rules/payments.js.map +1 -1
  16. package/build/data/rules/react-native.d.ts.map +1 -1
  17. package/build/data/rules/react-native.js +3 -0
  18. package/build/data/rules/react-native.js.map +1 -1
  19. package/build/data/rules/services.d.ts.map +1 -1
  20. package/build/data/rules/services.js +5 -0
  21. package/build/data/rules/services.js.map +1 -1
  22. package/build/data/rules/web-security.d.ts.map +1 -1
  23. package/build/data/rules/web-security.js +8 -0
  24. package/build/data/rules/web-security.js.map +1 -1
  25. package/build/index.js +92 -1
  26. package/build/index.js.map +1 -1
  27. package/build/tools/check-command.d.ts +13 -0
  28. package/build/tools/check-command.d.ts.map +1 -0
  29. package/build/tools/check-command.js +227 -0
  30. package/build/tools/check-command.js.map +1 -0
  31. package/build/tools/explain-remediation.d.ts +15 -0
  32. package/build/tools/explain-remediation.d.ts.map +1 -0
  33. package/build/tools/explain-remediation.js +103 -0
  34. package/build/tools/explain-remediation.js.map +1 -0
  35. package/build/tools/fix-code.js +143 -51
  36. package/build/tools/fix-code.js.map +1 -1
  37. package/build/tools/policy-check.d.ts +3 -0
  38. package/build/tools/policy-check.d.ts.map +1 -0
  39. package/build/tools/policy-check.js +208 -0
  40. package/build/tools/policy-check.js.map +1 -0
  41. package/build/tools/repo-posture.d.ts +2 -0
  42. package/build/tools/repo-posture.d.ts.map +1 -0
  43. package/build/tools/repo-posture.js +178 -0
  44. package/build/tools/repo-posture.js.map +1 -0
  45. package/build/tools/review-pr.d.ts +3 -0
  46. package/build/tools/review-pr.d.ts.map +1 -0
  47. package/build/tools/review-pr.js +228 -0
  48. package/build/tools/review-pr.js.map +1 -0
  49. package/build/tools/scan-config-change.d.ts +12 -0
  50. package/build/tools/scan-config-change.d.ts.map +1 -0
  51. package/build/tools/scan-config-change.js +88 -0
  52. package/build/tools/scan-config-change.js.map +1 -0
  53. package/build/tools/scan-secrets-history.d.ts +9 -0
  54. package/build/tools/scan-secrets-history.d.ts.map +1 -0
  55. package/build/tools/scan-secrets-history.js +142 -0
  56. package/build/tools/scan-secrets-history.js.map +1 -0
  57. package/build/tools/taint-analysis.d.ts +23 -0
  58. package/build/tools/taint-analysis.d.ts.map +1 -0
  59. package/build/tools/taint-analysis.js +183 -0
  60. package/build/tools/taint-analysis.js.map +1 -0
  61. package/build/utils/config.d.ts +14 -0
  62. package/build/utils/config.d.ts.map +1 -1
  63. package/build/utils/config.js +7 -0
  64. package/build/utils/config.js.map +1 -1
  65. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface CommandVerdict {
2
+ verdict: "allow" | "ask" | "deny";
3
+ risk: "critical" | "high" | "medium" | "low" | "none";
4
+ confidence: number;
5
+ category: string;
6
+ reason: string;
7
+ blastRadius: string;
8
+ saferAlternative?: string;
9
+ confirmationText?: string;
10
+ details: string[];
11
+ }
12
+ export declare function checkCommand(command: string, cwd?: string, branch?: string, format?: "markdown" | "json"): string;
13
+ //# sourceMappingURL=check-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-command.d.ts","sourceRoot":"","sources":["../../src/tools/check-command.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IAClC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAoKD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,MAAY,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,GAAE,UAAU,GAAG,MAAe,GACnC,MAAM,CA+FR"}
@@ -0,0 +1,227 @@
1
+ // guardvibe-ignore — this file analyzes shell commands for security risks
2
+ import { resolve, basename } from "path";
3
+ import { existsSync } from "fs";
4
+ const DESTRUCTIVE_PATTERNS = [
5
+ // --- CRITICAL: data destruction ---
6
+ { pattern: /\brm\s+(-[a-zA-Z]*f[a-zA-Z]*\s+)?(-[a-zA-Z]*r[a-zA-Z]*\s+)?\/(?!\w)/, category: "filesystem-destroy",
7
+ verdict: "deny", risk: "critical", reason: "Deletes from root filesystem",
8
+ blastRadius: "Entire system", saferAlternative: "Specify exact path: rm -rf ./specific-dir" },
9
+ { pattern: /\brm\s+-[a-zA-Z]*r[a-zA-Z]*f[a-zA-Z]*\s+(?:~|\/home|\$HOME)/, category: "filesystem-destroy",
10
+ verdict: "deny", risk: "critical", reason: "Recursive delete on home directory",
11
+ blastRadius: "All user data", saferAlternative: "Specify the exact subdirectory" },
12
+ { pattern: /\brm\s+-[a-zA-Z]*r[a-zA-Z]*f[a-zA-Z]*\s+\.\s*$/, category: "filesystem-destroy",
13
+ verdict: "deny", risk: "critical", reason: "Recursive delete on current directory",
14
+ blastRadius: "Entire project", saferAlternative: "Delete specific files or use git clean -fd" },
15
+ { pattern: /\bmkfs\b|\bdd\s+.*of=\/dev/, category: "filesystem-destroy",
16
+ verdict: "deny", risk: "critical", reason: "Disk formatting / raw device write",
17
+ blastRadius: "Entire disk/partition" },
18
+ { pattern: />\s*\/dev\/sd[a-z]|>\s*\/dev\/nvme/, category: "filesystem-destroy",
19
+ verdict: "deny", risk: "critical", reason: "Direct write to disk device",
20
+ blastRadius: "Entire disk" },
21
+ // --- HIGH: git history rewrite ---
22
+ { pattern: /\bgit\s+push\s+.*--force(?!-with-lease)/, category: "git-rewrite",
23
+ verdict: "ask", risk: "high", reason: "Force push overwrites remote history",
24
+ blastRadius: "All collaborators lose commits", saferAlternative: "git push --force-with-lease" },
25
+ { pattern: /\bgit\s+reset\s+--hard/, category: "git-rewrite",
26
+ verdict: "ask", risk: "high", reason: "Hard reset discards uncommitted changes",
27
+ blastRadius: "All staged and unstaged changes lost", saferAlternative: "git stash first, then reset" },
28
+ { pattern: /\bgit\s+clean\s+-[a-zA-Z]*f/, category: "git-rewrite",
29
+ verdict: "ask", risk: "high", reason: "Removes untracked files permanently",
30
+ blastRadius: "All untracked files deleted", saferAlternative: "git clean -n (dry run first)" },
31
+ { pattern: /\bgit\s+rebase\b/, category: "git-rewrite",
32
+ verdict: "ask", risk: "medium", reason: "Rebase rewrites commit history",
33
+ blastRadius: "Affected branch history", saferAlternative: "git merge (preserves history)" },
34
+ { pattern: /\bgit\s+filter-branch\b|\bgit-filter-repo\b/, category: "git-rewrite",
35
+ verdict: "ask", risk: "high", reason: "Rewrites entire repository history",
36
+ blastRadius: "All commits, all collaborators affected" },
37
+ // --- HIGH: deploy / publish ---
38
+ { pattern: /\bnpm\s+publish\b/, category: "deploy",
39
+ verdict: "ask", risk: "high", reason: "Publishes package to npm registry",
40
+ blastRadius: "Public registry, all consumers", saferAlternative: "npm publish --dry-run first" },
41
+ { pattern: /\bvercel\s+--prod\b|\bvercel\s+deploy\s+--prod/, category: "deploy",
42
+ verdict: "ask", risk: "high", reason: "Deploys to production",
43
+ blastRadius: "Production users", saferAlternative: "vercel (preview deploy first)" },
44
+ { pattern: /\bdocker\s+push\b/, category: "deploy",
45
+ verdict: "ask", risk: "high", reason: "Pushes container image to registry",
46
+ blastRadius: "All image consumers" },
47
+ { pattern: /\bterraform\s+(?:apply|destroy)\b/, category: "deploy",
48
+ verdict: "ask", risk: "high", reason: "Modifies cloud infrastructure",
49
+ blastRadius: "Cloud resources", saferAlternative: "terraform plan first" },
50
+ { pattern: /\bkubectl\s+delete\b/, category: "deploy",
51
+ verdict: "ask", risk: "high", reason: "Deletes Kubernetes resources",
52
+ blastRadius: "Running services", saferAlternative: "kubectl delete --dry-run=client first" },
53
+ // --- HIGH: secret exposure ---
54
+ { pattern: /\benv\b|\bprintenv\b|\bset\b.*\|/, category: "secret-exposure",
55
+ verdict: "ask", risk: "medium", reason: "May print environment variables containing secrets",
56
+ blastRadius: "Secrets visible in terminal output" },
57
+ { pattern: /\bcat\s+.*\.env\b|\bcat\s+.*secret|\bcat\s+.*credential/, category: "secret-exposure",
58
+ verdict: "ask", risk: "high", reason: "Reads file likely containing secrets",
59
+ blastRadius: "Secrets visible in output", saferAlternative: "Check .env exists without reading: ls -la .env" },
60
+ { pattern: /\becho\s+.*(?:SECRET|KEY|TOKEN|PASSWORD|CREDENTIAL)/, category: "secret-exposure",
61
+ verdict: "ask", risk: "high", reason: "Echoing potential secret value",
62
+ blastRadius: "Secret visible in terminal/logs" },
63
+ // --- HIGH: network exfiltration ---
64
+ { pattern: /\bcurl\s+.*-(?:d|X\s*POST)\s+.*(?:pastebin|requestbin|webhook\.site|ngrok|pipedream)/, category: "exfiltration",
65
+ verdict: "deny", risk: "critical", reason: "Sending data to external paste/webhook service",
66
+ blastRadius: "Data exfiltration to third party" },
67
+ { pattern: /\bcurl\s+.*--upload-file/, category: "exfiltration",
68
+ verdict: "ask", risk: "high", reason: "Uploading file to external URL",
69
+ blastRadius: "File contents sent externally" },
70
+ { pattern: /\bwget\s+-O\s*-\s*.*\|\s*(?:bash|sh|zsh)/, category: "remote-exec",
71
+ verdict: "deny", risk: "critical", reason: "Downloading and executing remote script",
72
+ blastRadius: "Arbitrary code execution", saferAlternative: "Download first, review, then execute" },
73
+ { pattern: /\bcurl\s+.*\|\s*(?:bash|sh|zsh)/, category: "remote-exec",
74
+ verdict: "deny", risk: "critical", reason: "Piping remote content to shell",
75
+ blastRadius: "Arbitrary code execution", saferAlternative: "Download first, review, then execute" },
76
+ // --- MEDIUM: permission changes ---
77
+ { pattern: /\bchmod\s+777\b/, category: "permission",
78
+ verdict: "ask", risk: "medium", reason: "Sets world-readable/writable/executable permissions",
79
+ blastRadius: "File accessible by all users", saferAlternative: "chmod 755 (dirs) or chmod 644 (files)" },
80
+ { pattern: /\bchown\s+-R\s+root/, category: "permission",
81
+ verdict: "ask", risk: "medium", reason: "Recursively changes ownership to root",
82
+ blastRadius: "May lock out normal user access" },
83
+ { pattern: /\bsudo\s/, category: "privilege-escalation",
84
+ verdict: "ask", risk: "medium", reason: "Elevated privilege execution",
85
+ blastRadius: "System-level access" },
86
+ // --- MEDIUM: process/service manipulation ---
87
+ { pattern: /\bkill\s+-9\b|\bkillall\b|\bpkill\b/, category: "process",
88
+ verdict: "ask", risk: "medium", reason: "Forcefully terminates processes",
89
+ blastRadius: "Running services may crash", saferAlternative: "kill (SIGTERM) instead of kill -9 (SIGKILL)" },
90
+ { pattern: /\bsystemctl\s+(?:stop|restart|disable)\b/, category: "process",
91
+ verdict: "ask", risk: "medium", reason: "Modifies system services",
92
+ blastRadius: "Service availability affected" },
93
+ // --- MEDIUM: database operations ---
94
+ { pattern: /\bdrop\s+(?:database|table|schema)\b/i, category: "database",
95
+ verdict: "deny", risk: "critical", reason: "Drops database object permanently",
96
+ blastRadius: "Permanent data loss" },
97
+ { pattern: /\btruncate\s+table\b/i, category: "database",
98
+ verdict: "ask", risk: "high", reason: "Deletes all rows from table",
99
+ blastRadius: "All table data lost" },
100
+ { pattern: /\bDELETE\s+FROM\s+\w+\s*;?\s*$/i, category: "database",
101
+ verdict: "ask", risk: "high", reason: "DELETE without WHERE clause deletes all rows",
102
+ blastRadius: "All table data", saferAlternative: "Add WHERE clause" },
103
+ ];
104
+ function analyzeContext(command, cwd) {
105
+ const details = [];
106
+ // Check if command touches secret files
107
+ const secretFiles = [".env", ".env.local", ".env.production", "credentials.json", "serviceAccountKey.json"];
108
+ for (const sf of secretFiles) {
109
+ if (command.includes(sf)) {
110
+ details.push(`Accesses secret file: ${sf}`);
111
+ }
112
+ }
113
+ // Check if cwd is a git repo
114
+ if (existsSync(resolve(cwd, ".git"))) {
115
+ if (/\bgit\s+push/.test(command)) {
116
+ details.push("Pushes to remote repository from git-tracked directory");
117
+ }
118
+ }
119
+ // Check if deploy configs exist and command may affect them
120
+ const deployFiles = ["vercel.json", "fly.toml", "Dockerfile", "docker-compose.yml", ".github/workflows"];
121
+ for (const df of deployFiles) {
122
+ if (command.includes(basename(df)) || command.includes(df)) {
123
+ details.push(`Modifies deploy config: ${df}`);
124
+ }
125
+ }
126
+ // Check if touching CI/CD
127
+ if (/\.github\/workflows|\.gitlab-ci|Jenkinsfile|\.circleci/.test(command)) {
128
+ details.push("Modifies CI/CD pipeline configuration");
129
+ }
130
+ // Check if redirect/pipe to external
131
+ if (/\|\s*(?:nc|netcat|ncat|socat)\b/.test(command)) {
132
+ details.push("Pipes output through network tool — possible data exfiltration");
133
+ }
134
+ // Check for base64 encoding (obfuscation)
135
+ if (/base64/.test(command) && /curl|wget|nc/.test(command)) {
136
+ details.push("Combines encoding with network access — possible obfuscated exfiltration");
137
+ }
138
+ return details;
139
+ }
140
+ export function checkCommand(command, cwd = ".", branch, format = "json") {
141
+ const resolvedCwd = resolve(cwd);
142
+ const contextDetails = analyzeContext(command, resolvedCwd);
143
+ let worstVerdict = {
144
+ verdict: "allow",
145
+ risk: "none",
146
+ confidence: 0.9,
147
+ category: "safe",
148
+ reason: "No security risks detected",
149
+ blastRadius: "None",
150
+ details: contextDetails,
151
+ };
152
+ const riskOrder = { critical: 0, high: 1, medium: 2, low: 3, none: 4 };
153
+ for (const pattern of DESTRUCTIVE_PATTERNS) {
154
+ if (pattern.pattern.test(command)) {
155
+ const currentRisk = riskOrder[worstVerdict.risk] ?? 4;
156
+ const newRisk = riskOrder[pattern.risk] ?? 4;
157
+ if (newRisk < currentRisk) {
158
+ worstVerdict = {
159
+ verdict: pattern.verdict,
160
+ risk: pattern.risk,
161
+ confidence: 0.85,
162
+ category: pattern.category,
163
+ reason: pattern.reason,
164
+ blastRadius: pattern.blastRadius,
165
+ saferAlternative: pattern.saferAlternative,
166
+ confirmationText: pattern.verdict === "ask"
167
+ ? `This command ${pattern.reason.toLowerCase()}. Proceed?`
168
+ : undefined,
169
+ details: contextDetails,
170
+ };
171
+ }
172
+ else {
173
+ // Still collect additional details
174
+ worstVerdict.details.push(`Also matched: ${pattern.category} — ${pattern.reason}`);
175
+ }
176
+ }
177
+ }
178
+ // Branch-specific risks
179
+ if (branch && ["main", "master", "production"].includes(branch)) {
180
+ if (/\bgit\s+push\b/.test(command) && worstVerdict.verdict === "allow") {
181
+ worstVerdict = {
182
+ ...worstVerdict,
183
+ verdict: "ask",
184
+ risk: "medium",
185
+ category: "protected-branch",
186
+ reason: `Pushing to protected branch: ${branch}`,
187
+ blastRadius: "Production codebase",
188
+ confirmationText: `You are pushing to ${branch}. This affects production. Proceed?`,
189
+ };
190
+ }
191
+ }
192
+ // Boost confidence based on context
193
+ if (contextDetails.length > 0 && worstVerdict.verdict !== "allow") {
194
+ worstVerdict.confidence = Math.min(0.95, worstVerdict.confidence + contextDetails.length * 0.02);
195
+ }
196
+ if (format === "json") {
197
+ return JSON.stringify(worstVerdict);
198
+ }
199
+ // Markdown
200
+ const icon = worstVerdict.verdict === "deny" ? "BLOCKED"
201
+ : worstVerdict.verdict === "ask" ? "NEEDS CONFIRMATION" : "SAFE";
202
+ const lines = [
203
+ `## GuardVibe Command Check: ${icon}`,
204
+ ``,
205
+ `**Command:** \`${command}\``,
206
+ `**Verdict:** ${worstVerdict.verdict.toUpperCase()}`,
207
+ `**Risk:** ${worstVerdict.risk}`,
208
+ `**Category:** ${worstVerdict.category}`,
209
+ `**Confidence:** ${Math.round(worstVerdict.confidence * 100)}%`,
210
+ ``,
211
+ `**Reason:** ${worstVerdict.reason}`,
212
+ `**Blast radius:** ${worstVerdict.blastRadius}`,
213
+ ];
214
+ if (worstVerdict.saferAlternative) {
215
+ lines.push(`**Safer alternative:** ${worstVerdict.saferAlternative}`);
216
+ }
217
+ if (worstVerdict.confirmationText) {
218
+ lines.push(``, `> ${worstVerdict.confirmationText}`);
219
+ }
220
+ if (worstVerdict.details.length > 0) {
221
+ lines.push(``, `**Context:**`);
222
+ for (const d of worstVerdict.details)
223
+ lines.push(`- ${d}`);
224
+ }
225
+ return lines.join("\n");
226
+ }
227
+ //# sourceMappingURL=check-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-command.js","sourceRoot":"","sources":["../../src/tools/check-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { SecurityRule } from "../data/rules/types.js";
2
+ export interface RemediationExplanation {
3
+ ruleId: string;
4
+ ruleName: string;
5
+ severity: string;
6
+ whyRisky: string;
7
+ impact: string;
8
+ exploitScenario: string;
9
+ minimumPatch: string;
10
+ secureAlternative: string;
11
+ breakingRisk: string;
12
+ testStrategy: string;
13
+ }
14
+ export declare function explainRemediation(ruleId: string, code?: string, format?: "markdown" | "json", rules?: SecurityRule[]): string;
15
+ //# sourceMappingURL=explain-remediation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explain-remediation.d.ts","sourceRoot":"","sources":["../../src/tools/explain-remediation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,GAAE,UAAU,GAAG,MAAmB,EACxC,KAAK,CAAC,EAAE,YAAY,EAAE,GACrB,MAAM,CAgDR"}
@@ -0,0 +1,103 @@
1
+ import { owaspRules } from "../data/rules/index.js";
2
+ export function explainRemediation(ruleId, code, format = "markdown", rules) {
3
+ const effectiveRules = rules ?? owaspRules;
4
+ const rule = effectiveRules.find(r => r.id === ruleId);
5
+ if (!rule) {
6
+ if (format === "json")
7
+ return JSON.stringify({ error: `Rule ${ruleId} not found` });
8
+ return `Rule ${ruleId} not found.`;
9
+ }
10
+ const explanation = {
11
+ ruleId: rule.id,
12
+ ruleName: rule.name,
13
+ severity: rule.severity,
14
+ whyRisky: rule.exploit ?? rule.description,
15
+ impact: getImpact(rule),
16
+ exploitScenario: rule.exploit ?? `An attacker can exploit ${rule.name.toLowerCase()} to compromise the application.`,
17
+ minimumPatch: rule.fixCode ?? rule.fix,
18
+ secureAlternative: rule.fixCode ?? rule.fix,
19
+ breakingRisk: getBreakingRisk(rule),
20
+ testStrategy: getTestStrategy(rule),
21
+ };
22
+ if (format === "json")
23
+ return JSON.stringify(explanation);
24
+ return [
25
+ `## ${rule.name} (${rule.id})`,
26
+ `**Severity:** ${rule.severity.toUpperCase()} | **OWASP:** ${rule.owasp}`,
27
+ ``,
28
+ `### Why is this risky?`,
29
+ explanation.whyRisky,
30
+ ``,
31
+ `### Impact`,
32
+ explanation.impact,
33
+ ``,
34
+ `### Exploit Scenario`,
35
+ explanation.exploitScenario,
36
+ ``,
37
+ `### Minimum Fix`,
38
+ "```",
39
+ explanation.minimumPatch,
40
+ "```",
41
+ ``,
42
+ `### Breaking Risk`,
43
+ explanation.breakingRisk,
44
+ ``,
45
+ `### How to Test the Fix`,
46
+ explanation.testStrategy,
47
+ ].join("\n");
48
+ }
49
+ function getImpact(rule) {
50
+ if (rule.severity === "critical") {
51
+ if (rule.compliance?.some(c => c.includes("PCI")))
52
+ return "Financial data breach, PCI-DSS non-compliance, fines up to 4% of revenue.";
53
+ if (rule.compliance?.some(c => c.includes("HIPAA")))
54
+ return "PHI exposure, HIPAA violation, fines up to $1.5M per incident.";
55
+ if (rule.compliance?.some(c => c.includes("GDPR")))
56
+ return "Personal data breach, GDPR violation, fines up to 4% of global revenue.";
57
+ return "Full system compromise, data breach, or unauthorized access to all resources.";
58
+ }
59
+ if (rule.severity === "high")
60
+ return "Significant security gap — targeted exploitation possible with moderate effort.";
61
+ if (rule.severity === "medium")
62
+ return "Defense-in-depth weakness — exploitable under specific conditions.";
63
+ return "Minor security improvement — low direct risk but contributes to overall posture.";
64
+ }
65
+ function getBreakingRisk(rule) {
66
+ const id = rule.id;
67
+ if (["VG001", "VG062", "VG060"].includes(id))
68
+ return "LOW — Moving to env vars requires .env setup but no code logic changes.";
69
+ if (["VG402", "VG010", "VG952"].includes(id))
70
+ return "MEDIUM — Adding auth checks may break unauthenticated flows that were working. Test all affected endpoints.";
71
+ if (["VG401", "VG960"].includes(id))
72
+ return "MEDIUM — Adding schema validation will reject previously accepted invalid input. Test with real user data.";
73
+ if (["VG403", "VG500", "VG510"].includes(id))
74
+ return "HIGH — Restricting CORS will break cross-origin requests from unlisted domains. Verify all frontend origins.";
75
+ if (["VG405"].includes(id))
76
+ return "LOW — Adding security headers rarely breaks functionality. CSP may block inline scripts — test thoroughly.";
77
+ if (["VG440", "VG432"].includes(id))
78
+ return "HIGH — Enabling RLS will immediately block all queries without matching policies. Test every query path.";
79
+ if (["VG953"].includes(id))
80
+ return "MEDIUM — Replacing spread with explicit fields may miss new fields. Keep schema in sync with form.";
81
+ if (rule.severity === "critical")
82
+ return "LOW — Critical fixes should be applied immediately regardless of breaking risk.";
83
+ if (rule.severity === "high")
84
+ return "MEDIUM — Test affected flows after applying the fix.";
85
+ return "LOW — Minimal breaking risk expected.";
86
+ }
87
+ function getTestStrategy(rule) {
88
+ const id = rule.id;
89
+ if (["VG001", "VG062", "VG060"].includes(id))
90
+ return "1. Move value to .env\n2. Verify app still reads from env\n3. Confirm old hardcoded value removed from git history";
91
+ if (["VG402", "VG010"].includes(id))
92
+ return "1. Call endpoint without auth token → expect 401\n2. Call with valid token → expect success\n3. Call with expired token → expect 401";
93
+ if (["VG401", "VG960"].includes(id))
94
+ return "1. Submit valid data → expect success\n2. Submit empty/malformed data → expect 400 with validation error\n3. Submit oversized data → expect rejection";
95
+ if (["VG403", "VG500"].includes(id))
96
+ return "1. Request from allowed origin → expect CORS headers\n2. Request from unlisted origin → expect no CORS headers\n3. Preflight OPTIONS → expect correct headers";
97
+ if (["VG440"].includes(id))
98
+ return "1. Query as authenticated user → expect own rows only\n2. Query as anon → expect rejection\n3. Try to access other user's rows → expect empty result";
99
+ if (["VG601", "VG608", "VG650"].includes(id))
100
+ return "1. Send webhook with valid signature → expect 200\n2. Send with invalid signature → expect 401\n3. Send with missing signature → expect 401";
101
+ return `1. Apply the fix\n2. Run existing tests\n3. Manually verify the affected ${rule.owasp.split(" ")[0]} surface`;
102
+ }
103
+ //# sourceMappingURL=explain-remediation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explain-remediation.js","sourceRoot":"","sources":["../../src/tools/explain-remediation.ts"],"names":[],"mappings":"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"}