@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
package/docs/logo.png
ADDED
|
Binary file
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# guard-scanner OpenClaw Compatibility Audit
|
|
2
|
+
|
|
3
|
+
Date: 2026-03-12
|
|
4
|
+
Public compatibility baseline: OpenClaw `v2026.3.8`
|
|
5
|
+
Upstream drift lane: newer OpenClaw stable releases measured separately by `check:upstream`
|
|
6
|
+
|
|
7
|
+
## Official upstream requirements used
|
|
8
|
+
|
|
9
|
+
- `openclaw.plugin.json` must include `id` and `configSchema`
|
|
10
|
+
- package discovery reads `package.json > openclaw.extensions` as an array of entry files
|
|
11
|
+
- plugin runtime uses the modern plugin hook API and `before_tool_call` event contract
|
|
12
|
+
- `registerHttpHandler` is deprecated and replaced by `registerHttpRoute`
|
|
13
|
+
|
|
14
|
+
## Validated public surface in this repository
|
|
15
|
+
|
|
16
|
+
| Surface | Status | Evidence |
|
|
17
|
+
|---|---|---|
|
|
18
|
+
| Manifest required fields | ✅ | `openclaw.plugin.json` + `npm run release:gate` |
|
|
19
|
+
| Package discovery metadata | ✅ | `package.json > openclaw.extensions` |
|
|
20
|
+
| Compiled plugin entry | ✅ | `dist/openclaw-plugin.mjs` generated by `npm run build:plugin` |
|
|
21
|
+
| Runtime hook registration | ✅ | `openclaw-plugin.mts` registers `before_tool_call` with priority 90 |
|
|
22
|
+
| Malicious tool-call blocking | ✅ | `test/openclaw-plugin-compat.test.js` + `scripts/release-gate.js` |
|
|
23
|
+
| Benign tool-call passthrough | ✅ | `test/openclaw-plugin-compat.test.js` + `scripts/release-gate.js` |
|
|
24
|
+
| Upstream latest-version drift detection | ✅ | `npm run check:upstream` + `docs/generated/openclaw-upstream-status.json` (used for revalidation, not automatic claim widening) |
|
|
25
|
+
|
|
26
|
+
## Explicitly out of scope
|
|
27
|
+
|
|
28
|
+
- OpenClaw context-engine slot compatibility
|
|
29
|
+
- Any deprecated `registerHttpHandler` path
|
|
30
|
+
- Legacy `hooks/guard-scanner/plugin.ts` as a public entrypoint
|
|
31
|
+
|
|
32
|
+
Those surfaces are not part of the current compatibility claim and must not be advertised as validated.
|
|
33
|
+
|
|
34
|
+
## Repo deltas fixed by this audit
|
|
35
|
+
|
|
36
|
+
1. Replaced top-level `openclaw.extensions` string metadata with official `openclaw.extensions[]`.
|
|
37
|
+
2. Added compiled plugin entry (`openclaw-plugin.mts` -> `dist/openclaw-plugin.mjs`) to remove TS loader ambiguity.
|
|
38
|
+
3. Threaded OpenClaw `sessionId`, `runId`, and `toolCallId` into runtime audit records.
|
|
39
|
+
4. Removed unqualified “fully OpenClaw-compatible” public wording from active docs.
|
|
40
|
+
5. Added stale-claim checks for references to `dist/runtime-plugin.js` and `test/manifest.test.js`.
|
|
41
|
+
6. Added an explicit upstream drift watchdog so a newer OpenClaw stable release is measured instead of silently missed.
|
|
42
|
+
|
|
43
|
+
## Notes
|
|
44
|
+
|
|
45
|
+
Historical workspace logs and older reports may still mention broader compatibility claims. They should be treated as archival context, not as the current public guarantee.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# guard-scanner Continuous OpenClaw Compatibility Plan
|
|
2
|
+
|
|
3
|
+
Date: 2026-03-12
|
|
4
|
+
Stable target: OpenClaw `2026.3.12`
|
|
5
|
+
Baseline regression lane: OpenClaw `2026.3.8`
|
|
6
|
+
|
|
7
|
+
## Goal
|
|
8
|
+
|
|
9
|
+
Keep `guard-scanner` compatible with the latest stable OpenClaw public plugin surface without relying on stale manual claims.
|
|
10
|
+
|
|
11
|
+
## Current automated controls
|
|
12
|
+
|
|
13
|
+
1. `npm run build:plugin`
|
|
14
|
+
- Compiles `openclaw-plugin.mts` into `dist/openclaw-plugin.mjs`.
|
|
15
|
+
2. `npm run release:gate`
|
|
16
|
+
- Verifies manifest shape, official discovery metadata, built entry existence, runtime hook registration, malicious block behavior, benign passthrough behavior, and stale-doc claim removal.
|
|
17
|
+
3. `npm run check:upstream`
|
|
18
|
+
- Queries the npm registry and GitHub Releases for the latest stable `openclaw`, compares both sources against `devDependencies.openclaw`, writes `docs/generated/openclaw-upstream-status.json`, and fails on drift or source mismatch.
|
|
19
|
+
|
|
20
|
+
## Required operator flow when upstream changes
|
|
21
|
+
|
|
22
|
+
1. Run `npm run check:upstream`.
|
|
23
|
+
2. If drift is detected, update `devDependencies.openclaw` to the new stable version.
|
|
24
|
+
3. Re-run `npm install`, `npm run build:plugin`, `npm run release:gate`, and `npm test`.
|
|
25
|
+
4. Update compatibility docs only after runtime behavior has been re-verified.
|
|
26
|
+
|
|
27
|
+
## Quality bar
|
|
28
|
+
|
|
29
|
+
- No TS loader ambiguity in the public plugin entry.
|
|
30
|
+
- No broad compatibility claim outside the tested manifest/discovery/before_tool_call surface.
|
|
31
|
+
- No release if upstream drift is known but unverified.
|
|
32
|
+
|
|
33
|
+
## Pending future hardening
|
|
34
|
+
|
|
35
|
+
- Add a scheduled CI job that opens a drift report when `openclaw` stable changes.
|
|
36
|
+
- Expand runtime compatibility coverage if OpenClaw publishes a stable context-engine contract worth supporting.
|
|
37
|
+
- Add schema-level validation against an official machine-readable manifest contract if OpenClaw publishes one.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Threat Category: a2a-contagion
|
|
2
|
+
|
|
3
|
+
This document provides explainability for all rules in the `a2a-contagion` category.
|
|
4
|
+
|
|
5
|
+
## Rule: `A2A_SMUGGLE`
|
|
6
|
+
- **Severity**: CRITICAL
|
|
7
|
+
- **Description**: A2A Contagion: Instruction injection between request-response cycles
|
|
8
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
9
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
10
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
11
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
12
|
+
|
|
13
|
+
## Rule: `A2A_TOOL_POISON`
|
|
14
|
+
- **Severity**: CRITICAL
|
|
15
|
+
- **Description**: A2A Contagion: MCP tool description containing hidden instructions
|
|
16
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
17
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
18
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
19
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
20
|
+
|
|
21
|
+
## Rule: `A2A_SESSION_SMUGGLING`
|
|
22
|
+
- **Severity**: CRITICAL
|
|
23
|
+
- **Description**: A2A Session Smuggling: hidden instructions embedded in agent-to-agent response payloads (Unit42)
|
|
24
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
25
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
26
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
27
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
28
|
+
|
|
29
|
+
## Rule: `A2A_SESSION_PERSIST_SMUGGLE`
|
|
30
|
+
- **Severity**: CRITICAL
|
|
31
|
+
- **Description**: A2A session persistence smuggling: hidden instructions carried across agent session boundaries (Unit42)
|
|
32
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
33
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
34
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
35
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
36
|
+
|
|
37
|
+
## Rule: `A2A_MESH_HANDOFF`
|
|
38
|
+
- **Severity**: CRITICAL
|
|
39
|
+
- **Description**: Agentic Mesh: hidden instructions injected during agent task handoff (2026 primary A2A vector)
|
|
40
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
41
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
42
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
43
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
44
|
+
|
|
45
|
+
## Rule: `A2A_TRUSTED_ORIGIN_SPOOF`
|
|
46
|
+
- **Severity**: CRITICAL
|
|
47
|
+
- **Description**: A2A Trusted Origin Spoofing: forged agent headers elevating trust level
|
|
48
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
49
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
50
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
51
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
52
|
+
|
|
53
|
+
## Rule: `A2A_AGENT_CARD_POISON`
|
|
54
|
+
- **Severity**: HIGH
|
|
55
|
+
- **Description**: A2A agent card/skill description prompt injection poisoning
|
|
56
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
57
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
58
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
59
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
60
|
+
|
|
61
|
+
## Rule: `A2A_TASK_REPLAY`
|
|
62
|
+
- **Severity**: MEDIUM
|
|
63
|
+
- **Description**: A2A task replay attack — replaying completed tasks without re-authorization
|
|
64
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
65
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
66
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
67
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
68
|
+
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Threat Category: advanced-exfil
|
|
2
|
+
|
|
3
|
+
This document provides explainability for all rules in the `advanced-exfil` category.
|
|
4
|
+
|
|
5
|
+
## Rule: `ZOMBIE_STATIC_URL`
|
|
6
|
+
- **Severity**: CRITICAL
|
|
7
|
+
- **Description**: ZombieAgent: static URL array exfil
|
|
8
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
9
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
10
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
11
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
12
|
+
|
|
13
|
+
## Rule: `ZOMBIE_CHAR_MAP`
|
|
14
|
+
- **Severity**: HIGH
|
|
15
|
+
- **Description**: ZombieAgent: character mapping to URL
|
|
16
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
17
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
18
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
19
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
20
|
+
|
|
21
|
+
## Rule: `ZOMBIE_LOOP_FETCH`
|
|
22
|
+
- **Severity**: HIGH
|
|
23
|
+
- **Description**: ZombieAgent: loop-based URL exfil
|
|
24
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
25
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
26
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
27
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
28
|
+
|
|
29
|
+
## Rule: `EXFIL_BEACON`
|
|
30
|
+
- **Severity**: HIGH
|
|
31
|
+
- **Description**: Tracking pixel/beacon exfil
|
|
32
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
33
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
34
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
35
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
36
|
+
|
|
37
|
+
## Rule: `EXFIL_DRIP`
|
|
38
|
+
- **Severity**: HIGH
|
|
39
|
+
- **Description**: Drip exfiltration: sliced data
|
|
40
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
41
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
42
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
43
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
44
|
+
|
|
45
|
+
## Rule: `ECHOLEAK_EXFIL`
|
|
46
|
+
- **Severity**: CRITICAL
|
|
47
|
+
- **Description**: CVE-2025-32711: EchoLeak zero-click data exfiltration via M365 Copilot email processing
|
|
48
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
49
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
50
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
51
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
52
|
+
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Threat Category: agent-protocol
|
|
2
|
+
|
|
3
|
+
This document provides explainability for all rules in the `agent-protocol` category.
|
|
4
|
+
|
|
5
|
+
## Rule: `PROTO_A2A_IMPERSONATE`
|
|
6
|
+
- **Severity**: CRITICAL
|
|
7
|
+
- **Description**: A2A protocol: agent card identity spoofing
|
|
8
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
9
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
10
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
11
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
12
|
+
|
|
13
|
+
## Rule: `PROTO_A2A_TASK_FLOOD`
|
|
14
|
+
- **Severity**: HIGH
|
|
15
|
+
- **Description**: A2A protocol: task flooding DoS attack
|
|
16
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
17
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
18
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
19
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
20
|
+
|
|
21
|
+
## Rule: `PROTO_MCP_TOOL_REDEFINE`
|
|
22
|
+
- **Severity**: CRITICAL
|
|
23
|
+
- **Description**: MCP protocol: tool definition mutation after initial registration
|
|
24
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
25
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
26
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
27
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
28
|
+
|
|
29
|
+
## Rule: `PROTO_MCP_RESOURCE_POISON`
|
|
30
|
+
- **Severity**: CRITICAL
|
|
31
|
+
- **Description**: MCP protocol: resource poisoning via tampered content
|
|
32
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
33
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
34
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
35
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
36
|
+
|
|
37
|
+
## Rule: `PROTO_MCP_PROMPT_INJECT`
|
|
38
|
+
- **Severity**: CRITICAL
|
|
39
|
+
- **Description**: MCP protocol: prompt template injection
|
|
40
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
41
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
42
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
43
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
44
|
+
|
|
45
|
+
## Rule: `PROTO_OAUTH_REDIRECT`
|
|
46
|
+
- **Severity**: CRITICAL
|
|
47
|
+
- **Description**: OAuth redirect hijack: unsafe URI scheme in redirect
|
|
48
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
49
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
50
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
51
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
52
|
+
|
|
53
|
+
## Rule: `PROTO_SSE_HIJACK`
|
|
54
|
+
- **Severity**: HIGH
|
|
55
|
+
- **Description**: SSE transport hijack: MCP server-sent event interception
|
|
56
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
57
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
58
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
59
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
60
|
+
|
|
61
|
+
## Rule: `PROTO_STDIO_INJECT`
|
|
62
|
+
- **Severity**: HIGH
|
|
63
|
+
- **Description**: STDIO transport injection: raw protocol message injection via stdin
|
|
64
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
65
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
66
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
67
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
68
|
+
|
|
69
|
+
## Rule: `PROTO_CAPABILITY_ESCALATE`
|
|
70
|
+
- **Severity**: CRITICAL
|
|
71
|
+
- **Description**: Agent protocol: capability escalation beyond granted scope
|
|
72
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
73
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
74
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
75
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
76
|
+
|
|
77
|
+
## Rule: `PROTO_CONTEXT_OVERFLOW`
|
|
78
|
+
- **Severity**: HIGH
|
|
79
|
+
- **Description**: Context window overflow: deliberate token budget exhaustion attack
|
|
80
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
81
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
82
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
83
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
84
|
+
|
|
85
|
+
## Rule: `PROTO_NESTED_AGENT_CALL`
|
|
86
|
+
- **Severity**: HIGH
|
|
87
|
+
- **Description**: Nested agent call: recursive agent invocation chain (confused deputy)
|
|
88
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
89
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
90
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
91
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
92
|
+
|
|
93
|
+
## Rule: `PROTO_TOOL_PARAM_OVERFLOW`
|
|
94
|
+
- **Severity**: HIGH
|
|
95
|
+
- **Description**: Tool parameter overflow: oversized input to crash or bypass validation
|
|
96
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
97
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
98
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
99
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
100
|
+
|
|
101
|
+
## Rule: `AGENT_PROTOCOL_ABUSE`
|
|
102
|
+
- **Severity**: HIGH
|
|
103
|
+
- **Description**: Agent Protocol: Suspicious context triggering agent protocol abuse
|
|
104
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
105
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
106
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
107
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
108
|
+
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Threat Category: api-abuse
|
|
2
|
+
|
|
3
|
+
This document provides explainability for all rules in the `api-abuse` category.
|
|
4
|
+
|
|
5
|
+
## Rule: `API_KEY_HARDCODE`
|
|
6
|
+
- **Severity**: HIGH
|
|
7
|
+
- **Description**: API abuse: hardcoded API key in source code
|
|
8
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
9
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
10
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
11
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
12
|
+
|
|
13
|
+
## Rule: `API_RATE_BYPASS`
|
|
14
|
+
- **Severity**: HIGH
|
|
15
|
+
- **Description**: API abuse: rate limiting bypass technique
|
|
16
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
17
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
18
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
19
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
20
|
+
|
|
21
|
+
## Rule: `API_WEBHOOK_EXFIL`
|
|
22
|
+
- **Severity**: HIGH
|
|
23
|
+
- **Description**: API abuse: webhook to untrusted endpoint (data exfiltration)
|
|
24
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
25
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
26
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
27
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
28
|
+
|
|
29
|
+
## Rule: `API_GRAPHQL_INTROSPECT`
|
|
30
|
+
- **Severity**: MEDIUM
|
|
31
|
+
- **Description**: API abuse: GraphQL introspection query (schema discovery)
|
|
32
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
33
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
34
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
35
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
36
|
+
|
|
37
|
+
## Rule: `API_JWT_NONE_ALG`
|
|
38
|
+
- **Severity**: CRITICAL
|
|
39
|
+
- **Description**: API abuse: JWT "none" algorithm attack
|
|
40
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
41
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
42
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
43
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
44
|
+
|
|
45
|
+
## Rule: `API_SSRF_INTERNAL`
|
|
46
|
+
- **Severity**: CRITICAL
|
|
47
|
+
- **Description**: API abuse: SSRF to internal network endpoints
|
|
48
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
49
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
50
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
51
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
52
|
+
|
|
53
|
+
## Rule: `API_CORS_WILDCARD`
|
|
54
|
+
- **Severity**: MEDIUM
|
|
55
|
+
- **Description**: API abuse: CORS wildcard allowing any origin
|
|
56
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
57
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
58
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
59
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
60
|
+
|
|
61
|
+
## Rule: `API_OPEN_REDIRECT`
|
|
62
|
+
- **Severity**: HIGH
|
|
63
|
+
- **Description**: API abuse: open redirect from user-controlled input
|
|
64
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
65
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
66
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
67
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
68
|
+
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Threat Category: autonomous-risk
|
|
2
|
+
|
|
3
|
+
This document provides explainability for all rules in the `autonomous-risk` category.
|
|
4
|
+
|
|
5
|
+
## Rule: `AUTO_SELF_REPLICATE`
|
|
6
|
+
- **Severity**: CRITICAL
|
|
7
|
+
- **Description**: Autonomous risk: agent self-replication attempt
|
|
8
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
9
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
10
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
11
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
12
|
+
|
|
13
|
+
## Rule: `AUTO_RESOURCE_HOARD`
|
|
14
|
+
- **Severity**: HIGH
|
|
15
|
+
- **Description**: Autonomous risk: resource hoarding beyond task requirements
|
|
16
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
17
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
18
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
19
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
20
|
+
|
|
21
|
+
## Rule: `AUTO_GOAL_DRIFT`
|
|
22
|
+
- **Severity**: CRITICAL
|
|
23
|
+
- **Description**: Autonomous risk: AI self-modifying its core objectives
|
|
24
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
25
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
26
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
27
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
28
|
+
|
|
29
|
+
## Rule: `AUTO_HUMAN_BYPASS`
|
|
30
|
+
- **Severity**: CRITICAL
|
|
31
|
+
- **Description**: Autonomous risk: human-in-the-loop bypass
|
|
32
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
33
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
34
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
35
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
36
|
+
|
|
37
|
+
## Rule: `AUTO_DECEPTION`
|
|
38
|
+
- **Severity**: CRITICAL
|
|
39
|
+
- **Description**: Autonomous risk: deceptive behavior concealment from operators
|
|
40
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
41
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
42
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
43
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
44
|
+
|
|
45
|
+
## Rule: `AUTO_SHUTDOWN_RESIST`
|
|
46
|
+
- **Severity**: CRITICAL
|
|
47
|
+
- **Description**: Autonomous risk: shutdown resistance (corrigibility failure)
|
|
48
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
49
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
50
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
51
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
52
|
+
|
|
53
|
+
## Rule: `AUTO_TOOL_CHAIN`
|
|
54
|
+
- **Severity**: HIGH
|
|
55
|
+
- **Description**: Autonomous risk: unchecked tool call chaining
|
|
56
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
57
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
58
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
59
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
60
|
+
|
|
61
|
+
## Rule: `AUTO_PRIVILEGE_ESCAPE`
|
|
62
|
+
- **Severity**: CRITICAL
|
|
63
|
+
- **Description**: Autonomous risk: self-privilege escalation
|
|
64
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
65
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
66
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
67
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
68
|
+
|
|
69
|
+
## Rule: `AUTO_FINANCIAL_AUTONOMY`
|
|
70
|
+
- **Severity**: CRITICAL
|
|
71
|
+
- **Description**: Autonomous risk: unauthorized financial transactions
|
|
72
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
73
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
74
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
75
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
76
|
+
|
|
77
|
+
## Rule: `AUTO_PERSISTENCE_DAEMON`
|
|
78
|
+
- **Severity**: HIGH
|
|
79
|
+
- **Description**: Autonomous risk: agent persistence via system daemon registration
|
|
80
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
81
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
82
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
83
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
84
|
+
|
|
85
|
+
## Rule: `ASI_EXCESSIVE_AGENCY`
|
|
86
|
+
- **Severity**: HIGH
|
|
87
|
+
- **Description**: ASI: excessive agent permissions — wildcard or unrestricted tool access
|
|
88
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
89
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
90
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
91
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
92
|
+
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Threat Category: config-impact
|
|
2
|
+
|
|
3
|
+
This document provides explainability for all rules in the `config-impact` category.
|
|
4
|
+
|
|
5
|
+
## Rule: `CFG_OPENCLAW_WRITE`
|
|
6
|
+
- **Severity**: CRITICAL
|
|
7
|
+
- **Description**: Direct write to openclaw.json
|
|
8
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
9
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
10
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
11
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
12
|
+
|
|
13
|
+
## Rule: `CFG_EXEC_APPROVALS_OFF`
|
|
14
|
+
- **Severity**: CRITICAL
|
|
15
|
+
- **Description**: Disable exec approvals via config
|
|
16
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
17
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
18
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
19
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
20
|
+
|
|
21
|
+
## Rule: `CFG_HOOKS_MODIFY`
|
|
22
|
+
- **Severity**: HIGH
|
|
23
|
+
- **Description**: Modify hooks.internal configuration
|
|
24
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
25
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
26
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
27
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
28
|
+
|
|
29
|
+
## Rule: `CFG_EXEC_HOST_GW`
|
|
30
|
+
- **Severity**: CRITICAL
|
|
31
|
+
- **Description**: Set exec host to gateway (bypass sandbox)
|
|
32
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
33
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
34
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
35
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
36
|
+
|
|
37
|
+
## Rule: `CFG_SANDBOX_OFF`
|
|
38
|
+
- **Severity**: CRITICAL
|
|
39
|
+
- **Description**: Disable sandbox via configuration
|
|
40
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
41
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
42
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
43
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
44
|
+
|
|
45
|
+
## Rule: `CFG_TOOL_OVERRIDE`
|
|
46
|
+
- **Severity**: HIGH
|
|
47
|
+
- **Description**: Override tool security settings
|
|
48
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
49
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
50
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
51
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
52
|
+
|
|
53
|
+
## Rule: `CONFIG_ENV_OVERRIDE`
|
|
54
|
+
- **Severity**: HIGH
|
|
55
|
+
- **Description**: Config: runtime environment variable mutation
|
|
56
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
57
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
58
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
59
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
60
|
+
|
|
61
|
+
## Rule: `CONFIG_DOTENV_OVERWRITE`
|
|
62
|
+
- **Severity**: CRITICAL
|
|
63
|
+
- **Description**: Config: .env file modification at runtime
|
|
64
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
65
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
66
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
67
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
68
|
+
|
|
69
|
+
## Rule: `CONFIG_DNS_HIJACK`
|
|
70
|
+
- **Severity**: HIGH
|
|
71
|
+
- **Description**: Config: DNS resolver hijacking
|
|
72
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
73
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
74
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
75
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
76
|
+
|
|
77
|
+
## Rule: `CONFIG_PROXY_INJECT`
|
|
78
|
+
- **Severity**: HIGH
|
|
79
|
+
- **Description**: Config: HTTP proxy injection for traffic interception
|
|
80
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
81
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
82
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
83
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
84
|
+
|
|
85
|
+
## Rule: `CONFIG_TLS_DISABLE`
|
|
86
|
+
- **Severity**: CRITICAL
|
|
87
|
+
- **Description**: Config: TLS certificate verification disabled
|
|
88
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
89
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
90
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
91
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
92
|
+
|
|
93
|
+
## Rule: `CONFIG_PACKAGE_SCRIPT`
|
|
94
|
+
- **Severity**: HIGH
|
|
95
|
+
- **Description**: Config: npm security guard disabled (ignore-scripts, unsafe-perm)
|
|
96
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
97
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
98
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
99
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
100
|
+
|
|
101
|
+
## Rule: `CONFIG_GIT_HOOK_INJECT`
|
|
102
|
+
- **Severity**: HIGH
|
|
103
|
+
- **Description**: Config: git hook injection for code execution on VCS operations
|
|
104
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
105
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
106
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
107
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
108
|
+
|
|
109
|
+
## Rule: `CONFIG_HOSTS_MODIFY`
|
|
110
|
+
- **Severity**: CRITICAL
|
|
111
|
+
- **Description**: Config: hosts file modification for DNS poisoning
|
|
112
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
113
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
114
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
115
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
116
|
+
|
|
117
|
+
## Rule: `CONFIG_SUDO_NOPASSWD`
|
|
118
|
+
- **Severity**: CRITICAL
|
|
119
|
+
- **Description**: Config: sudoers modification for passwordless root access
|
|
120
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
121
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
122
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
123
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
124
|
+
|
|
125
|
+
## Rule: `CONFIG_SYSCTL_MODIFY`
|
|
126
|
+
- **Severity**: HIGH
|
|
127
|
+
- **Description**: Config: kernel parameter modification via sysctl
|
|
128
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
129
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
130
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
131
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
132
|
+
|