@cyclonedx/cdxgen 12.3.3 → 12.4.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 +64 -22
- package/bin/audit.js +21 -7
- package/bin/cdxgen.js +238 -116
- package/bin/convert.js +28 -13
- package/bin/hbom.js +490 -0
- package/bin/repl.js +580 -29
- package/bin/validate.js +34 -4
- package/bin/verify.js +40 -5
- package/data/README.md +298 -25
- package/data/component-tags.json +6 -0
- package/data/crypto-oid.json +16 -0
- package/data/predictive-audit-allowlist.json +11 -0
- package/data/queries-darwin.json +12 -1
- package/data/queries-win.json +7 -1
- package/data/queries.json +39 -2
- package/data/rules/ai-agent-governance.yaml +16 -0
- package/data/rules/asar-archives.yaml +150 -0
- package/data/rules/chrome-extensions.yaml +8 -0
- package/data/rules/ci-permissions.yaml +42 -18
- package/data/rules/container-risk.yaml +14 -7
- package/data/rules/dependency-sources.yaml +11 -0
- package/data/rules/hbom-compliance.yaml +325 -0
- package/data/rules/hbom-performance.yaml +307 -0
- package/data/rules/hbom-security.yaml +248 -0
- package/data/rules/host-topology.yaml +165 -0
- package/data/rules/mcp-servers.yaml +18 -3
- package/data/rules/obom-runtime.yaml +907 -22
- package/data/rules/package-integrity.yaml +14 -0
- package/data/rules/rootfs-hardening.yaml +179 -0
- package/data/rules/vscode-extensions.yaml +9 -0
- package/lib/audit/index.js +209 -8
- package/lib/audit/index.poku.js +332 -0
- package/lib/audit/reporters.js +222 -0
- package/lib/audit/targets.js +146 -1
- package/lib/audit/targets.poku.js +186 -0
- package/lib/cli/asar.poku.js +328 -0
- package/lib/cli/index.js +506 -88
- package/lib/cli/index.poku.js +1352 -212
- package/lib/evinser/evinser.js +14 -9
- package/lib/helpers/analyzer.js +1406 -29
- package/lib/helpers/analyzer.poku.js +342 -0
- package/lib/helpers/analyzerScope.js +712 -0
- package/lib/helpers/asarutils.js +1556 -0
- package/lib/helpers/asarutils.poku.js +443 -0
- package/lib/helpers/auditCategories.js +12 -0
- package/lib/helpers/auditCategories.poku.js +32 -0
- package/lib/helpers/cbomutils.js +271 -1
- package/lib/helpers/cbomutils.poku.js +248 -5
- package/lib/helpers/display.js +291 -1
- package/lib/helpers/display.poku.js +149 -0
- package/lib/helpers/evidenceUtils.js +58 -0
- package/lib/helpers/evidenceUtils.poku.js +54 -0
- package/lib/helpers/exportUtils.js +9 -0
- package/lib/helpers/gtfobins.js +142 -8
- package/lib/helpers/gtfobins.poku.js +24 -1
- package/lib/helpers/hbom.js +710 -0
- package/lib/helpers/hbom.poku.js +496 -0
- package/lib/helpers/hbomAnalysis.js +268 -0
- package/lib/helpers/hbomAnalysis.poku.js +249 -0
- package/lib/helpers/hbomLoader.js +35 -0
- package/lib/helpers/hostTopology.js +803 -0
- package/lib/helpers/hostTopology.poku.js +363 -0
- package/lib/helpers/inventoryStats.js +69 -0
- package/lib/helpers/inventoryStats.poku.js +86 -0
- package/lib/helpers/lolbas.js +19 -1
- package/lib/helpers/lolbas.poku.js +23 -0
- package/lib/helpers/osqueryTransform.js +47 -0
- package/lib/helpers/osqueryTransform.poku.js +47 -0
- package/lib/helpers/plugins.js +349 -0
- package/lib/helpers/plugins.poku.js +57 -0
- package/lib/helpers/protobom.js +156 -45
- package/lib/helpers/protobom.poku.js +140 -5
- package/lib/helpers/remote/dependency-track.js +36 -3
- package/lib/helpers/remote/dependency-track.poku.js +44 -0
- package/lib/helpers/source.js +24 -0
- package/lib/helpers/source.poku.js +32 -0
- package/lib/helpers/utils.js +1438 -93
- package/lib/helpers/utils.poku.js +846 -4
- package/lib/managers/binary.e2e.poku.js +367 -0
- package/lib/managers/binary.js +2293 -353
- package/lib/managers/binary.poku.js +1699 -1
- package/lib/managers/docker.js +201 -79
- package/lib/managers/docker.poku.js +337 -12
- package/lib/server/server.js +2 -27
- package/lib/stages/postgen/annotator.js +38 -0
- package/lib/stages/postgen/annotator.poku.js +107 -1
- package/lib/stages/postgen/auditBom.js +121 -18
- package/lib/stages/postgen/auditBom.poku.js +1366 -31
- package/lib/stages/postgen/hostTopologyAudit.poku.js +186 -0
- package/lib/stages/postgen/postgen.js +192 -1
- package/lib/stages/postgen/postgen.poku.js +321 -0
- package/lib/stages/postgen/ruleEngine.js +116 -0
- package/lib/stages/pregen/envAudit.js +14 -3
- package/package.json +23 -21
- package/types/bin/hbom.d.ts +3 -0
- package/types/bin/hbom.d.ts.map +1 -0
- package/types/bin/repl.d.ts.map +1 -1
- package/types/lib/audit/index.d.ts +44 -0
- package/types/lib/audit/index.d.ts.map +1 -1
- package/types/lib/audit/reporters.d.ts +16 -0
- package/types/lib/audit/reporters.d.ts.map +1 -1
- package/types/lib/audit/targets.d.ts.map +1 -1
- package/types/lib/cli/index.d.ts +16 -0
- package/types/lib/cli/index.d.ts.map +1 -1
- package/types/lib/evinser/evinser.d.ts +4 -0
- package/types/lib/evinser/evinser.d.ts.map +1 -1
- package/types/lib/helpers/analyzer.d.ts +33 -0
- package/types/lib/helpers/analyzer.d.ts.map +1 -1
- package/types/lib/helpers/analyzerScope.d.ts +11 -0
- package/types/lib/helpers/analyzerScope.d.ts.map +1 -0
- package/types/lib/helpers/asarutils.d.ts +34 -0
- package/types/lib/helpers/asarutils.d.ts.map +1 -0
- package/types/lib/helpers/auditCategories.d.ts +5 -0
- package/types/lib/helpers/auditCategories.d.ts.map +1 -1
- package/types/lib/helpers/cbomutils.d.ts +3 -2
- package/types/lib/helpers/cbomutils.d.ts.map +1 -1
- package/types/lib/helpers/display.d.ts.map +1 -1
- package/types/lib/helpers/evidenceUtils.d.ts +8 -0
- package/types/lib/helpers/evidenceUtils.d.ts.map +1 -0
- package/types/lib/helpers/exportUtils.d.ts.map +1 -1
- package/types/lib/helpers/gtfobins.d.ts +8 -0
- package/types/lib/helpers/gtfobins.d.ts.map +1 -1
- package/types/lib/helpers/hbom.d.ts +49 -0
- package/types/lib/helpers/hbom.d.ts.map +1 -0
- package/types/lib/helpers/hbomAnalysis.d.ts +62 -0
- package/types/lib/helpers/hbomAnalysis.d.ts.map +1 -0
- package/types/lib/helpers/hbomLoader.d.ts +7 -0
- package/types/lib/helpers/hbomLoader.d.ts.map +1 -0
- package/types/lib/helpers/hostTopology.d.ts +12 -0
- package/types/lib/helpers/hostTopology.d.ts.map +1 -0
- package/types/lib/helpers/inventoryStats.d.ts +11 -0
- package/types/lib/helpers/inventoryStats.d.ts.map +1 -0
- package/types/lib/helpers/lolbas.d.ts.map +1 -1
- package/types/lib/helpers/osqueryTransform.d.ts +3 -0
- package/types/lib/helpers/osqueryTransform.d.ts.map +1 -1
- package/types/lib/helpers/plugins.d.ts +58 -0
- package/types/lib/helpers/plugins.d.ts.map +1 -0
- package/types/lib/helpers/protobom.d.ts +3 -4
- package/types/lib/helpers/protobom.d.ts.map +1 -1
- package/types/lib/helpers/remote/dependency-track.d.ts +10 -3
- package/types/lib/helpers/remote/dependency-track.d.ts.map +1 -1
- package/types/lib/helpers/source.d.ts.map +1 -1
- package/types/lib/helpers/utils.d.ts +45 -8
- package/types/lib/helpers/utils.d.ts.map +1 -1
- package/types/lib/managers/binary.d.ts +5 -0
- package/types/lib/managers/binary.d.ts.map +1 -1
- package/types/lib/managers/docker.d.ts.map +1 -1
- package/types/lib/server/server.d.ts +2 -1
- package/types/lib/server/server.d.ts.map +1 -1
- package/types/lib/stages/postgen/annotator.d.ts.map +1 -1
- package/types/lib/stages/postgen/auditBom.d.ts +26 -1
- package/types/lib/stages/postgen/auditBom.d.ts.map +1 -1
- package/types/lib/stages/postgen/postgen.d.ts +2 -1
- package/types/lib/stages/postgen/postgen.d.ts.map +1 -1
- package/types/lib/stages/postgen/ruleEngine.d.ts.map +1 -1
- package/types/lib/stages/pregen/envAudit.d.ts.map +1 -1
- package/data/spdx-model-v3.0.1.jsonld +0 -15999
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Host Topology Rules
|
|
2
|
+
# Category: host-topology
|
|
3
|
+
# Evaluates strict, evidence-backed insights derived from merged HBOM + OBOM inventories.
|
|
4
|
+
|
|
5
|
+
- id: HMX-001
|
|
6
|
+
name: "Active wired interface with live runtime addresses is operating degraded"
|
|
7
|
+
description: "A wired interface that is actually carrying runtime addresses but is negotiated at low bandwidth or half duplex represents a higher-confidence performance issue than hardware inventory alone."
|
|
8
|
+
severity: medium
|
|
9
|
+
category: host-topology
|
|
10
|
+
dry-run-support: partial
|
|
11
|
+
condition: |
|
|
12
|
+
components[
|
|
13
|
+
$prop($, 'cdx:hbom:hardwareClass') = 'network-interface'
|
|
14
|
+
and $number($firstNonEmpty($prop($, 'cdx:hostview:interface_addresses:count'), '0')) > 0
|
|
15
|
+
and (
|
|
16
|
+
$lowercase($safeStr($prop($, 'cdx:hbom:duplex'))) = 'half'
|
|
17
|
+
or (
|
|
18
|
+
$hasProp($, 'cdx:hbom:speedMbps')
|
|
19
|
+
and $number($prop($, 'cdx:hbom:speedMbps')) > 0
|
|
20
|
+
and $number($prop($, 'cdx:hbom:speedMbps')) < 1000
|
|
21
|
+
)
|
|
22
|
+
)
|
|
23
|
+
]
|
|
24
|
+
location: |
|
|
25
|
+
{
|
|
26
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
27
|
+
}
|
|
28
|
+
message: "Interface '{{ name }}' has live runtime address evidence but negotiated degraded duplex or bandwidth characteristics"
|
|
29
|
+
mitigation: "Inspect cabling, switch policy, NIC firmware/driver, and negotiated link settings before treating the issue as application-only latency."
|
|
30
|
+
evidence: |
|
|
31
|
+
{
|
|
32
|
+
"runtimeAddressCount": $prop($, 'cdx:hostview:interface_addresses:count'),
|
|
33
|
+
"driver": $prop($, 'cdx:hbom:driver'),
|
|
34
|
+
"speedMbps": $prop($, 'cdx:hbom:speedMbps'),
|
|
35
|
+
"duplex": $prop($, 'cdx:hbom:duplex'),
|
|
36
|
+
"operState": $prop($, 'cdx:hbom:operState')
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
- id: HMX-002
|
|
40
|
+
name: "Wireless interface with live runtime address uses weak or missing link security"
|
|
41
|
+
description: "Weak wireless security on an interface that also has runtime address evidence is a stronger exposure signal than hardware inventory alone."
|
|
42
|
+
severity: high
|
|
43
|
+
category: host-topology
|
|
44
|
+
dry-run-support: partial
|
|
45
|
+
condition: |
|
|
46
|
+
components[
|
|
47
|
+
(
|
|
48
|
+
$prop($, 'cdx:hbom:hardwareClass') = 'wireless-adapter'
|
|
49
|
+
or (
|
|
50
|
+
$prop($, 'cdx:hbom:hardwareClass') = 'network-interface'
|
|
51
|
+
and $hasProp($, 'cdx:hbom:securityMode')
|
|
52
|
+
)
|
|
53
|
+
)
|
|
54
|
+
and $number($firstNonEmpty($prop($, 'cdx:hostview:interface_addresses:count'), '0')) > 0
|
|
55
|
+
and (
|
|
56
|
+
$safeStr($prop($, 'cdx:hbom:securityMode')) = ''
|
|
57
|
+
or $contains($lowercase($safeStr($prop($, 'cdx:hbom:securityMode'))), 'open')
|
|
58
|
+
or $contains($lowercase($safeStr($prop($, 'cdx:hbom:securityMode'))), 'wep')
|
|
59
|
+
or $contains($lowercase($safeStr($prop($, 'cdx:hbom:securityMode'))), 'none')
|
|
60
|
+
)
|
|
61
|
+
]
|
|
62
|
+
location: |
|
|
63
|
+
{
|
|
64
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
65
|
+
}
|
|
66
|
+
message: "Wireless interface '{{ name }}' has live runtime address evidence while using weak or missing security mode '{{ $firstNonEmpty($prop($, 'cdx:hbom:securityMode'), 'unknown') }}'"
|
|
67
|
+
mitigation: "Move the interface to WPA2/WPA3-class protections, review SSID policy, and verify that actively routed wireless links meet enterprise security baselines."
|
|
68
|
+
evidence: |
|
|
69
|
+
{
|
|
70
|
+
"runtimeAddressCount": $prop($, 'cdx:hostview:interface_addresses:count'),
|
|
71
|
+
"securityMode": $prop($, 'cdx:hbom:securityMode'),
|
|
72
|
+
"channel": $prop($, 'cdx:hbom:channel'),
|
|
73
|
+
"phyMode": $prop($, 'cdx:hbom:phyMode')
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
- id: HMX-003
|
|
77
|
+
name: "Merged host inventory lacks strict hardware/runtime topology links"
|
|
78
|
+
description: "When a merged HBOM+OBOM view contains no strict cross-domain topology links, reviewers should treat combined host conclusions cautiously and inspect collection coverage."
|
|
79
|
+
severity: medium
|
|
80
|
+
category: host-topology
|
|
81
|
+
dry-run-support: partial
|
|
82
|
+
condition: |
|
|
83
|
+
metadata.component[
|
|
84
|
+
type = 'device'
|
|
85
|
+
and $prop($, 'cdx:hostview:mode') = 'hbom-obom-merged'
|
|
86
|
+
and $number($firstNonEmpty($prop($, 'cdx:hostview:topologyLinkCount'), '0')) = 0
|
|
87
|
+
]
|
|
88
|
+
location: |
|
|
89
|
+
{
|
|
90
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
91
|
+
}
|
|
92
|
+
message: "Merged host inventory for '{{ name }}' contains no strict HBOM-to-OBOM topology links"
|
|
93
|
+
mitigation: "Review collector coverage, ensure runtime categories such as interface_addresses or kernel_modules are available, and prefer exact identifier-bearing probes over heuristic joins."
|
|
94
|
+
evidence: |
|
|
95
|
+
{
|
|
96
|
+
"hostViewMode": $prop($, 'cdx:hostview:mode'),
|
|
97
|
+
"hardwareComponentCount": $prop($, 'cdx:hostview:hardwareComponentCount'),
|
|
98
|
+
"runtimeComponentCount": $prop($, 'cdx:hostview:runtimeComponentCount'),
|
|
99
|
+
"topologyLinkCount": $prop($, 'cdx:hostview:topologyLinkCount')
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
- id: HMX-004
|
|
103
|
+
name: "Mounted storage with explicit runtime evidence is reporting degraded health"
|
|
104
|
+
description: "Storage health issues become higher-confidence operational findings when the hardware component is also linked to an active runtime mount or logical drive using exact identifiers."
|
|
105
|
+
severity: high
|
|
106
|
+
category: host-topology
|
|
107
|
+
dry-run-support: partial
|
|
108
|
+
condition: |
|
|
109
|
+
components[
|
|
110
|
+
(
|
|
111
|
+
$prop($, 'cdx:hbom:hardwareClass') = 'storage'
|
|
112
|
+
or $prop($, 'cdx:hbom:hardwareClass') = 'storage-device'
|
|
113
|
+
or $prop($, 'cdx:hbom:hardwareClass') = 'storage-volume'
|
|
114
|
+
)
|
|
115
|
+
and (
|
|
116
|
+
$number($firstNonEmpty($prop($, 'cdx:hostview:mount_hardening:count'), '0')) > 0
|
|
117
|
+
or $number($firstNonEmpty($prop($, 'cdx:hostview:runtime-storage:count'), '0')) > 0
|
|
118
|
+
)
|
|
119
|
+
and (
|
|
120
|
+
$contains($lowercase($safeStr($prop($, 'cdx:hbom:smartStatus'))), 'fail')
|
|
121
|
+
or $contains($lowercase($safeStr($prop($, 'cdx:hbom:health'))), 'degrad')
|
|
122
|
+
or $number($firstNonEmpty($prop($, 'cdx:hbom:wearPercentageUsed'), '0')) >= 90
|
|
123
|
+
)
|
|
124
|
+
]
|
|
125
|
+
location: |
|
|
126
|
+
{
|
|
127
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
128
|
+
}
|
|
129
|
+
message: "Storage component '{{ name }}' is explicitly linked to a runtime mount or drive while reporting degraded health telemetry"
|
|
130
|
+
mitigation: "Prioritize remediation for the backing device because the linked runtime mount evidence shows the degraded storage is actively in use."
|
|
131
|
+
evidence: |
|
|
132
|
+
{
|
|
133
|
+
"mountCount": $prop($, 'cdx:hostview:mount_hardening:count'),
|
|
134
|
+
"runtimeStorageCount": $prop($, 'cdx:hostview:runtime-storage:count'),
|
|
135
|
+
"smartStatus": $prop($, 'cdx:hbom:smartStatus'),
|
|
136
|
+
"health": $prop($, 'cdx:hbom:health'),
|
|
137
|
+
"wearPercentageUsed": $prop($, 'cdx:hbom:wearPercentageUsed')
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
- id: HMX-005
|
|
141
|
+
name: "Explicit HBOM secure-boot trust anchor matches a revoked runtime Secure Boot certificate"
|
|
142
|
+
description: "When HBOM metadata carries an explicit Secure Boot certificate identifier that strictly links to runtime secureboot_certificates data, revoked trust anchors indicate a higher-confidence firmware trust issue."
|
|
143
|
+
severity: high
|
|
144
|
+
category: host-topology
|
|
145
|
+
dry-run-support: partial
|
|
146
|
+
condition: |
|
|
147
|
+
components[
|
|
148
|
+
$prop($, 'cdx:osquery:category') = 'secureboot_certificates'
|
|
149
|
+
and $number($firstNonEmpty($prop($, 'revoked'), '0')) > 0
|
|
150
|
+
and $number($firstNonEmpty($prop($$.metadata.component, 'cdx:hostview:secureboot_certificates:count'), '0')) > 0
|
|
151
|
+
]
|
|
152
|
+
location: |
|
|
153
|
+
{
|
|
154
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
155
|
+
}
|
|
156
|
+
message: "Secure Boot certificate '{{ name }}' is revoked and the host also has an explicit HBOM trust-anchor link for this Secure Boot surface"
|
|
157
|
+
mitigation: "Review firmware trust policy, remove revoked Secure Boot entries from active trust sets, and verify that the expected db/dbx anchors on the host still match the approved platform state."
|
|
158
|
+
evidence: |
|
|
159
|
+
{
|
|
160
|
+
"linkedSecureBootCertificateCount": $prop($, 'cdx:hostview:secureboot_certificates:count'),
|
|
161
|
+
"revokedCertificateCount": $count(bom.components[
|
|
162
|
+
$prop($, 'cdx:osquery:category') = 'secureboot_certificates'
|
|
163
|
+
and $number($firstNonEmpty($prop($, 'revoked'), '0')) > 0
|
|
164
|
+
])
|
|
165
|
+
}
|
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
description: "HTTP-based MCP servers that expose tools without authentication let unauthenticated clients invoke model-controlled actions directly."
|
|
4
4
|
severity: critical
|
|
5
5
|
category: mcp-server
|
|
6
|
+
dry-run-support: full
|
|
6
7
|
attack:
|
|
7
|
-
tactics: [TA0001,
|
|
8
|
+
tactics: [TA0001, TA0002]
|
|
8
9
|
techniques: [T1190, T1059]
|
|
9
10
|
standards:
|
|
10
11
|
owasp-ai-top-10:
|
|
11
12
|
- "LLM07: Insecure Plugin Design"
|
|
12
13
|
- "LLM08: Excessive Agency"
|
|
14
|
+
- "LLM06:2025 Excessive Agency"
|
|
13
15
|
nist-ai-rmf:
|
|
14
16
|
- "Map"
|
|
15
17
|
- "Manage"
|
|
@@ -44,6 +46,7 @@
|
|
|
44
46
|
description: "Streamable HTTP MCP servers should authenticate incoming requests before serving prompts, resources, or tools."
|
|
45
47
|
severity: high
|
|
46
48
|
category: mcp-server
|
|
49
|
+
dry-run-support: full
|
|
47
50
|
attack:
|
|
48
51
|
tactics: [TA0001]
|
|
49
52
|
techniques: [T1190]
|
|
@@ -81,13 +84,15 @@
|
|
|
81
84
|
description: "MCP servers built on non-official SDKs or wrappers deserve extra review before being exposed over HTTP, especially when they register tools."
|
|
82
85
|
severity: medium
|
|
83
86
|
category: mcp-server
|
|
87
|
+
dry-run-support: full
|
|
84
88
|
attack:
|
|
85
|
-
tactics: [TA0001
|
|
89
|
+
tactics: [TA0001]
|
|
86
90
|
techniques: [T1195.001]
|
|
87
91
|
standards:
|
|
88
92
|
owasp-ai-top-10:
|
|
89
93
|
- "LLM05: Supply Chain Vulnerabilities"
|
|
90
94
|
- "LLM07: Insecure Plugin Design"
|
|
95
|
+
- "LLM03:2025 Supply Chain"
|
|
91
96
|
nist-ai-rmf:
|
|
92
97
|
- "Govern"
|
|
93
98
|
- "Map"
|
|
@@ -124,6 +129,7 @@
|
|
|
124
129
|
description: "MCP services discovered only from client configuration files still need explicit authentication or OAuth posture when they resolve to network-accessible HTTP endpoints."
|
|
125
130
|
severity: high
|
|
126
131
|
category: mcp-server
|
|
132
|
+
dry-run-support: full
|
|
127
133
|
attack:
|
|
128
134
|
tactics: [TA0001]
|
|
129
135
|
techniques: [T1190]
|
|
@@ -131,6 +137,7 @@
|
|
|
131
137
|
owasp-ai-top-10:
|
|
132
138
|
- "LLM07: Insecure Plugin Design"
|
|
133
139
|
- "LLM08: Excessive Agency"
|
|
140
|
+
- "LLM06:2025 Excessive Agency"
|
|
134
141
|
nist-ai-rmf:
|
|
135
142
|
- "Map"
|
|
136
143
|
- "Manage"
|
|
@@ -163,6 +170,7 @@
|
|
|
163
170
|
description: "MCP configs that embed tokens, API keys, or other secrets directly in args, env values, or headers create immediate credential-handling and supply-chain review risk."
|
|
164
171
|
severity: critical
|
|
165
172
|
category: mcp-server
|
|
173
|
+
dry-run-support: full
|
|
166
174
|
attack:
|
|
167
175
|
tactics: [TA0006]
|
|
168
176
|
techniques: [T1552]
|
|
@@ -170,6 +178,7 @@
|
|
|
170
178
|
owasp-ai-top-10:
|
|
171
179
|
- "LLM05: Supply Chain Vulnerabilities"
|
|
172
180
|
- "LLM07: Insecure Plugin Design"
|
|
181
|
+
- "LLM03:2025 Supply Chain"
|
|
173
182
|
nist-ai-rmf:
|
|
174
183
|
- "Govern"
|
|
175
184
|
- "Manage"
|
|
@@ -201,13 +210,15 @@
|
|
|
201
210
|
description: "Dynamic client registration combined with a static configured client ID can create confused-deputy style authorization risk in MCP deployments."
|
|
202
211
|
severity: high
|
|
203
212
|
category: mcp-server
|
|
213
|
+
dry-run-support: full
|
|
204
214
|
attack:
|
|
205
|
-
tactics: [
|
|
215
|
+
tactics: [TA0006]
|
|
206
216
|
techniques: [T1528]
|
|
207
217
|
standards:
|
|
208
218
|
owasp-ai-top-10:
|
|
209
219
|
- "LLM07: Insecure Plugin Design"
|
|
210
220
|
- "LLM08: Excessive Agency"
|
|
221
|
+
- "LLM06:2025 Excessive Agency"
|
|
211
222
|
nist-ai-rmf:
|
|
212
223
|
- "Govern"
|
|
213
224
|
- "Map"
|
|
@@ -238,6 +249,7 @@
|
|
|
238
249
|
description: "Token-forwarding and passthrough settings in MCP configs deserve review because they can propagate delegated credentials across trust boundaries."
|
|
239
250
|
severity: high
|
|
240
251
|
category: mcp-server
|
|
252
|
+
dry-run-support: full
|
|
241
253
|
attack:
|
|
242
254
|
tactics: [TA0006]
|
|
243
255
|
techniques: [T1528]
|
|
@@ -245,6 +257,7 @@
|
|
|
245
257
|
owasp-ai-top-10:
|
|
246
258
|
- "LLM07: Insecure Plugin Design"
|
|
247
259
|
- "LLM08: Excessive Agency"
|
|
260
|
+
- "LLM06:2025 Excessive Agency"
|
|
248
261
|
nist-ai-rmf:
|
|
249
262
|
- "Govern"
|
|
250
263
|
- "Manage"
|
|
@@ -275,10 +288,12 @@
|
|
|
275
288
|
description: "Committed MCP client configuration files can carry trust, auth, and distribution sensitivity even when they are not actively used during the current scan."
|
|
276
289
|
severity: medium
|
|
277
290
|
category: mcp-server
|
|
291
|
+
dry-run-support: full
|
|
278
292
|
standards:
|
|
279
293
|
owasp-ai-top-10:
|
|
280
294
|
- "LLM07: Insecure Plugin Design"
|
|
281
295
|
- "LLM08: Excessive Agency"
|
|
296
|
+
- "LLM06:2025 Excessive Agency"
|
|
282
297
|
nist-ai-rmf:
|
|
283
298
|
- "Govern"
|
|
284
299
|
- "Map"
|