@clear-capabilities/agentic-security-scanner 0.84.1 → 0.86.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/dist/agentic-security.mjs +1 -1
- package/dist/agentic-security.mjs.sha256 +1 -1
- package/package.json +1 -1
- package/src/posture/.agentic-security/dpia.md +26 -0
- package/src/posture/.agentic-security/pqc-migration-plan.json +65 -0
- package/src/posture/.agentic-security/pqc-migration-plan.md +30 -0
- package/src/posture/.agentic-security/sbom-history/7d45b5e03804aac084b4a2b4dc8c6f10107d2005.json +6 -0
- package/src/posture/.agentic-security/threat-model.json +2038 -0
- package/src/posture/.agentic-security/threat-model.md +73 -0
- package/src/posture/auditor-walkthrough.js +1 -1
- package/src/posture/pr-augment.js +1 -1
- package/src/posture/router.js +4 -4
- package/src/report/.agentic-security/sbom-history/7d45b5e03804aac084b4a2b4dc8c6f10107d2005.json +6 -0
- package/src/report/.agentic-security/threat-model.json +7 -0
- package/src/report/.agentic-security/threat-model.md +22 -0
- package/src/report/index.js +1 -1
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Threat Model (auto-generated)
|
|
2
|
+
|
|
3
|
+
Generated by agentic-security on 2026-05-30.
|
|
4
|
+
|
|
5
|
+
This threat model is derived from static analysis of the current codebase and is regenerated on every scan. It is intended as a working artifact, not a finished compliance document.
|
|
6
|
+
|
|
7
|
+
## Entities + boundaries
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
flowchart TB
|
|
11
|
+
subgraph External
|
|
12
|
+
route_GET__api_users_2["http-route: GET /api/users/2"]
|
|
13
|
+
route_GET__api_admin_users["http-route: GET /api/admin/users"]
|
|
14
|
+
route_GET__api_health["http-route: GET /api/health"]
|
|
15
|
+
end
|
|
16
|
+
subgraph Application
|
|
17
|
+
end
|
|
18
|
+
External --> route_GET__api_users_2
|
|
19
|
+
External --> route_GET__api_admin_users
|
|
20
|
+
External --> route_GET__api_health
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Assets
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## STRIDE threats
|
|
27
|
+
|
|
28
|
+
### Tampering (148)
|
|
29
|
+
|
|
30
|
+
- [medium] **dos-sync-io** (CWE-400) at `deploy-platform.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
31
|
+
- [low] **mass-assignment** (CWE-915) at `integrity.js:undefined` — Mass Assignment (req.body Direct to Model)
|
|
32
|
+
- [low] **dos-sync-io** (CWE-400) at `agents-memory.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
33
|
+
- [low] **dos-sync-io** (CWE-400) at `api-contract.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
34
|
+
- [low] **dos-sync-io** (CWE-400) at `auditor-walkthrough.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
35
|
+
- [low] **dos-sync-io** (CWE-400) at `auth-posture-import.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
36
|
+
- [low] **dos-sync-io** (CWE-400) at `blast-radius.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
37
|
+
- [low] **dos-sync-io** (CWE-400) at `calibration-drift.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
38
|
+
- [low] **dos-sync-io** (CWE-400) at `calibration.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
39
|
+
- [low] **dos-sync-io** (CWE-400) at `compliance-policy.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
40
|
+
- [low] **dos-sync-io** (CWE-400) at `cross-repo-memory.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
41
|
+
- [low] **dos-sync-io** (CWE-400) at `custom-rules.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
42
|
+
- [low] **dos-sync-io** (CWE-400) at `cve-alert-daemon.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
43
|
+
- [low] **dos-sync-io** (CWE-400) at `cve-lookup.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
44
|
+
- [low] **dos-sync-io** (CWE-400) at `dep-add-guard.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
45
|
+
- [low] **dos-sync-io** (CWE-400) at `deterministic.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
46
|
+
- [low] **dos-sync-io** (CWE-400) at `epss.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
47
|
+
- [low] **dos-sync-io** (CWE-400) at `exploitability-probability.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
48
|
+
- [low] **dos-sync-io** (CWE-400) at `feature-flags.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
49
|
+
- [low] **dos-sync-io** (CWE-400) at `federated-learning.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
50
|
+
- [low] **dos-sync-io** (CWE-400) at `findings-memory.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
51
|
+
- [low] **dos-sync-io** (CWE-400) at `fix-history.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
52
|
+
- [low] **dos-sync-io** (CWE-400) at `fix-plan.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
53
|
+
- [low] **dos-sync-io** (CWE-400) at `fix-style-mirror.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
54
|
+
- [low] **dos-sync-io** (CWE-400) at `fix-verify-loop.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
|
|
55
|
+
- … and 123 more
|
|
56
|
+
|
|
57
|
+
### Information Disclosure (5)
|
|
58
|
+
|
|
59
|
+
- [low] **ssrf** (CWE-918) at `attack-playbooks.js:72` — SSRF: explicit reference to cloud instance-metadata endpoint
|
|
60
|
+
- [low] **ssrf** (CWE-918) at `defender-agent.js:41` — SSRF: explicit reference to cloud instance-metadata endpoint
|
|
61
|
+
- [low] **ssrf** (CWE-918) at `flow-narration.js:24` — SSRF: explicit reference to cloud instance-metadata endpoint
|
|
62
|
+
- [low] **pqc-migration** (CWE-327) at `rule-pack-signing.js:187` — Pre-quantum ED25519 (ed25519) — replace with ML-DSA-65 before CRQC arrives
|
|
63
|
+
- [low] **ssrf** (CWE-918) at `verifier.js:55` — SSRF: explicit reference to cloud instance-metadata endpoint
|
|
64
|
+
|
|
65
|
+
### Elevation of Privilege (5)
|
|
66
|
+
|
|
67
|
+
- [low] **ssrf** (CWE-918) at `attack-playbooks.js:72` — SSRF: explicit reference to cloud instance-metadata endpoint
|
|
68
|
+
- [low] **prototype-pollution** (CWE-1321) at `adversarial-self-test.js:60` — Prototype Pollution: Direct write to __proto__ / constructor.prototype
|
|
69
|
+
- [low] **ssrf** (CWE-918) at `defender-agent.js:41` — SSRF: explicit reference to cloud instance-metadata endpoint
|
|
70
|
+
- [low] **ssrf** (CWE-918) at `flow-narration.js:24` — SSRF: explicit reference to cloud instance-metadata endpoint
|
|
71
|
+
- [low] **ssrf** (CWE-918) at `verifier.js:55` — SSRF: explicit reference to cloud instance-metadata endpoint
|
|
72
|
+
|
|
73
|
+
## Attack trees
|
|
@@ -230,7 +230,7 @@ export function renderWalkthrough(fw, evaluation, opts = {}) {
|
|
|
230
230
|
lines.push('');
|
|
231
231
|
}
|
|
232
232
|
if (ev.status === 'absent' || ev.status === 'partial') {
|
|
233
|
-
lines.push(`**Remediation:** address the bullet(s) above, then re-run \`/
|
|
233
|
+
lines.push(`**Remediation:** address the bullet(s) above, then re-run \`/compliance --walkthrough ${fw.id}\` to update this report.`);
|
|
234
234
|
lines.push('');
|
|
235
235
|
}
|
|
236
236
|
}
|
|
@@ -141,7 +141,7 @@ export function augmentPrBody(scanRoot, opts = {}) {
|
|
|
141
141
|
lines.push('');
|
|
142
142
|
|
|
143
143
|
if (!baseline) {
|
|
144
|
-
lines.push(`> Baseline against \`${baselineRef}\` not found — showing the full current scan as added. Run \`/pr
|
|
144
|
+
lines.push(`> Baseline against \`${baselineRef}\` not found — showing the full current scan as added. Run \`/compliance --pr --persist-baseline ${baselineRef}\` from \`${baselineRef}\` to enable diff mode.`);
|
|
145
145
|
lines.push('');
|
|
146
146
|
}
|
|
147
147
|
|
package/src/posture/router.js
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
// Decision tree (cheap, no scan):
|
|
8
8
|
// - No prior scan? → run /scan first
|
|
9
9
|
// - Prior scan, criticals open? → run /fix --all --critical
|
|
10
|
-
// - Prior scan, highs open? → /fix --all --high OR /show
|
|
11
|
-
// - Prior scan, only mediums? → /report-card
|
|
10
|
+
// - Prior scan, highs open? → /fix --all --high OR /triage --show
|
|
11
|
+
// - Prior scan, only mediums? → /posture --report-card
|
|
12
12
|
// - All clean? → /security-badge (celebrate + share)
|
|
13
13
|
// - Pre-deploy intent (--launch flag, or no scan in 7 days)? → /launch-check
|
|
14
14
|
//
|
|
@@ -71,7 +71,7 @@ export function decide({ scanRoot, intent }) {
|
|
|
71
71
|
if (sev.high > 0) {
|
|
72
72
|
return {
|
|
73
73
|
action: 'review-high',
|
|
74
|
-
command: 'claude /show
|
|
74
|
+
command: 'claude /triage --show',
|
|
75
75
|
reason: `${sev.high} high finding(s). Review and triage before fixing.`,
|
|
76
76
|
};
|
|
77
77
|
}
|
|
@@ -85,7 +85,7 @@ export function decide({ scanRoot, intent }) {
|
|
|
85
85
|
if (sev.medium > 0) {
|
|
86
86
|
return {
|
|
87
87
|
action: 'report-card',
|
|
88
|
-
command: 'claude /report-card',
|
|
88
|
+
command: 'claude /posture --report-card',
|
|
89
89
|
reason: `Only mediums remain. Get a letter-grade snapshot and pick what's worth fixing.`,
|
|
90
90
|
};
|
|
91
91
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Threat Model (auto-generated)
|
|
2
|
+
|
|
3
|
+
Generated by agentic-security on 2026-05-30.
|
|
4
|
+
|
|
5
|
+
This threat model is derived from static analysis of the current codebase and is regenerated on every scan. It is intended as a working artifact, not a finished compliance document.
|
|
6
|
+
|
|
7
|
+
## Entities + boundaries
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
flowchart TB
|
|
11
|
+
subgraph External
|
|
12
|
+
end
|
|
13
|
+
subgraph Application
|
|
14
|
+
end
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Assets
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## STRIDE threats
|
|
21
|
+
|
|
22
|
+
## Attack trees
|
package/src/report/index.js
CHANGED
|
@@ -973,7 +973,7 @@ export function toShipVerdict(scan, options = {}) {
|
|
|
973
973
|
// CONFIRMED: surface validator-confirmed criticals as a trust signal —
|
|
974
974
|
// distinguishes "tool said so" from "tool built a PoC and it ran."
|
|
975
975
|
if (confirmedCount > 0) {
|
|
976
|
-
lines.push(c(` ✓ ${confirmedCount} CONFIRMED (PoC built by /validate
|
|
976
|
+
lines.push(c(` ✓ ${confirmedCount} CONFIRMED (PoC built by /triage --validate)`, '\x1b[1;32m'));
|
|
977
977
|
}
|
|
978
978
|
lines.push('');
|
|
979
979
|
|