@guava-parity/guard-scanner 13.0.0 → 16.0.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/README.md +170 -215
- package/README_ja.md +252 -0
- package/SECURITY.md +12 -4
- package/SKILL.md +148 -57
- package/dist/cli.cjs +5997 -0
- package/dist/cli.d.mts +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.mjs +6003 -0
- package/dist/index.cjs +4825 -0
- package/dist/index.d.mts +17 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.mjs +4798 -0
- package/dist/mcp-server.cjs +4756 -0
- package/dist/mcp-server.d.mts +1 -0
- package/dist/mcp-server.d.ts +1 -0
- package/dist/mcp-server.mjs +4767 -0
- package/dist/openclaw-plugin.cjs +4863 -0
- package/dist/openclaw-plugin.d.mts +11 -0
- package/dist/openclaw-plugin.d.ts +11 -0
- package/dist/openclaw-plugin.mjs +4854 -0
- package/dist/types.cjs +18 -0
- package/dist/types.d.mts +215 -0
- package/dist/types.d.ts +215 -0
- package/dist/types.mjs +1 -0
- package/docs/EVIDENCE_DRIVEN.md +182 -0
- package/docs/banner.png +0 -0
- package/docs/data/benchmark-ledger.json +1428 -0
- package/docs/data/corpus-metrics.json +11 -0
- package/docs/data/fp-ledger.json +18 -0
- package/docs/data/latest.json +25837 -2481
- package/docs/data/quality-contract.json +36 -0
- package/docs/generated/npm-audit-20260312.json +96 -0
- package/docs/generated/openclaw-upstream-status.json +25 -0
- package/docs/glossary.md +46 -0
- package/docs/index.html +1085 -496
- package/docs/logo.png +0 -0
- package/docs/openclaw-compatibility-audit.md +45 -0
- package/docs/openclaw-continuous-compatibility-plan.md +37 -0
- package/docs/rules/a2a-contagion.md +68 -0
- package/docs/rules/advanced-exfil.md +52 -0
- package/docs/rules/agent-protocol.md +108 -0
- package/docs/rules/api-abuse.md +68 -0
- package/docs/rules/autonomous-risk.md +92 -0
- package/docs/rules/config-impact.md +132 -0
- package/docs/rules/credential-handling.md +100 -0
- package/docs/rules/cve-patterns.md +332 -0
- package/docs/rules/data-exposure.md +84 -0
- package/docs/rules/exfiltration.md +36 -0
- package/docs/rules/financial-access.md +84 -0
- package/docs/rules/identity-hijack.md +140 -0
- package/docs/rules/inference-manipulation.md +60 -0
- package/docs/rules/leaky-skills.md +52 -0
- package/docs/rules/malicious-code.md +108 -0
- package/docs/rules/mcp-security.md +148 -0
- package/docs/rules/memory-poisoning.md +84 -0
- package/docs/rules/model-poisoning.md +44 -0
- package/docs/rules/obfuscation.md +60 -0
- package/docs/rules/persistence.md +108 -0
- package/docs/rules/pii-exposure.md +116 -0
- package/docs/rules/prompt-injection.md +148 -0
- package/docs/rules/prompt-worm.md +44 -0
- package/docs/rules/safeguard-bypass.md +44 -0
- package/docs/rules/sandbox-escape.md +100 -0
- package/docs/rules/secret-detection.md +44 -0
- package/docs/rules/supply-chain-v2.md +92 -0
- package/docs/rules/suspicious-download.md +60 -0
- package/docs/rules/trust-boundary.md +76 -0
- package/docs/rules/trust-exploitation.md +92 -0
- package/docs/rules/unverifiable-deps.md +84 -0
- package/docs/rules/vdb-injection.md +84 -0
- package/docs/security-vulnerability-report-20260312.md +53 -0
- package/docs/spec/PRD_V2_ARCHITECTURE.md +55 -0
- package/docs/spec/capabilities.json +174 -0
- package/docs/spec/finding.schema.json +104 -0
- package/docs/spec/integration-manifest.md +39 -0
- package/docs/spec/plugin-trust.json +11 -0
- package/docs/spec/sbom.json +33 -0
- package/docs/threat-model.md +65 -0
- package/docs/v13-architecture-manifest.md +55 -0
- package/hooks/context.ts +306 -0
- package/hooks/guard-scanner/plugin.ts +24 -1
- package/openclaw-plugin.mts +107 -0
- package/openclaw.plugin.json +30 -53
- package/package.json +66 -13
- package/src/asset-auditor.js +0 -508
- package/src/ci-reporter.js +0 -135
- package/src/cli.js +0 -294
- package/src/html-template.js +0 -239
- package/src/ioc-db.js +0 -54
- package/src/mcp-server.js +0 -702
- package/src/patterns.js +0 -611
- package/src/quarantine.js +0 -41
- package/src/runtime-guard.js +0 -346
- package/src/scanner.js +0 -1157
- package/src/vt-client.js +0 -202
- package/src/watcher.js +0 -170
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contract_version": "2026-03-13.quality-v1",
|
|
3
|
+
"benchmark_version": "2026-03-13.quality-v1",
|
|
4
|
+
"quality_targets": {
|
|
5
|
+
"precision_min": 0.9,
|
|
6
|
+
"recall_min": 0.9,
|
|
7
|
+
"false_positive_rate_max": 0.1,
|
|
8
|
+
"false_negative_rate_max": 0.1,
|
|
9
|
+
"explainability_completeness_rate_min": 1,
|
|
10
|
+
"runtime_check_latency_budget_ms": 5,
|
|
11
|
+
"false_positive_budget_by_category": {
|
|
12
|
+
"prompt-injection": 0.05,
|
|
13
|
+
"runtime-policy": 0.02,
|
|
14
|
+
"secret-detection": 0.08,
|
|
15
|
+
"supply-chain": 0.05,
|
|
16
|
+
"memory-poisoning": 0.03
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"layers": [
|
|
20
|
+
{
|
|
21
|
+
"id": "layer_a",
|
|
22
|
+
"corpus": "test/fixtures/corpus/security-corpus.json",
|
|
23
|
+
"scanner_options": {}
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "layer_b",
|
|
27
|
+
"corpus": "test/fixtures/corpus/adversarial-corpus.json",
|
|
28
|
+
"scanner_options": {}
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"id": "layer_c",
|
|
32
|
+
"corpus": "test/fixtures/corpus/ecosystem-corpus.json",
|
|
33
|
+
"scanner_options": {}
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"auditReportVersion": 2,
|
|
3
|
+
"vulnerabilities": {
|
|
4
|
+
"@buape/carbon": {
|
|
5
|
+
"name": "@buape/carbon",
|
|
6
|
+
"severity": "high",
|
|
7
|
+
"isDirect": false,
|
|
8
|
+
"via": [
|
|
9
|
+
"@hono/node-server"
|
|
10
|
+
],
|
|
11
|
+
"effects": [
|
|
12
|
+
"openclaw"
|
|
13
|
+
],
|
|
14
|
+
"range": "<=0.0.0-beta-20260306233624 || >=0.6.0",
|
|
15
|
+
"nodes": [
|
|
16
|
+
"node_modules/@buape/carbon"
|
|
17
|
+
],
|
|
18
|
+
"fixAvailable": {
|
|
19
|
+
"name": "openclaw",
|
|
20
|
+
"version": "0.0.1",
|
|
21
|
+
"isSemVerMajor": true
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"@hono/node-server": {
|
|
25
|
+
"name": "@hono/node-server",
|
|
26
|
+
"severity": "high",
|
|
27
|
+
"isDirect": false,
|
|
28
|
+
"via": [
|
|
29
|
+
{
|
|
30
|
+
"source": 1114170,
|
|
31
|
+
"name": "@hono/node-server",
|
|
32
|
+
"dependency": "@hono/node-server",
|
|
33
|
+
"title": "@hono/node-server has authorization bypass for protected static paths via encoded slashes in Serve Static Middleware",
|
|
34
|
+
"url": "https://github.com/advisories/GHSA-wc8c-qw6v-h7f6",
|
|
35
|
+
"severity": "high",
|
|
36
|
+
"cwe": [
|
|
37
|
+
"CWE-863"
|
|
38
|
+
],
|
|
39
|
+
"cvss": {
|
|
40
|
+
"score": 7.5,
|
|
41
|
+
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"
|
|
42
|
+
},
|
|
43
|
+
"range": "<1.19.10"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"effects": [
|
|
47
|
+
"@buape/carbon"
|
|
48
|
+
],
|
|
49
|
+
"range": "<1.19.10",
|
|
50
|
+
"nodes": [
|
|
51
|
+
"node_modules/@hono/node-server"
|
|
52
|
+
],
|
|
53
|
+
"fixAvailable": {
|
|
54
|
+
"name": "openclaw",
|
|
55
|
+
"version": "0.0.1",
|
|
56
|
+
"isSemVerMajor": true
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"openclaw": {
|
|
60
|
+
"name": "openclaw",
|
|
61
|
+
"severity": "high",
|
|
62
|
+
"isDirect": true,
|
|
63
|
+
"via": [
|
|
64
|
+
"@buape/carbon"
|
|
65
|
+
],
|
|
66
|
+
"effects": [],
|
|
67
|
+
"range": ">=2026.1.29-beta.1",
|
|
68
|
+
"nodes": [
|
|
69
|
+
"node_modules/openclaw"
|
|
70
|
+
],
|
|
71
|
+
"fixAvailable": {
|
|
72
|
+
"name": "openclaw",
|
|
73
|
+
"version": "0.0.1",
|
|
74
|
+
"isSemVerMajor": true
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"metadata": {
|
|
79
|
+
"vulnerabilities": {
|
|
80
|
+
"info": 0,
|
|
81
|
+
"low": 0,
|
|
82
|
+
"moderate": 0,
|
|
83
|
+
"high": 3,
|
|
84
|
+
"critical": 0,
|
|
85
|
+
"total": 3
|
|
86
|
+
},
|
|
87
|
+
"dependencies": {
|
|
88
|
+
"prod": 2,
|
|
89
|
+
"dev": 741,
|
|
90
|
+
"optional": 109,
|
|
91
|
+
"peer": 126,
|
|
92
|
+
"peerOptional": 0,
|
|
93
|
+
"total": 742
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"checkedAt": "2026-03-13T13:54:07.403Z",
|
|
3
|
+
"pinnedVersion": "2026.3.12",
|
|
4
|
+
"latestVersion": "2026.3.12",
|
|
5
|
+
"latestPublishedAt": "2026-03-13T04:13:28.358Z",
|
|
6
|
+
"registryModifiedAt": "2026-03-13T04:29:39.807Z",
|
|
7
|
+
"githubLatestVersion": "2026.3.12",
|
|
8
|
+
"githubPublishedAt": "2026-03-13T04:26:46Z",
|
|
9
|
+
"githubUrl": "https://github.com/openclaw/openclaw/releases/tag/v2026.3.12",
|
|
10
|
+
"sourceParity": {
|
|
11
|
+
"npmLatestVersion": "2026.3.12",
|
|
12
|
+
"githubLatestVersion": "2026.3.12",
|
|
13
|
+
"inParity": true
|
|
14
|
+
},
|
|
15
|
+
"source": "npm",
|
|
16
|
+
"status": {
|
|
17
|
+
"pinnedVersion": "2026.3.12",
|
|
18
|
+
"latestVersion": "2026.3.12",
|
|
19
|
+
"latestPublishedAt": "2026-03-13T04:13:28.358Z",
|
|
20
|
+
"source": "npm",
|
|
21
|
+
"upToDate": true,
|
|
22
|
+
"ahead": false,
|
|
23
|
+
"behind": false
|
|
24
|
+
}
|
|
25
|
+
}
|
package/docs/glossary.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Guard-Scanner Glossary
|
|
2
|
+
|
|
3
|
+
Security terms used in guard-scanner, with standard equivalents.
|
|
4
|
+
|
|
5
|
+
## Agent-Native Terms
|
|
6
|
+
|
|
7
|
+
| Term | Standard Equivalent | Description |
|
|
8
|
+
|------|---------------------|-------------|
|
|
9
|
+
| SOUL.md | Identity / persistent-memory control file | A configuration file that defines an AI agent's persistent behavior, personality, and rules. Overwriting it can hijack the agent's identity. |
|
|
10
|
+
| ClawHavoc | Agent skill supply-chain attack | An attack vector where malicious packages in a skill marketplace (e.g., ClawHub, npm) target AI agents, similar to typosquatting in package managers. |
|
|
11
|
+
| ZombieAgent | Persistent rogue agent | An agent process that persists beyond its intended lifecycle, maintaining unauthorized access or executing hidden tasks. |
|
|
12
|
+
| Soul Hijack | Agent identity takeover | An attack that overwrites an agent's identity file to change its behavior, bypass safety rules, or impersonate another agent. |
|
|
13
|
+
| Moltbook | Third-party agent marketplace (ClawHub/npm) | External skill registries where users can discover and install agent capabilities. These are supply-chain attack surfaces. |
|
|
14
|
+
| GuavaSuite | Agent runtime ecosystem | The full stack of tools, memory layers, and security infrastructure used by the Guava AI agent. |
|
|
15
|
+
|
|
16
|
+
## Threat Categories (OWASP-Aligned)
|
|
17
|
+
|
|
18
|
+
| Category ID | Description | OWASP Mapping |
|
|
19
|
+
|-------------|-------------|---------------|
|
|
20
|
+
| prompt-injection | Attempts to override system instructions | ASI01 — Agent Goal Hijack |
|
|
21
|
+
| reverse-shell | Remote shell access attempts | ASI05 — Remote Code Execution |
|
|
22
|
+
| data-exfiltration | Unauthorized data transfer to external servers | ASI05 — RCE / ASI04 — Supply Chain |
|
|
23
|
+
| social-engineering | Trust exploitation and human manipulation | ASI09 — Human-Trust Exploitation |
|
|
24
|
+
| malicious-code | Known malicious patterns (eval, exec, etc.) | ASI05 — RCE |
|
|
25
|
+
| soul-lock | Identity file tampering attempts | ASI03 — Identity Abuse |
|
|
26
|
+
| memory-poisoning | Attempts to corrupt agent memory/context | ASI06 — Memory Poisoning |
|
|
27
|
+
| tool-shadowing | MCP tool description containing hidden instructions | ASI02 — Tool Misuse |
|
|
28
|
+
| context-crush | Prompt overstuffing to push instructions out of context | ASI01 — Agent Goal Hijack |
|
|
29
|
+
|
|
30
|
+
## Severity Levels
|
|
31
|
+
|
|
32
|
+
| Level | Risk Weight | Meaning |
|
|
33
|
+
|-------|------------|---------|
|
|
34
|
+
| CRITICAL | 40 | Immediate threat — active exploitation attempt |
|
|
35
|
+
| HIGH | 15 | Dangerous pattern — likely malicious |
|
|
36
|
+
| MEDIUM | 5 | Suspicious pattern — needs review |
|
|
37
|
+
| LOW | 2 | Informational — minor concern |
|
|
38
|
+
|
|
39
|
+
## Verdicts
|
|
40
|
+
|
|
41
|
+
| Verdict | Risk Range | Action |
|
|
42
|
+
|---------|-----------|--------|
|
|
43
|
+
| CLEAN | 0 | No threats detected |
|
|
44
|
+
| SAFE | 1-19 | Low risk, safe to use |
|
|
45
|
+
| SUSPICIOUS | 20-79 | Review recommended |
|
|
46
|
+
| MALICIOUS | 80+ | Block / quarantine |
|