@cdxgen/cdxgen 0.0.1 → 13.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.
Files changed (722) hide show
  1. package/README.md +921 -87
  2. package/bin/audit.js +239 -0
  3. package/bin/cdxgen.js +2324 -0
  4. package/bin/convert.js +213 -0
  5. package/bin/evinse.js +353 -0
  6. package/bin/hbom.js +495 -0
  7. package/bin/repl.js +2224 -0
  8. package/bin/sign.js +195 -0
  9. package/bin/tracebom.js +295 -0
  10. package/bin/validate.js +268 -0
  11. package/bin/verify.js +189 -0
  12. package/data/README.md +307 -0
  13. package/data/bom-1.4.schema.json +1605 -0
  14. package/data/bom-1.5.schema.json +3660 -0
  15. package/data/bom-1.6.schema.json +5511 -0
  16. package/data/bom-1.7.schema.json +6700 -0
  17. package/data/cbomosdb-queries.json +68 -0
  18. package/data/component-tags.json +339 -0
  19. package/data/container-knowledge-index.json +125 -0
  20. package/data/cosdb-queries.json +17 -0
  21. package/data/crypto-oid.json +1998 -0
  22. package/data/cryptography-defs.json +3793 -0
  23. package/data/cryptography-defs.schema.json +576 -0
  24. package/data/cyclonedx-2.0-bundled.schema.json +7182 -0
  25. package/data/frameworks-list.json +219 -0
  26. package/data/glibc-stdlib.json +117 -0
  27. package/data/gtfobins-index.json +6296 -0
  28. package/data/helpers/init.gradle +71 -0
  29. package/data/jsf-0.82.schema.json +211 -0
  30. package/data/known-licenses.json +82 -0
  31. package/data/lic-mapping.json +338 -0
  32. package/data/license-aliases.json +6624 -0
  33. package/data/license-db.json +39059 -0
  34. package/data/license-deprecations.json +302 -0
  35. package/data/lolbas-index.json +150 -0
  36. package/data/predictive-audit-allowlist.json +11 -0
  37. package/data/pypi-pkg-aliases.json +1199 -0
  38. package/data/python-stdlib.json +308 -0
  39. package/data/queries-darwin.json +193 -0
  40. package/data/queries-win.json +257 -0
  41. package/data/queries.json +268 -0
  42. package/data/ruby-known-modules.json +281 -0
  43. package/data/rules/ai-agent-governance.yaml +323 -0
  44. package/data/rules/ai-bom.yaml +268 -0
  45. package/data/rules/ai-oversight.yaml +186 -0
  46. package/data/rules/ai-provenance.yaml +92 -0
  47. package/data/rules/asar-archives.yaml +150 -0
  48. package/data/rules/cbom-security.yaml +165 -0
  49. package/data/rules/chrome-extensions.yaml +248 -0
  50. package/data/rules/ci-permissions.yaml +802 -0
  51. package/data/rules/container-risk.yaml +353 -0
  52. package/data/rules/dependency-sources.yaml +236 -0
  53. package/data/rules/golem-go.yaml +229 -0
  54. package/data/rules/hbom-compliance.yaml +325 -0
  55. package/data/rules/hbom-performance.yaml +307 -0
  56. package/data/rules/hbom-security.yaml +248 -0
  57. package/data/rules/host-topology.yaml +165 -0
  58. package/data/rules/mcp-servers.yaml +388 -0
  59. package/data/rules/obom-runtime.yaml +1776 -0
  60. package/data/rules/package-integrity.yaml +364 -0
  61. package/data/rules/rootfs-hardening.yaml +179 -0
  62. package/data/rules/vscode-extensions.yaml +237 -0
  63. package/data/spdx-export.schema.json +6794 -0
  64. package/data/spdx-license-list.json +7449 -0
  65. package/data/spdx-licenses.json +759 -0
  66. package/data/spdx.schema.json +819 -0
  67. package/data/templates/README.md +3 -0
  68. package/data/templates/asvs-4.0.3.cdx.json +2943 -0
  69. package/data/templates/asvs-5.0.cdx.json +3046 -0
  70. package/data/templates/bsimm-v13.cdx.json +1008 -0
  71. package/data/templates/masvs-2.0.0.cdx.json +225 -0
  72. package/data/templates/nist-ssdf-1.1.cdx.json +828 -0
  73. package/data/templates/pcissc-secure-slc-1.1.cdx.json +1027 -0
  74. package/data/templates/scvs-1.0.0.cdx.json +813 -0
  75. package/data/templates/ssaf-DRAFT-2023-11.cdx.json +127 -0
  76. package/data/vendor-alias.json +41967 -0
  77. package/data/wrapdb-releases.json +4227 -0
  78. package/index.cjs +15 -0
  79. package/lib/audit/index.js +2800 -0
  80. package/lib/audit/progress.js +114 -0
  81. package/lib/audit/reporters.js +937 -0
  82. package/lib/audit/scoring.js +560 -0
  83. package/lib/audit/targets.js +798 -0
  84. package/lib/cli/bomAssembly.js +1833 -0
  85. package/lib/cli/cliOptions.js +513 -0
  86. package/lib/cli/index.js +2759 -0
  87. package/lib/cli/jsBom.js +2087 -0
  88. package/lib/cli/jvmBom.js +1858 -0
  89. package/lib/cli/managedBom.js +2083 -0
  90. package/lib/cli/nativeBom.js +2125 -0
  91. package/lib/core/activity.js +1087 -0
  92. package/lib/core/env.js +719 -0
  93. package/lib/core/fs.js +1058 -0
  94. package/lib/core/httpClient.js +730 -0
  95. package/lib/core/logger.js +142 -0
  96. package/lib/core/parallel.js +323 -0
  97. package/lib/core/paths.js +70 -0
  98. package/lib/core/projectConfig.js +122 -0
  99. package/lib/core/propertySanitizer.js +174 -0
  100. package/lib/core/spdx.js +5 -0
  101. package/lib/core/state.js +59 -0
  102. package/lib/core/text.js +207 -0
  103. package/lib/core/ui.js +876 -0
  104. package/lib/core/urls.js +84 -0
  105. package/lib/ecosystems/asarutils.js +1636 -0
  106. package/lib/ecosystems/bunutils.js +402 -0
  107. package/lib/ecosystems/caxa.js +77 -0
  108. package/lib/ecosystems/chromextutils.js +1174 -0
  109. package/lib/ecosystems/cmakeResolver.js +587 -0
  110. package/lib/ecosystems/cppEvidence.js +305 -0
  111. package/lib/ecosystems/denoutils.js +1094 -0
  112. package/lib/ecosystems/dotnetutils.js +132 -0
  113. package/lib/ecosystems/ecosystems.js +2772 -0
  114. package/lib/ecosystems/golem.js +1807 -0
  115. package/lib/ecosystems/gradleutils.js +1048 -0
  116. package/lib/ecosystems/jsEvidence.js +317 -0
  117. package/lib/ecosystems/npmutils.js +586 -0
  118. package/lib/ecosystems/parsers-bazel.js +875 -0
  119. package/lib/ecosystems/parsers-dotnet.js +1430 -0
  120. package/lib/ecosystems/parsers-gleam.js +302 -0
  121. package/lib/ecosystems/parsers-go.js +818 -0
  122. package/lib/ecosystems/parsers-js.js +4222 -0
  123. package/lib/ecosystems/parsers-jvm.js +948 -0
  124. package/lib/ecosystems/parsers-misc.js +3191 -0
  125. package/lib/ecosystems/parsers-python.js +2070 -0
  126. package/lib/ecosystems/parsers-rust.js +1294 -0
  127. package/lib/ecosystems/parsers-zig.js +861 -0
  128. package/lib/ecosystems/pep770.js +341 -0
  129. package/lib/ecosystems/pylockutils.js +427 -0
  130. package/lib/ecosystems/pythonutils.js +1281 -0
  131. package/lib/ecosystems/registryProvenance.js +1003 -0
  132. package/lib/ecosystems/remote/huggingface.js +1343 -0
  133. package/lib/ecosystems/rubyutils.js +1629 -0
  134. package/lib/ecosystems/rusi.js +820 -0
  135. package/lib/ecosystems/sbtutils.js +972 -0
  136. package/lib/ecosystems/tea.js +607 -0
  137. package/lib/ecosystems/utils.js +575 -0
  138. package/lib/ecosystems/zigResolver.js +410 -0
  139. package/lib/evinser/db.js +145 -0
  140. package/lib/evinser/evinser.js +2362 -0
  141. package/lib/evinser/scalasem.js +65 -0
  142. package/lib/evinser/swiftsem.js +767 -0
  143. package/lib/helpers/annotationFormatter.js +84 -0
  144. package/lib/helpers/bomSigner.js +312 -0
  145. package/lib/helpers/exportUtils.js +160 -0
  146. package/lib/helpers/remote/dependency-track.js +117 -0
  147. package/lib/helpers/versutils.js +202 -0
  148. package/lib/helpers/vsixutils.js +1069 -0
  149. package/lib/inventory/agentFormulationParser.js +322 -0
  150. package/lib/inventory/aiCollector.js +2140 -0
  151. package/lib/inventory/aiInventory.js +414 -0
  152. package/lib/inventory/aiModelVariants.js +121 -0
  153. package/lib/inventory/aiOversightCollector.js +661 -0
  154. package/lib/inventory/aiProvenanceCollector.js +822 -0
  155. package/lib/inventory/analyzer.js +6089 -0
  156. package/lib/inventory/analyzerScope.js +807 -0
  157. package/lib/inventory/astWorker.js +20 -0
  158. package/lib/inventory/atomUtils.js +1092 -0
  159. package/lib/inventory/auditCategories.js +192 -0
  160. package/lib/inventory/bomUtils.js +369 -0
  161. package/lib/inventory/cacheCommands.js +182 -0
  162. package/lib/inventory/cacheDir.js +104 -0
  163. package/lib/inventory/cbomutils.js +590 -0
  164. package/lib/inventory/cdxrs.js +434 -0
  165. package/lib/inventory/ciParsers/azurePipelines.js +295 -0
  166. package/lib/inventory/ciParsers/circleCi.js +286 -0
  167. package/lib/inventory/ciParsers/common.js +24 -0
  168. package/lib/inventory/ciParsers/githubActions.js +2434 -0
  169. package/lib/inventory/ciParsers/gitlabCi.js +213 -0
  170. package/lib/inventory/ciParsers/jenkins.js +180 -0
  171. package/lib/inventory/citations.js +234 -0
  172. package/lib/inventory/communityAiConfigParser.js +756 -0
  173. package/lib/inventory/containerRisk.js +204 -0
  174. package/lib/inventory/cryptoAlgorithmFamily.js +258 -0
  175. package/lib/inventory/deps.js +807 -0
  176. package/lib/inventory/depsUtils.js +588 -0
  177. package/lib/inventory/display.js +2128 -0
  178. package/lib/inventory/dosai.js +601 -0
  179. package/lib/inventory/dosaiParsers.js +154 -0
  180. package/lib/inventory/dynamic.js +145 -0
  181. package/lib/inventory/envcontext.js +1789 -0
  182. package/lib/inventory/evidenceUtils.js +774 -0
  183. package/lib/inventory/fetchBatch.js +779 -0
  184. package/lib/inventory/fetchRate.js +255 -0
  185. package/lib/inventory/forgeEnricher.js +300 -0
  186. package/lib/inventory/formulationParsers.js +422 -0
  187. package/lib/inventory/gtfobins.js +339 -0
  188. package/lib/inventory/hbom.js +719 -0
  189. package/lib/inventory/hbomAnalysis.js +310 -0
  190. package/lib/inventory/hbomLoader.js +35 -0
  191. package/lib/inventory/hostTopology.js +835 -0
  192. package/lib/inventory/inventoryStats.js +100 -0
  193. package/lib/inventory/jsonLike.js +121 -0
  194. package/lib/inventory/licenseEnhancer.js +918 -0
  195. package/lib/inventory/lolbas.js +285 -0
  196. package/lib/inventory/mcp.js +253 -0
  197. package/lib/inventory/mcpConfigParser.js +683 -0
  198. package/lib/inventory/mcpDiscovery.js +112 -0
  199. package/lib/inventory/mcpPinning.js +209 -0
  200. package/lib/inventory/osPackageResolver.js +493 -0
  201. package/lib/inventory/osinfo.js +277 -0
  202. package/lib/inventory/osqueryTransform.js +274 -0
  203. package/lib/inventory/plugins.js +466 -0
  204. package/lib/inventory/protobom.js +231 -0
  205. package/lib/inventory/protobomLoader.js +43 -0
  206. package/lib/inventory/provenanceUtils.js +224 -0
  207. package/lib/inventory/purl.js +749 -0
  208. package/lib/inventory/rustFormulationParser.js +339 -0
  209. package/lib/inventory/sbomDocument.js +340 -0
  210. package/lib/inventory/source.js +1488 -0
  211. package/lib/inventory/spdx.js +361 -0
  212. package/lib/inventory/spdxExpression.js +512 -0
  213. package/lib/inventory/spdxUtils.js +107 -0
  214. package/lib/inventory/table.js +263 -0
  215. package/lib/inventory/traceRunner.js +439 -0
  216. package/lib/inventory/unicodeScan.js +147 -0
  217. package/lib/managers/binary.js +3307 -0
  218. package/lib/managers/containerutils.js +125 -0
  219. package/lib/managers/docker.js +2145 -0
  220. package/lib/managers/dockerConnection.js +162 -0
  221. package/lib/managers/oci.js +704 -0
  222. package/lib/managers/piptree.js +267 -0
  223. package/lib/parsers/cmakeCache.js +199 -0
  224. package/lib/parsers/gguf.js +492 -0
  225. package/lib/parsers/gitAiNotes.js +233 -0
  226. package/lib/parsers/gitmodules.js +239 -0
  227. package/lib/parsers/htmlExtract.js +610 -0
  228. package/lib/parsers/huggingfaceManifest.js +551 -0
  229. package/lib/parsers/huggingfaceUtils.js +506 -0
  230. package/lib/parsers/iri.js +618 -0
  231. package/lib/parsers/npmrc.js +99 -0
  232. package/lib/parsers/ollama.js +101 -0
  233. package/lib/parsers/xml.js +841 -0
  234. package/lib/server/openapi.yaml +433 -0
  235. package/lib/server/server.js +616 -0
  236. package/lib/stages/postgen/annotator.js +977 -0
  237. package/lib/stages/postgen/auditBom.js +468 -0
  238. package/lib/stages/postgen/postgen.js +1239 -0
  239. package/lib/stages/postgen/ruleEngine.js +731 -0
  240. package/lib/stages/postgen/sortBom.js +195 -0
  241. package/lib/stages/postgen/spdxConverter.js +796 -0
  242. package/lib/stages/postgen/specVersionCompat.js +703 -0
  243. package/lib/stages/pregen/envAudit.js +388 -0
  244. package/lib/stages/pregen/pregen.js +637 -0
  245. package/lib/third-party/README.md +9 -0
  246. package/lib/third-party/arborist/CHANGELOG.md +1109 -0
  247. package/lib/third-party/arborist/LICENSE.md +20 -0
  248. package/lib/third-party/arborist/README.md +315 -0
  249. package/lib/third-party/arborist/lib/arborist/index.js +258 -0
  250. package/lib/third-party/arborist/lib/arborist/load-actual.js +605 -0
  251. package/lib/third-party/arborist/lib/arborist/load-virtual.js +300 -0
  252. package/lib/third-party/arborist/lib/bin-links.js +120 -0
  253. package/lib/third-party/arborist/lib/calc-dep-flags.js +130 -0
  254. package/lib/third-party/arborist/lib/case-insensitive-map.js +51 -0
  255. package/lib/third-party/arborist/lib/consistent-resolve.js +42 -0
  256. package/lib/third-party/arborist/lib/debug.js +50 -0
  257. package/lib/third-party/arborist/lib/dep-valid.js +190 -0
  258. package/lib/third-party/arborist/lib/edge.js +417 -0
  259. package/lib/third-party/arborist/lib/from-path.js +36 -0
  260. package/lib/third-party/arborist/lib/gather-dep-set.js +43 -0
  261. package/lib/third-party/arborist/lib/index.js +22 -0
  262. package/lib/third-party/arborist/lib/inventory.js +138 -0
  263. package/lib/third-party/arborist/lib/link.js +169 -0
  264. package/lib/third-party/arborist/lib/node.js +1673 -0
  265. package/lib/third-party/arborist/lib/npm-extension.js +45 -0
  266. package/lib/third-party/arborist/lib/override-resolves.js +11 -0
  267. package/lib/third-party/arborist/lib/override-set.js +319 -0
  268. package/lib/third-party/arborist/lib/package-extensions.js +289 -0
  269. package/lib/third-party/arborist/lib/printable.js +210 -0
  270. package/lib/third-party/arborist/lib/proc-log.js +30 -0
  271. package/lib/third-party/arborist/lib/realpath.js +100 -0
  272. package/lib/third-party/arborist/lib/relpath.js +4 -0
  273. package/lib/third-party/arborist/lib/shrinkwrap.js +1291 -0
  274. package/lib/third-party/arborist/lib/spec-from-lock.js +34 -0
  275. package/lib/third-party/arborist/lib/tree-check.js +165 -0
  276. package/lib/third-party/arborist/lib/validate-npm-package-name.js +107 -0
  277. package/lib/third-party/arborist/lib/version-from-tgz.js +51 -0
  278. package/lib/third-party/arborist/lib/yarn-lock.js +397 -0
  279. package/lib/validator/bomValidator.js +985 -0
  280. package/lib/validator/complianceEngine.js +241 -0
  281. package/lib/validator/complianceRules.js +1680 -0
  282. package/lib/validator/generated/runtime.mjs +17 -0
  283. package/lib/validator/generated/validate-1.6.mjs +21258 -0
  284. package/lib/validator/generated/validate-1.7.mjs +24803 -0
  285. package/lib/validator/generated/validate-2.0.mjs +22931 -0
  286. package/lib/validator/index.js +246 -0
  287. package/lib/validator/reporters/annotations.js +142 -0
  288. package/lib/validator/reporters/console.js +160 -0
  289. package/lib/validator/reporters/index.js +41 -0
  290. package/lib/validator/reporters/json.js +37 -0
  291. package/lib/validator/reporters/sarif.js +184 -0
  292. package/package.json +209 -26
  293. package/types/bin/audit.d.ts +3 -0
  294. package/types/bin/audit.d.ts.map +1 -0
  295. package/types/bin/cdxgen.d.ts +3 -0
  296. package/types/bin/cdxgen.d.ts.map +1 -0
  297. package/types/bin/convert.d.ts +3 -0
  298. package/types/bin/convert.d.ts.map +1 -0
  299. package/types/bin/evinse.d.ts +3 -0
  300. package/types/bin/evinse.d.ts.map +1 -0
  301. package/types/bin/hbom.d.ts +3 -0
  302. package/types/bin/hbom.d.ts.map +1 -0
  303. package/types/bin/repl.d.ts +3 -0
  304. package/types/bin/repl.d.ts.map +1 -0
  305. package/types/bin/sign.d.ts +3 -0
  306. package/types/bin/sign.d.ts.map +1 -0
  307. package/types/bin/tracebom.d.ts +3 -0
  308. package/types/bin/tracebom.d.ts.map +1 -0
  309. package/types/bin/validate.d.ts +14 -0
  310. package/types/bin/validate.d.ts.map +1 -0
  311. package/types/bin/verify.d.ts +3 -0
  312. package/types/bin/verify.d.ts.map +1 -0
  313. package/types/lib/audit/index.d.ts +153 -0
  314. package/types/lib/audit/index.d.ts.map +1 -0
  315. package/types/lib/audit/progress.d.ts +31 -0
  316. package/types/lib/audit/progress.d.ts.map +1 -0
  317. package/types/lib/audit/reporters.d.ts +62 -0
  318. package/types/lib/audit/reporters.d.ts.map +1 -0
  319. package/types/lib/audit/scoring.d.ts +36 -0
  320. package/types/lib/audit/scoring.d.ts.map +1 -0
  321. package/types/lib/audit/targets.d.ts +77 -0
  322. package/types/lib/audit/targets.d.ts.map +1 -0
  323. package/types/lib/cli/bomAssembly.d.ts +315 -0
  324. package/types/lib/cli/bomAssembly.d.ts.map +1 -0
  325. package/types/lib/cli/cliOptions.d.ts +156 -0
  326. package/types/lib/cli/cliOptions.d.ts.map +1 -0
  327. package/types/lib/cli/index.d.ts +107 -0
  328. package/types/lib/cli/index.d.ts.map +1 -0
  329. package/types/lib/cli/jsBom.d.ts +94 -0
  330. package/types/lib/cli/jsBom.d.ts.map +1 -0
  331. package/types/lib/cli/jvmBom.d.ts +54 -0
  332. package/types/lib/cli/jvmBom.d.ts.map +1 -0
  333. package/types/lib/cli/managedBom.d.ts +105 -0
  334. package/types/lib/cli/managedBom.d.ts.map +1 -0
  335. package/types/lib/cli/nativeBom.d.ts +143 -0
  336. package/types/lib/cli/nativeBom.d.ts.map +1 -0
  337. package/types/lib/core/activity.d.ts +178 -0
  338. package/types/lib/core/activity.d.ts.map +1 -0
  339. package/types/lib/core/env.d.ts +192 -0
  340. package/types/lib/core/env.d.ts.map +1 -0
  341. package/types/lib/core/fs.d.ts +158 -0
  342. package/types/lib/core/fs.d.ts.map +1 -0
  343. package/types/lib/core/httpClient.d.ts +149 -0
  344. package/types/lib/core/httpClient.d.ts.map +1 -0
  345. package/types/lib/core/logger.d.ts +28 -0
  346. package/types/lib/core/logger.d.ts.map +1 -0
  347. package/types/lib/core/parallel.d.ts +95 -0
  348. package/types/lib/core/parallel.d.ts.map +1 -0
  349. package/types/lib/core/paths.d.ts +36 -0
  350. package/types/lib/core/paths.d.ts.map +1 -0
  351. package/types/lib/core/projectConfig.d.ts +23 -0
  352. package/types/lib/core/projectConfig.d.ts.map +1 -0
  353. package/types/lib/core/propertySanitizer.d.ts +23 -0
  354. package/types/lib/core/propertySanitizer.d.ts.map +1 -0
  355. package/types/lib/core/spdx.d.ts +5 -0
  356. package/types/lib/core/spdx.d.ts.map +1 -0
  357. package/types/lib/core/state.d.ts +20 -0
  358. package/types/lib/core/state.d.ts.map +1 -0
  359. package/types/lib/core/text.d.ts +78 -0
  360. package/types/lib/core/text.d.ts.map +1 -0
  361. package/types/lib/core/ui.d.ts +87 -0
  362. package/types/lib/core/ui.d.ts.map +1 -0
  363. package/types/lib/core/urls.d.ts +43 -0
  364. package/types/lib/core/urls.d.ts.map +1 -0
  365. package/types/lib/ecosystems/asarutils.d.ts +71 -0
  366. package/types/lib/ecosystems/asarutils.d.ts.map +1 -0
  367. package/types/lib/ecosystems/bunutils.d.ts +38 -0
  368. package/types/lib/ecosystems/bunutils.d.ts.map +1 -0
  369. package/types/lib/ecosystems/caxa.d.ts +8 -0
  370. package/types/lib/ecosystems/caxa.d.ts.map +1 -0
  371. package/types/lib/ecosystems/chromextutils.d.ts +97 -0
  372. package/types/lib/ecosystems/chromextutils.d.ts.map +1 -0
  373. package/types/lib/ecosystems/cmakeResolver.d.ts +176 -0
  374. package/types/lib/ecosystems/cmakeResolver.d.ts.map +1 -0
  375. package/types/lib/ecosystems/cppEvidence.d.ts +35 -0
  376. package/types/lib/ecosystems/cppEvidence.d.ts.map +1 -0
  377. package/types/lib/ecosystems/denoutils.d.ts +76 -0
  378. package/types/lib/ecosystems/denoutils.d.ts.map +1 -0
  379. package/types/lib/ecosystems/dotnetutils.d.ts +45 -0
  380. package/types/lib/ecosystems/dotnetutils.d.ts.map +1 -0
  381. package/types/lib/ecosystems/ecosystems.d.ts +279 -0
  382. package/types/lib/ecosystems/ecosystems.d.ts.map +1 -0
  383. package/types/lib/ecosystems/golem.d.ts +60 -0
  384. package/types/lib/ecosystems/golem.d.ts.map +1 -0
  385. package/types/lib/ecosystems/gradleutils.d.ts +139 -0
  386. package/types/lib/ecosystems/gradleutils.d.ts.map +1 -0
  387. package/types/lib/ecosystems/jsEvidence.d.ts +17 -0
  388. package/types/lib/ecosystems/jsEvidence.d.ts.map +1 -0
  389. package/types/lib/ecosystems/npmutils.d.ts +183 -0
  390. package/types/lib/ecosystems/npmutils.d.ts.map +1 -0
  391. package/types/lib/ecosystems/parsers-bazel.d.ts +36 -0
  392. package/types/lib/ecosystems/parsers-bazel.d.ts.map +1 -0
  393. package/types/lib/ecosystems/parsers-dotnet.d.ts +116 -0
  394. package/types/lib/ecosystems/parsers-dotnet.d.ts.map +1 -0
  395. package/types/lib/ecosystems/parsers-gleam.d.ts +33 -0
  396. package/types/lib/ecosystems/parsers-gleam.d.ts.map +1 -0
  397. package/types/lib/ecosystems/parsers-go.d.ts +92 -0
  398. package/types/lib/ecosystems/parsers-go.d.ts.map +1 -0
  399. package/types/lib/ecosystems/parsers-js.d.ts +242 -0
  400. package/types/lib/ecosystems/parsers-js.d.ts.map +1 -0
  401. package/types/lib/ecosystems/parsers-jvm.d.ts +100 -0
  402. package/types/lib/ecosystems/parsers-jvm.d.ts.map +1 -0
  403. package/types/lib/ecosystems/parsers-misc.d.ts +450 -0
  404. package/types/lib/ecosystems/parsers-misc.d.ts.map +1 -0
  405. package/types/lib/ecosystems/parsers-python.d.ts +145 -0
  406. package/types/lib/ecosystems/parsers-python.d.ts.map +1 -0
  407. package/types/lib/ecosystems/parsers-rust.d.ts +56 -0
  408. package/types/lib/ecosystems/parsers-rust.d.ts.map +1 -0
  409. package/types/lib/ecosystems/parsers-zig.d.ts +83 -0
  410. package/types/lib/ecosystems/parsers-zig.d.ts.map +1 -0
  411. package/types/lib/ecosystems/pep770.d.ts +38 -0
  412. package/types/lib/ecosystems/pep770.d.ts.map +1 -0
  413. package/types/lib/ecosystems/pylockutils.d.ts +68 -0
  414. package/types/lib/ecosystems/pylockutils.d.ts.map +1 -0
  415. package/types/lib/ecosystems/pythonutils.d.ts +70 -0
  416. package/types/lib/ecosystems/pythonutils.d.ts.map +1 -0
  417. package/types/lib/ecosystems/registryProvenance.d.ts +26 -0
  418. package/types/lib/ecosystems/registryProvenance.d.ts.map +1 -0
  419. package/types/lib/ecosystems/remote/huggingface.d.ts +31 -0
  420. package/types/lib/ecosystems/remote/huggingface.d.ts.map +1 -0
  421. package/types/lib/ecosystems/rubyutils.d.ts +182 -0
  422. package/types/lib/ecosystems/rubyutils.d.ts.map +1 -0
  423. package/types/lib/ecosystems/rusi.d.ts +40 -0
  424. package/types/lib/ecosystems/rusi.d.ts.map +1 -0
  425. package/types/lib/ecosystems/sbtutils.d.ts +179 -0
  426. package/types/lib/ecosystems/sbtutils.d.ts.map +1 -0
  427. package/types/lib/ecosystems/tea.d.ts +180 -0
  428. package/types/lib/ecosystems/tea.d.ts.map +1 -0
  429. package/types/lib/ecosystems/utils.d.ts +41 -0
  430. package/types/lib/ecosystems/utils.d.ts.map +1 -0
  431. package/types/lib/ecosystems/zigResolver.d.ts +70 -0
  432. package/types/lib/ecosystems/zigResolver.d.ts.map +1 -0
  433. package/types/lib/evinser/db.d.ts +17 -0
  434. package/types/lib/evinser/db.d.ts.map +1 -0
  435. package/types/lib/evinser/evinser.d.ts +354 -0
  436. package/types/lib/evinser/evinser.d.ts.map +1 -0
  437. package/types/lib/evinser/scalasem.d.ts +15 -0
  438. package/types/lib/evinser/scalasem.d.ts.map +1 -0
  439. package/types/lib/evinser/swiftsem.d.ts +103 -0
  440. package/types/lib/evinser/swiftsem.d.ts.map +1 -0
  441. package/types/lib/helpers/annotationFormatter.d.ts +23 -0
  442. package/types/lib/helpers/annotationFormatter.d.ts.map +1 -0
  443. package/types/lib/helpers/bomSigner.d.ts +28 -0
  444. package/types/lib/helpers/bomSigner.d.ts.map +1 -0
  445. package/types/lib/helpers/exportUtils.d.ts +52 -0
  446. package/types/lib/helpers/exportUtils.d.ts.map +1 -0
  447. package/types/lib/helpers/remote/dependency-track.d.ts +23 -0
  448. package/types/lib/helpers/remote/dependency-track.d.ts.map +1 -0
  449. package/types/lib/helpers/versutils.d.ts +8 -0
  450. package/types/lib/helpers/versutils.d.ts.map +1 -0
  451. package/types/lib/helpers/vsixutils.d.ts +130 -0
  452. package/types/lib/helpers/vsixutils.d.ts.map +1 -0
  453. package/types/lib/inventory/agentFormulationParser.d.ts +21 -0
  454. package/types/lib/inventory/agentFormulationParser.d.ts.map +1 -0
  455. package/types/lib/inventory/aiCollector.d.ts +61 -0
  456. package/types/lib/inventory/aiCollector.d.ts.map +1 -0
  457. package/types/lib/inventory/aiInventory.d.ts +103 -0
  458. package/types/lib/inventory/aiInventory.d.ts.map +1 -0
  459. package/types/lib/inventory/aiModelVariants.d.ts +31 -0
  460. package/types/lib/inventory/aiModelVariants.d.ts.map +1 -0
  461. package/types/lib/inventory/aiOversightCollector.d.ts +28 -0
  462. package/types/lib/inventory/aiOversightCollector.d.ts.map +1 -0
  463. package/types/lib/inventory/aiProvenanceCollector.d.ts +13 -0
  464. package/types/lib/inventory/aiProvenanceCollector.d.ts.map +1 -0
  465. package/types/lib/inventory/analyzer.d.ts +157 -0
  466. package/types/lib/inventory/analyzer.d.ts.map +1 -0
  467. package/types/lib/inventory/analyzerScope.d.ts +106 -0
  468. package/types/lib/inventory/analyzerScope.d.ts.map +1 -0
  469. package/types/lib/inventory/astWorker.d.ts +9 -0
  470. package/types/lib/inventory/astWorker.d.ts.map +1 -0
  471. package/types/lib/inventory/atomUtils.d.ts +159 -0
  472. package/types/lib/inventory/atomUtils.d.ts.map +1 -0
  473. package/types/lib/inventory/auditCategories.d.ts +80 -0
  474. package/types/lib/inventory/auditCategories.d.ts.map +1 -0
  475. package/types/lib/inventory/bomUtils.d.ts +145 -0
  476. package/types/lib/inventory/bomUtils.d.ts.map +1 -0
  477. package/types/lib/inventory/cacheCommands.d.ts +28 -0
  478. package/types/lib/inventory/cacheCommands.d.ts.map +1 -0
  479. package/types/lib/inventory/cacheDir.d.ts +55 -0
  480. package/types/lib/inventory/cacheDir.d.ts.map +1 -0
  481. package/types/lib/inventory/cbomutils.d.ts +37 -0
  482. package/types/lib/inventory/cbomutils.d.ts.map +1 -0
  483. package/types/lib/inventory/cdxrs.d.ts +90 -0
  484. package/types/lib/inventory/cdxrs.d.ts.map +1 -0
  485. package/types/lib/inventory/ciParsers/azurePipelines.d.ts +27 -0
  486. package/types/lib/inventory/ciParsers/azurePipelines.d.ts.map +1 -0
  487. package/types/lib/inventory/ciParsers/circleCi.d.ts +27 -0
  488. package/types/lib/inventory/ciParsers/circleCi.d.ts.map +1 -0
  489. package/types/lib/inventory/ciParsers/common.d.ts +11 -0
  490. package/types/lib/inventory/ciParsers/common.d.ts.map +1 -0
  491. package/types/lib/inventory/ciParsers/githubActions.d.ts +38 -0
  492. package/types/lib/inventory/ciParsers/githubActions.d.ts.map +1 -0
  493. package/types/lib/inventory/ciParsers/gitlabCi.d.ts +26 -0
  494. package/types/lib/inventory/ciParsers/gitlabCi.d.ts.map +1 -0
  495. package/types/lib/inventory/ciParsers/jenkins.d.ts +26 -0
  496. package/types/lib/inventory/ciParsers/jenkins.d.ts.map +1 -0
  497. package/types/lib/inventory/citations.d.ts +90 -0
  498. package/types/lib/inventory/citations.d.ts.map +1 -0
  499. package/types/lib/inventory/communityAiConfigParser.d.ts +14 -0
  500. package/types/lib/inventory/communityAiConfigParser.d.ts.map +1 -0
  501. package/types/lib/inventory/containerRisk.d.ts +20 -0
  502. package/types/lib/inventory/containerRisk.d.ts.map +1 -0
  503. package/types/lib/inventory/cryptoAlgorithmFamily.d.ts +37 -0
  504. package/types/lib/inventory/cryptoAlgorithmFamily.d.ts.map +1 -0
  505. package/types/lib/inventory/deps.d.ts +140 -0
  506. package/types/lib/inventory/deps.d.ts.map +1 -0
  507. package/types/lib/inventory/depsUtils.d.ts +74 -0
  508. package/types/lib/inventory/depsUtils.d.ts.map +1 -0
  509. package/types/lib/inventory/display.d.ts +227 -0
  510. package/types/lib/inventory/display.d.ts.map +1 -0
  511. package/types/lib/inventory/dosai.d.ts +130 -0
  512. package/types/lib/inventory/dosai.d.ts.map +1 -0
  513. package/types/lib/inventory/dosaiParsers.d.ts +59 -0
  514. package/types/lib/inventory/dosaiParsers.d.ts.map +1 -0
  515. package/types/lib/inventory/dynamic.d.ts +25 -0
  516. package/types/lib/inventory/dynamic.d.ts.map +1 -0
  517. package/types/lib/inventory/envcontext.d.ts +377 -0
  518. package/types/lib/inventory/envcontext.d.ts.map +1 -0
  519. package/types/lib/inventory/evidenceUtils.d.ts +74 -0
  520. package/types/lib/inventory/evidenceUtils.d.ts.map +1 -0
  521. package/types/lib/inventory/fetchBatch.d.ts +127 -0
  522. package/types/lib/inventory/fetchBatch.d.ts.map +1 -0
  523. package/types/lib/inventory/fetchRate.d.ts +118 -0
  524. package/types/lib/inventory/fetchRate.d.ts.map +1 -0
  525. package/types/lib/inventory/forgeEnricher.d.ts +31 -0
  526. package/types/lib/inventory/forgeEnricher.d.ts.map +1 -0
  527. package/types/lib/inventory/formulationParsers.d.ts +50 -0
  528. package/types/lib/inventory/formulationParsers.d.ts.map +1 -0
  529. package/types/lib/inventory/gtfobins.d.ts +27 -0
  530. package/types/lib/inventory/gtfobins.d.ts.map +1 -0
  531. package/types/lib/inventory/hbom.d.ts +58 -0
  532. package/types/lib/inventory/hbom.d.ts.map +1 -0
  533. package/types/lib/inventory/hbomAnalysis.d.ts +56 -0
  534. package/types/lib/inventory/hbomAnalysis.d.ts.map +1 -0
  535. package/types/lib/inventory/hbomLoader.d.ts +7 -0
  536. package/types/lib/inventory/hbomLoader.d.ts.map +1 -0
  537. package/types/lib/inventory/hostTopology.d.ts +47 -0
  538. package/types/lib/inventory/hostTopology.d.ts.map +1 -0
  539. package/types/lib/inventory/inventoryStats.d.ts +42 -0
  540. package/types/lib/inventory/inventoryStats.d.ts.map +1 -0
  541. package/types/lib/inventory/jsonLike.d.ts +23 -0
  542. package/types/lib/inventory/jsonLike.d.ts.map +1 -0
  543. package/types/lib/inventory/licenseEnhancer.d.ts +70 -0
  544. package/types/lib/inventory/licenseEnhancer.d.ts.map +1 -0
  545. package/types/lib/inventory/lolbas.d.ts +16 -0
  546. package/types/lib/inventory/lolbas.d.ts.map +1 -0
  547. package/types/lib/inventory/mcp.d.ts +29 -0
  548. package/types/lib/inventory/mcp.d.ts.map +1 -0
  549. package/types/lib/inventory/mcpConfigParser.d.ts +20 -0
  550. package/types/lib/inventory/mcpConfigParser.d.ts.map +1 -0
  551. package/types/lib/inventory/mcpDiscovery.d.ts +33 -0
  552. package/types/lib/inventory/mcpDiscovery.d.ts.map +1 -0
  553. package/types/lib/inventory/mcpPinning.d.ts +11 -0
  554. package/types/lib/inventory/mcpPinning.d.ts.map +1 -0
  555. package/types/lib/inventory/osPackageResolver.d.ts +49 -0
  556. package/types/lib/inventory/osPackageResolver.d.ts.map +1 -0
  557. package/types/lib/inventory/osinfo.d.ts +120 -0
  558. package/types/lib/inventory/osinfo.d.ts.map +1 -0
  559. package/types/lib/inventory/osqueryTransform.d.ts +84 -0
  560. package/types/lib/inventory/osqueryTransform.d.ts.map +1 -0
  561. package/types/lib/inventory/plugins.d.ts +58 -0
  562. package/types/lib/inventory/plugins.d.ts.map +1 -0
  563. package/types/lib/inventory/protobom.d.ts +71 -0
  564. package/types/lib/inventory/protobom.d.ts.map +1 -0
  565. package/types/lib/inventory/protobomLoader.d.ts +17 -0
  566. package/types/lib/inventory/protobomLoader.d.ts.map +1 -0
  567. package/types/lib/inventory/provenanceUtils.d.ts +98 -0
  568. package/types/lib/inventory/provenanceUtils.d.ts.map +1 -0
  569. package/types/lib/inventory/purl.d.ts +313 -0
  570. package/types/lib/inventory/purl.d.ts.map +1 -0
  571. package/types/lib/inventory/rustFormulationParser.d.ts +17 -0
  572. package/types/lib/inventory/rustFormulationParser.d.ts.map +1 -0
  573. package/types/lib/inventory/sbomDocument.d.ts +59 -0
  574. package/types/lib/inventory/sbomDocument.d.ts.map +1 -0
  575. package/types/lib/inventory/source.d.ts +163 -0
  576. package/types/lib/inventory/source.d.ts.map +1 -0
  577. package/types/lib/inventory/spdx.d.ts +66 -0
  578. package/types/lib/inventory/spdx.d.ts.map +1 -0
  579. package/types/lib/inventory/spdxExpression.d.ts +58 -0
  580. package/types/lib/inventory/spdxExpression.d.ts.map +1 -0
  581. package/types/lib/inventory/spdxUtils.d.ts +12 -0
  582. package/types/lib/inventory/spdxUtils.d.ts.map +1 -0
  583. package/types/lib/inventory/table.d.ts +19 -0
  584. package/types/lib/inventory/table.d.ts.map +1 -0
  585. package/types/lib/inventory/traceRunner.d.ts +80 -0
  586. package/types/lib/inventory/traceRunner.d.ts.map +1 -0
  587. package/types/lib/inventory/unicodeScan.d.ts +46 -0
  588. package/types/lib/inventory/unicodeScan.d.ts.map +1 -0
  589. package/types/lib/managers/binary.d.ts +76 -0
  590. package/types/lib/managers/binary.d.ts.map +1 -0
  591. package/types/lib/managers/containerutils.d.ts +30 -0
  592. package/types/lib/managers/containerutils.d.ts.map +1 -0
  593. package/types/lib/managers/docker.d.ts +157 -0
  594. package/types/lib/managers/docker.d.ts.map +1 -0
  595. package/types/lib/managers/dockerConnection.d.ts +42 -0
  596. package/types/lib/managers/dockerConnection.d.ts.map +1 -0
  597. package/types/lib/managers/oci.d.ts +21 -0
  598. package/types/lib/managers/oci.d.ts.map +1 -0
  599. package/types/lib/managers/piptree.d.ts +13 -0
  600. package/types/lib/managers/piptree.d.ts.map +1 -0
  601. package/types/lib/parsers/cmakeCache.d.ts +70 -0
  602. package/types/lib/parsers/cmakeCache.d.ts.map +1 -0
  603. package/types/lib/parsers/gguf.d.ts +39 -0
  604. package/types/lib/parsers/gguf.d.ts.map +1 -0
  605. package/types/lib/parsers/gitAiNotes.d.ts +15 -0
  606. package/types/lib/parsers/gitAiNotes.d.ts.map +1 -0
  607. package/types/lib/parsers/gitmodules.d.ts +88 -0
  608. package/types/lib/parsers/gitmodules.d.ts.map +1 -0
  609. package/types/lib/parsers/htmlExtract.d.ts +34 -0
  610. package/types/lib/parsers/htmlExtract.d.ts.map +1 -0
  611. package/types/lib/parsers/huggingfaceManifest.d.ts +153 -0
  612. package/types/lib/parsers/huggingfaceManifest.d.ts.map +1 -0
  613. package/types/lib/parsers/huggingfaceUtils.d.ts +155 -0
  614. package/types/lib/parsers/huggingfaceUtils.d.ts.map +1 -0
  615. package/types/lib/parsers/iri.d.ts +68 -0
  616. package/types/lib/parsers/iri.d.ts.map +1 -0
  617. package/types/lib/parsers/npmrc.d.ts +33 -0
  618. package/types/lib/parsers/npmrc.d.ts.map +1 -0
  619. package/types/lib/parsers/ollama.d.ts +22 -0
  620. package/types/lib/parsers/ollama.d.ts.map +1 -0
  621. package/types/lib/parsers/xml.d.ts +47 -0
  622. package/types/lib/parsers/xml.d.ts.map +1 -0
  623. package/types/lib/server/server.d.ts +51 -0
  624. package/types/lib/server/server.d.ts.map +1 -0
  625. package/types/lib/stages/postgen/annotator.d.ts +36 -0
  626. package/types/lib/stages/postgen/annotator.d.ts.map +1 -0
  627. package/types/lib/stages/postgen/auditBom.d.ts +92 -0
  628. package/types/lib/stages/postgen/auditBom.d.ts.map +1 -0
  629. package/types/lib/stages/postgen/postgen.d.ts +59 -0
  630. package/types/lib/stages/postgen/postgen.d.ts.map +1 -0
  631. package/types/lib/stages/postgen/ruleEngine.d.ts +18 -0
  632. package/types/lib/stages/postgen/ruleEngine.d.ts.map +1 -0
  633. package/types/lib/stages/postgen/sortBom.d.ts +34 -0
  634. package/types/lib/stages/postgen/sortBom.d.ts.map +1 -0
  635. package/types/lib/stages/postgen/spdxConverter.d.ts +11 -0
  636. package/types/lib/stages/postgen/spdxConverter.d.ts.map +1 -0
  637. package/types/lib/stages/postgen/specVersionCompat.d.ts +71 -0
  638. package/types/lib/stages/postgen/specVersionCompat.d.ts.map +1 -0
  639. package/types/lib/stages/pregen/envAudit.d.ts +14 -0
  640. package/types/lib/stages/pregen/envAudit.d.ts.map +1 -0
  641. package/types/lib/stages/pregen/pregen.d.ts +59 -0
  642. package/types/lib/stages/pregen/pregen.d.ts.map +1 -0
  643. package/types/lib/third-party/arborist/lib/arborist/index.d.ts +47 -0
  644. package/types/lib/third-party/arborist/lib/arborist/index.d.ts.map +1 -0
  645. package/types/lib/third-party/arborist/lib/arborist/load-actual.d.ts +4 -0
  646. package/types/lib/third-party/arborist/lib/arborist/load-actual.d.ts.map +1 -0
  647. package/types/lib/third-party/arborist/lib/arborist/load-virtual.d.ts +4 -0
  648. package/types/lib/third-party/arborist/lib/arborist/load-virtual.d.ts.map +1 -0
  649. package/types/lib/third-party/arborist/lib/bin-links.d.ts +18 -0
  650. package/types/lib/third-party/arborist/lib/bin-links.d.ts.map +1 -0
  651. package/types/lib/third-party/arborist/lib/calc-dep-flags.d.ts +3 -0
  652. package/types/lib/third-party/arborist/lib/calc-dep-flags.d.ts.map +1 -0
  653. package/types/lib/third-party/arborist/lib/case-insensitive-map.d.ts +9 -0
  654. package/types/lib/third-party/arborist/lib/case-insensitive-map.d.ts.map +1 -0
  655. package/types/lib/third-party/arborist/lib/consistent-resolve.d.ts +3 -0
  656. package/types/lib/third-party/arborist/lib/consistent-resolve.d.ts.map +1 -0
  657. package/types/lib/third-party/arborist/lib/debug.d.ts +3 -0
  658. package/types/lib/third-party/arborist/lib/debug.d.ts.map +1 -0
  659. package/types/lib/third-party/arborist/lib/dep-valid.d.ts +3 -0
  660. package/types/lib/third-party/arborist/lib/dep-valid.d.ts.map +1 -0
  661. package/types/lib/third-party/arborist/lib/edge.d.ts +46 -0
  662. package/types/lib/third-party/arborist/lib/edge.d.ts.map +1 -0
  663. package/types/lib/third-party/arborist/lib/from-path.d.ts +3 -0
  664. package/types/lib/third-party/arborist/lib/from-path.d.ts.map +1 -0
  665. package/types/lib/third-party/arborist/lib/gather-dep-set.d.ts +3 -0
  666. package/types/lib/third-party/arborist/lib/gather-dep-set.d.ts.map +1 -0
  667. package/types/lib/third-party/arborist/lib/index.d.ts +3 -0
  668. package/types/lib/third-party/arborist/lib/index.d.ts.map +1 -0
  669. package/types/lib/third-party/arborist/lib/inventory.d.ts +14 -0
  670. package/types/lib/third-party/arborist/lib/inventory.d.ts.map +1 -0
  671. package/types/lib/third-party/arborist/lib/link.d.ts +18 -0
  672. package/types/lib/third-party/arborist/lib/link.d.ts.map +1 -0
  673. package/types/lib/third-party/arborist/lib/node.d.ts +112 -0
  674. package/types/lib/third-party/arborist/lib/node.d.ts.map +1 -0
  675. package/types/lib/third-party/arborist/lib/npm-extension.d.ts +18 -0
  676. package/types/lib/third-party/arborist/lib/npm-extension.d.ts.map +1 -0
  677. package/types/lib/third-party/arborist/lib/override-resolves.d.ts +3 -0
  678. package/types/lib/third-party/arborist/lib/override-resolves.d.ts.map +1 -0
  679. package/types/lib/third-party/arborist/lib/override-set.d.ts +27 -0
  680. package/types/lib/third-party/arborist/lib/override-set.d.ts.map +1 -0
  681. package/types/lib/third-party/arborist/lib/package-extensions.d.ts +36 -0
  682. package/types/lib/third-party/arborist/lib/package-extensions.d.ts.map +1 -0
  683. package/types/lib/third-party/arborist/lib/printable.d.ts +3 -0
  684. package/types/lib/third-party/arborist/lib/printable.d.ts.map +1 -0
  685. package/types/lib/third-party/arborist/lib/proc-log.d.ts +20 -0
  686. package/types/lib/third-party/arborist/lib/proc-log.d.ts.map +1 -0
  687. package/types/lib/third-party/arborist/lib/realpath.d.ts +3 -0
  688. package/types/lib/third-party/arborist/lib/realpath.d.ts.map +1 -0
  689. package/types/lib/third-party/arborist/lib/relpath.d.ts +3 -0
  690. package/types/lib/third-party/arborist/lib/relpath.d.ts.map +1 -0
  691. package/types/lib/third-party/arborist/lib/shrinkwrap.d.ts +54 -0
  692. package/types/lib/third-party/arborist/lib/shrinkwrap.d.ts.map +1 -0
  693. package/types/lib/third-party/arborist/lib/spec-from-lock.d.ts +3 -0
  694. package/types/lib/third-party/arborist/lib/spec-from-lock.d.ts.map +1 -0
  695. package/types/lib/third-party/arborist/lib/tree-check.d.ts +3 -0
  696. package/types/lib/third-party/arborist/lib/tree-check.d.ts.map +1 -0
  697. package/types/lib/third-party/arborist/lib/validate-npm-package-name.d.ts +13 -0
  698. package/types/lib/third-party/arborist/lib/validate-npm-package-name.d.ts.map +1 -0
  699. package/types/lib/third-party/arborist/lib/version-from-tgz.d.ts +6 -0
  700. package/types/lib/third-party/arborist/lib/version-from-tgz.d.ts.map +1 -0
  701. package/types/lib/third-party/arborist/lib/yarn-lock.d.ts +35 -0
  702. package/types/lib/third-party/arborist/lib/yarn-lock.d.ts.map +1 -0
  703. package/types/lib/validator/bomValidator.d.ts +40 -0
  704. package/types/lib/validator/bomValidator.d.ts.map +1 -0
  705. package/types/lib/validator/complianceEngine.d.ts +72 -0
  706. package/types/lib/validator/complianceEngine.d.ts.map +1 -0
  707. package/types/lib/validator/complianceRules.d.ts +61 -0
  708. package/types/lib/validator/complianceRules.d.ts.map +1 -0
  709. package/types/lib/validator/index.d.ts +101 -0
  710. package/types/lib/validator/index.d.ts.map +1 -0
  711. package/types/lib/validator/reporters/annotations.d.ts +37 -0
  712. package/types/lib/validator/reporters/annotations.d.ts.map +1 -0
  713. package/types/lib/validator/reporters/console.d.ts +34 -0
  714. package/types/lib/validator/reporters/console.d.ts.map +1 -0
  715. package/types/lib/validator/reporters/index.d.ts +30 -0
  716. package/types/lib/validator/reporters/index.d.ts.map +1 -0
  717. package/types/lib/validator/reporters/json.d.ts +11 -0
  718. package/types/lib/validator/reporters/json.d.ts.map +1 -0
  719. package/types/lib/validator/reporters/sarif.d.ts +22 -0
  720. package/types/lib/validator/reporters/sarif.d.ts.map +1 -0
  721. package/mod.d.ts +0 -7
  722. package/mod.js +0 -22
@@ -0,0 +1,802 @@
1
+ # CI/CD Permission Security Rules
2
+ # Category: ci-permission
3
+ # Evaluates GitHub Actions, GitLab CI, Azure Pipelines, etc. for privilege risks
4
+
5
+ - id: CI-001
6
+ name: "Unpinned action in write-permission workflow"
7
+ description: "GitHub Actions referenced by tag/branch in workflows with write permissions pose supply chain risk"
8
+ severity: high
9
+ category: ci-permission
10
+ dry-run-support: full
11
+ attack:
12
+ tactics: [TA0001]
13
+ techniques: [T1195.001]
14
+ condition: |
15
+ $auditComponents($)[
16
+ $prop($, 'cdx:github:action:isShaPinned') = 'false'
17
+ and (
18
+ $prop($, 'cdx:github:workflow:hasWritePermissions') = 'true'
19
+ or $prop($, 'cdx:github:job:hasWritePermissions') = 'true'
20
+ )
21
+ ]
22
+ location: |
23
+ {
24
+ "bomRef": $."bom-ref",
25
+ "purl": purl,
26
+ "file": $prop($, 'cdx:github:workflow:file')
27
+ }
28
+ message: "Unpinned GitHub Action '{{ $prop($, 'cdx:github:action:uses') }}' in workflow with write permissions"
29
+ mitigation: "Pin action to full SHA: actions/setup-node@abc123def456..."
30
+ evidence: |
31
+ {
32
+ "pinningType": $prop($, 'cdx:github:action:versionPinningType'),
33
+ "workflowTriggers": $prop($, 'cdx:github:workflow:triggers'),
34
+ "jobName": $prop($, 'cdx:github:job:name')
35
+ }
36
+ - id: CI-002
37
+ name: "OIDC token issuance to non-official action"
38
+ description: "Workflows or jobs granting id-token:write to third-party actions may enable token exfiltration"
39
+ severity: high
40
+ category: ci-permission
41
+ dry-run-support: full
42
+ attack:
43
+ tactics: [TA0006]
44
+ techniques: [T1528]
45
+ condition: |
46
+ $auditComponents($)[
47
+ (
48
+ $prop($, 'cdx:github:workflow:hasIdTokenWrite') = 'true'
49
+ or $prop($, 'cdx:github:job:hasIdTokenWrite') = 'true'
50
+ )
51
+ and $prop($, 'cdx:actions:isOfficial') = 'false'
52
+ ]
53
+ location: |
54
+ {
55
+ "bomRef": $."bom-ref",
56
+ "purl": purl,
57
+ "file": $prop($, 'cdx:github:workflow:file')
58
+ }
59
+ message: "Workflow grants OIDC token access to non-official action '{{ $prop($, 'cdx:github:action:uses') }}'"
60
+ mitigation: "Restrict id-token scope or use only verified/official actions for OIDC operations"
61
+ evidence: |
62
+ {
63
+ "isVerified": $prop($, 'cdx:actions:isVerified'),
64
+ "actionGroup": group,
65
+ "jobHasIdTokenWrite": $prop($, 'cdx:github:job:hasIdTokenWrite'),
66
+ "workflowHasIdTokenWrite": $prop($, 'cdx:github:workflow:hasIdTokenWrite')
67
+ }
68
+ - id: CI-003
69
+ name: "Action pinned to mutable tag"
70
+ description: "GitHub Actions pinned to tags (vs SHA) can change behavior unexpectedly if tag is moved"
71
+ severity: medium
72
+ category: ci-permission
73
+ dry-run-support: full
74
+ attack:
75
+ tactics: [TA0001]
76
+ techniques: [T1195.001]
77
+ condition: |
78
+ $auditComponents($)[
79
+ $prop($, 'cdx:github:action:versionPinningType') = 'tag'
80
+ ]
81
+ location: |
82
+ { "bomRef": $."bom-ref", "purl": purl }
83
+ message: "GitHub Action '{{ $prop($, 'cdx:github:action:uses') }}' pinned to mutable tag (not SHA)"
84
+ mitigation: "Consider pinning to full commit SHA for immutability: actions/setup-node@<full-sha>"
85
+ evidence: |
86
+ {
87
+ "currentVersion": version,
88
+ "isOfficial": $prop($, 'cdx:actions:isOfficial')
89
+ }
90
+ - id: CI-004
91
+ name: "Workflow uses pull_request_target trigger"
92
+ description: "pull_request_target can execute code in the context of the base branch, risking secret exposure"
93
+ severity: medium
94
+ category: ci-permission
95
+ dry-run-support: full
96
+ attack:
97
+ tactics: [TA0001, TA0004]
98
+ condition: |
99
+ $auditWorkflows($)[
100
+ $prop($, 'cdx:github:workflow:hasPullRequestTargetTrigger') = 'true'
101
+ ]
102
+ location: |
103
+ {
104
+ "bomRef": $."bom-ref",
105
+ "file": $prop($, 'cdx:github:workflow:file')
106
+ }
107
+ message: "Workflow '{{ $prop($, 'cdx:github:workflow:name') }}' uses pull_request_target trigger"
108
+ mitigation: "Ensure workflow does not checkout or run code from the PR head; use pull_request with careful permissions"
109
+ evidence: |
110
+ {
111
+ "triggers": $prop($, 'cdx:github:workflow:triggers'),
112
+ "hasWritePermissions": $prop($, 'cdx:github:workflow:hasWritePermissions')
113
+ }
114
+ - id: CI-005
115
+ name: "Checkout step persists credentials unnecessarily"
116
+ description: "actions/checkout with persist-credentials=true (default) exposes GITHUB_TOKEN to subsequent steps"
117
+ severity: medium
118
+ category: ci-permission
119
+ dry-run-support: full
120
+ attack:
121
+ tactics: [TA0006]
122
+ techniques: [T1552]
123
+ condition: |
124
+ $auditComponents($)[
125
+ $contains($nullSafeProp($, 'cdx:github:action:uses'), 'actions/checkout')
126
+ and $propBool($, 'cdx:github:checkout:persistCredentials') != false
127
+ and (
128
+ $propBool($, 'cdx:github:workflow:hasWritePermissions') = true
129
+ or $propBool($, 'cdx:github:job:hasWritePermissions') = true
130
+ )
131
+ ]
132
+ location: |
133
+ {
134
+ "bomRef": $."bom-ref",
135
+ "purl": purl,
136
+ "file": $prop($, 'cdx:github:workflow:file')
137
+ }
138
+ message: "Checkout step uses persist-credentials=true in privileged workflow; consider persist-credentials: false;"
139
+ mitigation: "Add persist-credentials: false to checkout steps that don't require git push operations"
140
+ evidence: |
141
+ {
142
+ "persistCredentials": $prop($, 'cdx:github:checkout:persistCredentials'),
143
+ "workflowPermissions": $prop($, 'cdx:github:workflow:hasWritePermissions')
144
+ }
145
+ - id: CI-006
146
+ name: "Cache usage in untrusted trigger context"
147
+ description: "GitHub Actions cache can be poisoned when used in workflows triggered by untrusted input (e.g., pull_request from forks)"
148
+ severity: high
149
+ category: ci-permission
150
+ dry-run-support: full
151
+ attack:
152
+ tactics: [TA0001]
153
+ techniques: [T1195.001]
154
+ condition: |
155
+ $auditComponents($)[
156
+ $nullSafeProp($, 'cdx:github:action:uses') ~> $contains('actions/cache')
157
+ and (
158
+ $prop($, 'cdx:github:workflow:hasPullRequestTrigger') = 'true'
159
+ or $prop($, 'cdx:github:workflow:hasPullRequestTargetTrigger') = 'true'
160
+ )
161
+ and (
162
+ $propBool($, 'cdx:github:workflow:hasWritePermissions') = true
163
+ or $propBool($, 'cdx:github:job:hasWritePermissions') = true
164
+ or $prop($, 'cdx:github:cache:hasRestoreKeys') = 'true'
165
+ or $prop($, 'cdx:github:cache:keyUsesHashFiles') != 'true'
166
+ )
167
+ ]
168
+ location: |
169
+ {
170
+ "bomRef": $."bom-ref",
171
+ "purl": purl,
172
+ "file": $prop($, 'cdx:github:workflow:file')
173
+ }
174
+ message: "Cache action used in pull-request-reachable workflow; cache key '{{ $prop($, 'cdx:github:cache:key') }}' may be writable by untrusted code"
175
+ mitigation: "Scope cache keys to PR-specific values, validate restored cache contents, or avoid caching in untrusted workflows"
176
+ evidence: |
177
+ {
178
+ "cacheKey": $prop($, 'cdx:github:cache:key'),
179
+ "hasRestoreKeys": $prop($, 'cdx:github:cache:hasRestoreKeys'),
180
+ "keyUsesHashFiles": $prop($, 'cdx:github:cache:keyUsesHashFiles'),
181
+ "cachePath": $prop($, 'cdx:github:cache:path'),
182
+ "triggers": $prop($, 'cdx:github:workflow:triggers')
183
+ }
184
+ - id: CI-007
185
+ name: "Script injection via untrusted context interpolation"
186
+ description: "Direct interpolation of github.event.* or inputs.* into run: blocks enables command injection"
187
+ severity: critical
188
+ category: ci-permission
189
+ dry-run-support: full
190
+ attack:
191
+ tactics: [TA0002]
192
+ techniques: [T1059]
193
+ condition: |
194
+ $auditComponents($)[
195
+ $prop($, 'cdx:github:step:hasUntrustedInterpolation') = 'true'
196
+ and $prop($, 'cdx:github:step:type') = 'run'
197
+ ]
198
+ location: |
199
+ {
200
+ "bomRef": $."bom-ref",
201
+ "file": $prop($, 'cdx:github:workflow:file')
202
+ }
203
+ message: "Untrusted input interpolated into shell command: variables '{{ $prop($, 'cdx:github:step:interpolatedVars') }}'"
204
+ mitigation: "Use intermediate environment variables: env: TITLE: ${{ github.event.pull_request.title }} then reference $TITLE in run:"
205
+ evidence: |
206
+ {
207
+ "interpolatedVars": $prop($, 'cdx:github:step:interpolatedVars'),
208
+ "stepCommand": $prop($, 'cdx:github:step:command')
209
+ }
210
+ - id: CI-008
211
+ name: "High-risk trigger with write permissions"
212
+ description: "Triggers like pull_request_target, issue_comment, or workflow_run combined with write permissions enable privilege escalation"
213
+ severity: high
214
+ category: ci-permission
215
+ dry-run-support: full
216
+ attack:
217
+ tactics: [TA0001, TA0004]
218
+ condition: |
219
+ $auditWorkflows($)[
220
+ (
221
+ $prop($, 'cdx:github:workflow:hasPullRequestTargetTrigger') = 'true'
222
+ or $prop($, 'cdx:github:workflow:hasIssueCommentTrigger') = 'true'
223
+ or $prop($, 'cdx:github:workflow:hasWorkflowRunTrigger') = 'true'
224
+ )
225
+ and $prop($, 'cdx:github:workflow:hasWritePermissions') = 'true'
226
+ ]
227
+ location: |
228
+ {
229
+ "bomRef": $."bom-ref",
230
+ "file": $prop($, 'cdx:github:workflow:file')
231
+ }
232
+ message: "Workflow '{{ $prop($, 'cdx:github:workflow:name') }}' uses high-risk trigger with write permissions"
233
+ mitigation: "Use pull_request instead of pull_request_target; require manual approval for issue_comment triggers; restrict permissions per job"
234
+ evidence: |
235
+ {
236
+ "triggers": $prop($, 'cdx:github:workflow:triggers'),
237
+ "hasWritePermissions": $prop($, 'cdx:github:workflow:hasWritePermissions')
238
+ }
239
+
240
+ - id: CI-009
241
+ name: "Workflow file contains hidden Unicode characters"
242
+ description: "Hidden Unicode in workflow files can disguise malicious logic, comments, or diffs and should be reviewed before merge"
243
+ severity: medium
244
+ category: ci-permission
245
+ dry-run-support: full
246
+ attack:
247
+ tactics: [TA0005]
248
+ techniques: [T1027]
249
+ condition: |
250
+ $auditWorkflows($)[
251
+ $prop($, 'cdx:github:workflow:hasHiddenUnicode') = 'true'
252
+ ]
253
+ location: |
254
+ {
255
+ "bomRef": $."bom-ref",
256
+ "file": $prop($, 'cdx:github:workflow:file')
257
+ }
258
+ message: "Workflow '{{ $prop($, 'cdx:github:workflow:name') }}' contains hidden Unicode characters"
259
+ mitigation: "Review the file in an editor that reveals bidirectional, zero-width, and control characters; remove suspicious hidden Unicode before merge"
260
+ evidence: |
261
+ {
262
+ "codePoints": $prop($, 'cdx:github:workflow:hiddenUnicodeCodePoints'),
263
+ "lineNumbers": $prop($, 'cdx:github:workflow:hiddenUnicodeLineNumbers'),
264
+ "inComments": $prop($, 'cdx:github:workflow:hiddenUnicodeInComments')
265
+ }
266
+
267
+ - id: CI-010
268
+ name: "Legacy token-based package publishing step"
269
+ description: "npm and PyPI publishing should prefer trusted publishing or OIDC-backed flows instead of long-lived token secrets or explicit --token arguments"
270
+ severity: medium
271
+ category: ci-permission
272
+ dry-run-support: full
273
+ attack:
274
+ tactics: [TA0006]
275
+ techniques: [T1528]
276
+ condition: |
277
+ $auditComponents($)[
278
+ $prop($, 'cdx:github:step:isPublishCommand') = 'true'
279
+ and $prop($, 'cdx:github:step:usesLegacyPublishToken') = 'true'
280
+ ]
281
+ location: |
282
+ {
283
+ "bomRef": $."bom-ref",
284
+ "file": $prop($, 'cdx:github:workflow:file')
285
+ }
286
+ message: "Workflow publish step '{{ name }}' uses legacy {{ $prop($, 'cdx:github:step:publishEcosystem') }} token-based publishing"
287
+ mitigation: "Prefer trusted publishing or short-lived OIDC-backed release flows instead of persistent package tokens or explicit --token arguments"
288
+ evidence: |
289
+ {
290
+ "ecosystem": $prop($, 'cdx:github:step:publishEcosystem'),
291
+ "tokenSources": $prop($, 'cdx:github:step:legacyPublishTokenSources'),
292
+ "stepCommand": $prop($, 'cdx:github:step:command')
293
+ }
294
+
295
+ - id: CI-011
296
+ name: "External reusable workflow inherits caller secrets"
297
+ description: "Reusable workflows invoked from external repositories with secrets: inherit expand the trust boundary and can expose repository credentials"
298
+ severity: high
299
+ category: ci-permission
300
+ dry-run-support: full
301
+ attack:
302
+ tactics: [TA0006]
303
+ techniques: [T1528, T1552]
304
+ condition: |
305
+ $auditComponents($)[
306
+ $prop($, 'cdx:github:reusableWorkflow:isExternal') = 'true'
307
+ and $prop($, 'cdx:github:reusableWorkflow:secretsInherit') = 'true'
308
+ ]
309
+ location: |
310
+ {
311
+ "bomRef": $."bom-ref",
312
+ "purl": purl,
313
+ "file": $prop($, 'cdx:github:workflow:file')
314
+ }
315
+ message: "Reusable workflow '{{ $prop($, 'cdx:github:reusableWorkflow:uses') }}' inherits caller secrets from an external repository"
316
+ mitigation: "Avoid secrets: inherit for external reusable workflows; pass only the minimum explicit secrets and pin the reusable workflow to a full SHA"
317
+ evidence: |
318
+ {
319
+ "uses": $prop($, 'cdx:github:reusableWorkflow:uses'),
320
+ "isShaPinned": $prop($, 'cdx:github:reusableWorkflow:isShaPinned'),
321
+ "withKeys": $prop($, 'cdx:github:reusableWorkflow:withKeys')
322
+ }
323
+
324
+ - id: CI-012
325
+ name: "External reusable workflow pinned to mutable ref"
326
+ description: "Reusable workflows referenced by tag or branch can change behavior without review and should be pinned to immutable SHAs"
327
+ severity: medium
328
+ category: ci-permission
329
+ dry-run-support: full
330
+ attack:
331
+ tactics: [TA0001]
332
+ techniques: [T1195.001]
333
+ condition: |
334
+ $auditComponents($)[
335
+ $prop($, 'cdx:github:reusableWorkflow:isExternal') = 'true'
336
+ and $prop($, 'cdx:github:reusableWorkflow:isShaPinned') = 'false'
337
+ ]
338
+ location: |
339
+ {
340
+ "bomRef": $."bom-ref",
341
+ "purl": purl,
342
+ "file": $prop($, 'cdx:github:workflow:file')
343
+ }
344
+ message: "External reusable workflow '{{ $prop($, 'cdx:github:reusableWorkflow:uses') }}' is pinned to a mutable ref"
345
+ mitigation: "Pin reusable workflows to full SHAs and review updates through a normal change-management process"
346
+ evidence: |
347
+ {
348
+ "pinningType": $prop($, 'cdx:github:reusableWorkflow:versionPinningType'),
349
+ "ref": $prop($, 'cdx:github:reusableWorkflow:ref')
350
+ }
351
+
352
+ - id: CI-013
353
+ name: "High-risk trigger reaches a self-hosted runner"
354
+ description: "High-risk triggers executing on self-hosted runners can expose internal network access, credentials, and long-lived runner state"
355
+ severity: high
356
+ category: ci-permission
357
+ dry-run-support: full
358
+ attack:
359
+ tactics: [TA0004, TA0008]
360
+ condition: |
361
+ $auditComponents($)[
362
+ (
363
+ $prop($, 'cdx:github:workflow:hasPullRequestTargetTrigger') = 'true'
364
+ or $prop($, 'cdx:github:workflow:hasIssueCommentTrigger') = 'true'
365
+ or $prop($, 'cdx:github:workflow:hasWorkflowRunTrigger') = 'true'
366
+ )
367
+ and $prop($, 'cdx:github:job:isSelfHosted') = 'true'
368
+ ]
369
+ location: |
370
+ {
371
+ "bomRef": $."bom-ref",
372
+ "purl": purl,
373
+ "file": $prop($, 'cdx:github:workflow:file')
374
+ }
375
+ message: "High-risk workflow trigger reaches self-hosted runner in job '{{ $prop($, 'cdx:github:job:name') }}'"
376
+ mitigation: "Restrict self-hosted runners to trusted workflows only, isolate runner credentials, and gate high-risk triggers with manual approval"
377
+ evidence: |
378
+ {
379
+ "triggers": $prop($, 'cdx:github:workflow:triggers'),
380
+ "jobRunner": $prop($, 'cdx:github:job:runner'),
381
+ "jobName": $prop($, 'cdx:github:job:name')
382
+ }
383
+
384
+ - id: CI-014
385
+ name: "Privileged workflow mutates downstream runner state"
386
+ description: "Writing to GITHUB_ENV, GITHUB_PATH, or GITHUB_OUTPUT in privileged workflows can persist attacker-controlled state across later steps and jobs"
387
+ severity: high
388
+ category: ci-permission
389
+ dry-run-support: full
390
+ attack:
391
+ tactics: [TA0002]
392
+ techniques: [T1059]
393
+ condition: |
394
+ $auditComponents($)[
395
+ $prop($, 'cdx:github:step:type') = 'run'
396
+ and $prop($, 'cdx:github:step:mutatesRunnerState') = 'true'
397
+ and (
398
+ $prop($, 'cdx:github:workflow:hasWritePermissions') = 'true'
399
+ or $prop($, 'cdx:github:job:hasWritePermissions') = 'true'
400
+ or $prop($, 'cdx:github:workflow:hasIdTokenWrite') = 'true'
401
+ or $prop($, 'cdx:github:job:hasIdTokenWrite') = 'true'
402
+ )
403
+ ]
404
+ location: |
405
+ {
406
+ "bomRef": $."bom-ref",
407
+ "file": $prop($, 'cdx:github:workflow:file')
408
+ }
409
+ message: "Privileged workflow step '{{ name }}' mutates runner state via '{{ $prop($, 'cdx:github:step:runnerStateTargets') }}'"
410
+ mitigation: "Avoid mutating shared runner state in privileged jobs; prefer tightly-scoped step outputs and review all GITHUB_ENV/GITHUB_PATH/GITHUB_OUTPUT writes"
411
+ evidence: |
412
+ {
413
+ "runnerStateTargets": $prop($, 'cdx:github:step:runnerStateTargets'),
414
+ "stepCommand": $prop($, 'cdx:github:step:command'),
415
+ "jobName": $prop($, 'cdx:github:job:name')
416
+ }
417
+
418
+ - id: CI-015
419
+ name: "Outbound network command references sensitive context"
420
+ description: "Run steps that invoke outbound network tools while transmitting secrets, github.token, or OIDC request context are strong exfiltration indicators"
421
+ severity: high
422
+ category: ci-permission
423
+ dry-run-support: full
424
+ attack:
425
+ tactics: [TA0010]
426
+ techniques: [T1048]
427
+ condition: |
428
+ $auditComponents($)[
429
+ $prop($, 'cdx:github:step:type') = 'run'
430
+ and $prop($, 'cdx:github:step:hasOutboundNetworkCommand') = 'true'
431
+ and $prop($, 'cdx:github:step:referencesSensitiveContext') = 'true'
432
+ and $prop($, 'cdx:github:step:likelyExfiltration') = 'true'
433
+ ]
434
+ location: |
435
+ {
436
+ "bomRef": $."bom-ref",
437
+ "file": $prop($, 'cdx:github:workflow:file')
438
+ }
439
+ message: "Outbound command in step '{{ name }}' references sensitive context '{{ $prop($, 'cdx:github:step:sensitiveContextRefs') }}'"
440
+ mitigation: "Review outbound network steps for secret or token use, disable unnecessary network egress, and move sensitive values into least-privileged isolated jobs"
441
+ evidence: |
442
+ {
443
+ "networkTools": $prop($, 'cdx:github:step:outboundNetworkTools'),
444
+ "sensitiveContextRefs": $prop($, 'cdx:github:step:sensitiveContextRefs'),
445
+ "exfiltrationIndicators": $prop($, 'cdx:github:step:exfiltrationIndicators'),
446
+ "stepCommand": $prop($, 'cdx:github:step:command')
447
+ }
448
+
449
+ - id: CI-016
450
+ name: "Privileged reusable workflow accepts caller secrets"
451
+ description: "workflow_call producers that request caller-provided secrets while also holding write or OIDC permissions expand the blast radius across repositories and workflows"
452
+ severity: high
453
+ category: ci-permission
454
+ dry-run-support: full
455
+ attack:
456
+ tactics: [TA0006]
457
+ techniques: [T1528, T1552]
458
+ condition: |
459
+ $auditWorkflows($)[
460
+ $prop($, 'cdx:github:workflow:isWorkflowCallProducer') = 'true'
461
+ and $safeStr($prop($, 'cdx:github:workflow:workflowCallSecrets')) != ''
462
+ and (
463
+ $propBool($, 'cdx:github:workflow:hasWritePermissions') = true
464
+ or $propBool($, 'cdx:github:workflow:hasIdTokenWrite') = true
465
+ )
466
+ ]
467
+ location: |
468
+ {
469
+ "bomRef": $."bom-ref",
470
+ "file": $prop($, 'cdx:github:workflow:file')
471
+ }
472
+ message: "Reusable workflow '{{ $prop($, 'cdx:github:workflow:name') }}' accepts caller secrets while running with privileged permissions"
473
+ mitigation: "Avoid broad secret interfaces on reusable workflows with write or OIDC permissions; split privileged work into a narrowly scoped follow-up job and require only explicit minimal secrets"
474
+ evidence: |
475
+ {
476
+ "workflowCallSecrets": $prop($, 'cdx:github:workflow:workflowCallSecrets'),
477
+ "writeScopes": $prop($, 'cdx:github:workflow:writeScopes'),
478
+ "hasWritePermissions": $prop($, 'cdx:github:workflow:hasWritePermissions'),
479
+ "hasIdTokenWrite": $prop($, 'cdx:github:workflow:hasIdTokenWrite')
480
+ }
481
+
482
+ - id: CI-017
483
+ name: "Privileged reusable workflow exports caller-influenced outputs"
484
+ description: "workflow_call producers that both accept caller-controlled inputs and emit outputs from privileged execution contexts can propagate unsafe values into downstream trusted jobs"
485
+ severity: medium
486
+ category: ci-permission
487
+ dry-run-support: full
488
+ attack:
489
+ tactics: [TA0003, TA0004]
490
+ condition: |
491
+ $auditWorkflows($)[
492
+ $prop($, 'cdx:github:workflow:isWorkflowCallProducer') = 'true'
493
+ and $safeStr($prop($, 'cdx:github:workflow:workflowCallInputs')) != ''
494
+ and $safeStr($prop($, 'cdx:github:workflow:workflowCallOutputs')) != ''
495
+ and (
496
+ $propBool($, 'cdx:github:workflow:hasWritePermissions') = true
497
+ or $propBool($, 'cdx:github:workflow:hasIdTokenWrite') = true
498
+ )
499
+ ]
500
+ location: |
501
+ {
502
+ "bomRef": $."bom-ref",
503
+ "file": $prop($, 'cdx:github:workflow:file')
504
+ }
505
+ message: "Reusable workflow '{{ $prop($, 'cdx:github:workflow:name') }}' exports outputs from a privileged workflow_call interface that also accepts caller inputs"
506
+ mitigation: "Review workflow_call outputs for trust-boundary crossings, sanitize caller-controlled data before emitting outputs, and avoid combining privileged permissions with broad producer interfaces"
507
+ evidence: |
508
+ {
509
+ "workflowCallInputs": $prop($, 'cdx:github:workflow:workflowCallInputs'),
510
+ "workflowCallOutputs": $prop($, 'cdx:github:workflow:workflowCallOutputs'),
511
+ "hasWritePermissions": $prop($, 'cdx:github:workflow:hasWritePermissions'),
512
+ "hasIdTokenWrite": $prop($, 'cdx:github:workflow:hasIdTokenWrite')
513
+ }
514
+
515
+ - id: CI-018
516
+ name: "Fork-reachable workflow dispatches downstream workflow or repository events"
517
+ description: "Dispatching workflow_dispatch or repository_dispatch from fork-reachable or privileged jobs can create a lateral-movement path into downstream workflows with broader credentials"
518
+ severity: high
519
+ category: ci-permission
520
+ dry-run-support: full
521
+ attack:
522
+ tactics: [TA0006]
523
+ techniques: [T1528]
524
+ condition: |
525
+ $auditComponents($)[
526
+ $prop($, 'cdx:github:step:dispatchesWorkflow') = 'true'
527
+ and $prop($, 'cdx:github:step:referencesSensitiveContext') = 'true'
528
+ and (
529
+ $propBool($, 'cdx:github:workflow:hasPullRequestTrigger') = true
530
+ or $propBool($, 'cdx:github:workflow:hasPullRequestTargetTrigger') = true
531
+ or $propBool($, 'cdx:github:workflow:hasIssueCommentTrigger') = true
532
+ or $propBool($, 'cdx:github:workflow:hasWorkflowRunTrigger') = true
533
+ or $propBool($, 'cdx:github:workflow:hasWritePermissions') = true
534
+ or $propBool($, 'cdx:github:job:hasWritePermissions') = true
535
+ or $propBool($, 'cdx:github:workflow:hasIdTokenWrite') = true
536
+ or $propBool($, 'cdx:github:job:hasIdTokenWrite') = true
537
+ )
538
+ ]
539
+ location: |
540
+ {
541
+ "bomRef": $."bom-ref",
542
+ "purl": purl,
543
+ "file": $prop($, 'cdx:github:workflow:file')
544
+ }
545
+ message: "Workflow step '{{ name }}' dispatches '{{ $prop($, 'cdx:github:step:dispatchKinds') }}' toward '{{ $prop($, 'cdx:github:step:dispatchTargets') }}' from a fork-reachable or privileged context"
546
+ mitigation: "Avoid chaining downstream workflow_dispatch or repository_dispatch calls from pull-request/fork-reachable jobs; isolate release dispatchers into trusted workflows with narrowly scoped credentials"
547
+ evidence: |
548
+ {
549
+ "dispatchKinds": $prop($, 'cdx:github:step:dispatchKinds'),
550
+ "dispatchMechanisms": $prop($, 'cdx:github:step:dispatchMechanisms'),
551
+ "dispatchTargets": $prop($, 'cdx:github:step:dispatchTargets'),
552
+ "localReceiverWorkflowFiles": $prop($, 'cdx:github:step:dispatchReceiverWorkflowFiles'),
553
+ "localReceiverWorkflowNames": $prop($, 'cdx:github:step:dispatchReceiverWorkflowNames'),
554
+ "sensitiveContextRefs": $prop($, 'cdx:github:step:sensitiveContextRefs'),
555
+ "workflowTriggers": $prop($, 'cdx:github:workflow:triggers'),
556
+ "writeScopes": $prop($, 'cdx:github:workflow:writeScopes')
557
+ }
558
+
559
+ - id: CI-019
560
+ name: "Workflow dispatch step references explicit fork context"
561
+ description: "Dispatch chains that inspect pull_request head-repository or fork context before invoking downstream workflows are strong signals of fork-to-privileged lateral movement"
562
+ severity: critical
563
+ category: ci-permission
564
+ dry-run-support: full
565
+ attack:
566
+ tactics: [TA0006]
567
+ techniques: [T1528, T1552]
568
+ condition: |
569
+ $auditComponents($)[
570
+ $prop($, 'cdx:github:step:dispatchesWorkflow') = 'true'
571
+ and $prop($, 'cdx:github:step:referencesForkContext') = 'true'
572
+ and $prop($, 'cdx:github:step:referencesSensitiveContext') = 'true'
573
+ and (
574
+ $prop($, 'cdx:github:step:hasLocalDispatchReceiver') = 'true'
575
+ or $safeStr($prop($, 'cdx:github:step:hasLocalDispatchReceiver')) = ''
576
+ )
577
+ ]
578
+ location: |
579
+ {
580
+ "bomRef": $."bom-ref",
581
+ "purl": purl,
582
+ "file": $prop($, 'cdx:github:workflow:file')
583
+ }
584
+ message: "Workflow step '{{ name }}' combines explicit fork/head-repository context with downstream dispatch '{{ $safeStr($prop($, 'cdx:github:step:dispatchReceiverWorkflowNames')) != '' ? $prop($, 'cdx:github:step:dispatchReceiverWorkflowNames') : $prop($, 'cdx:github:step:dispatchTargets') }}'"
585
+ mitigation: "Do not route fork-derived context into workflow_dispatch or repository_dispatch calls. Split privileged follow-up workflows behind trusted branch-only triggers and avoid sharing long-lived tokens into fork-reachable jobs"
586
+ evidence: |
587
+ {
588
+ "forkContextRefs": $prop($, 'cdx:github:step:forkContextRefs'),
589
+ "dispatchKinds": $prop($, 'cdx:github:step:dispatchKinds'),
590
+ "dispatchTargets": $prop($, 'cdx:github:step:dispatchTargets'),
591
+ "hasLocalDispatchReceiver": $prop($, 'cdx:github:step:hasLocalDispatchReceiver'),
592
+ "localReceiverWorkflowFiles": $prop($, 'cdx:github:step:dispatchReceiverWorkflowFiles'),
593
+ "localReceiverWorkflowNames": $prop($, 'cdx:github:step:dispatchReceiverWorkflowNames'),
594
+ "localReceiverMatchBasis": $prop($, 'cdx:github:step:dispatchReceiverMatchBasis'),
595
+ "sensitiveContextRefs": $prop($, 'cdx:github:step:sensitiveContextRefs')
596
+ }
597
+
598
+ - id: CI-020
599
+ name: "pull_request_target checks out PR head or fork context"
600
+ description: "Checking out github.event.pull_request.head.* repository or ref inside pull_request_target executes untrusted fork code with base-repository privileges"
601
+ severity: critical
602
+ category: ci-permission
603
+ dry-run-support: full
604
+ attack:
605
+ tactics: [TA0001, TA0006]
606
+ techniques: [T1195.001, T1552]
607
+ condition: |
608
+ $auditComponents($)[
609
+ $contains($nullSafeProp($, 'cdx:github:action:uses'), 'actions/checkout')
610
+ and $prop($, 'cdx:github:workflow:hasPullRequestTargetTrigger') = 'true'
611
+ and (
612
+ $prop($, 'cdx:github:checkout:checksOutUntrustedRef') = 'true'
613
+ or $prop($, 'cdx:github:checkout:referencesForkContext') = 'true'
614
+ )
615
+ ]
616
+ location: |
617
+ {
618
+ "bomRef": $."bom-ref",
619
+ "purl": purl,
620
+ "file": $prop($, 'cdx:github:workflow:file')
621
+ }
622
+ message: "Checkout step '{{ $prop($, 'cdx:github:action:uses') }}' pulls PR head or fork context inside pull_request_target"
623
+ mitigation: "Do not checkout github.event.pull_request.head.* in pull_request_target workflows. Prefer pull_request with read-only permissions or split trusted follow-up work into a separate branch-only workflow"
624
+ evidence: |
625
+ {
626
+ "checkoutRef": $prop($, 'cdx:github:checkout:ref'),
627
+ "checkoutRepository": $prop($, 'cdx:github:checkout:repository'),
628
+ "untrustedRefContexts": $prop($, 'cdx:github:checkout:untrustedRefContexts'),
629
+ "forkContextRefs": $prop($, 'cdx:github:checkout:forkContextRefs'),
630
+ "persistCredentials": $prop($, 'cdx:github:checkout:persistCredentials'),
631
+ "workflowHasWritePermissions": $prop($, 'cdx:github:workflow:hasWritePermissions')
632
+ }
633
+
634
+ - id: CI-021
635
+ name: "Heuristic: high-risk trigger with implicit permissions and sensitive operations"
636
+ description: "High-risk GitHub Actions workflows that omit explicit permissions blocks while still performing sensitive operations may rely on repository-default token scopes. This is a review heuristic, not proof of write access."
637
+ severity: medium
638
+ category: ci-permission
639
+ dry-run-support: full
640
+ attack:
641
+ tactics: [TA0006]
642
+ techniques: [T1528, T1552]
643
+ condition: |
644
+ $auditComponents($)[
645
+ $prop($, 'cdx:github:workflow:hasHighRiskTrigger') = 'true'
646
+ and $prop($, 'cdx:github:workflow:hasAnyExplicitPermissionsBlock') = 'false'
647
+ and $prop($, 'cdx:github:step:hasSensitiveOperations') = 'true'
648
+ ]
649
+ location: |
650
+ {
651
+ "bomRef": $."bom-ref",
652
+ "purl": purl,
653
+ "file": $prop($, 'cdx:github:workflow:file')
654
+ }
655
+ message: "Heuristic review: workflow '{{ $prop($, 'cdx:github:workflow:name') }}' uses a high-risk trigger without an explicit permissions block while step '{{ $safeStr($prop($, 'cdx:github:step:name')) != '' ? $prop($, 'cdx:github:step:name') : name }}' performs sensitive operation(s) '{{ $prop($, 'cdx:github:step:sensitiveOperations') }}'"
656
+ mitigation: "Add an explicit top-level permissions: block (for example permissions: {}) and re-grant only the minimum per-job scopes needed for the sensitive step"
657
+ evidence: |
658
+ {
659
+ "workflowTriggers": $prop($, 'cdx:github:workflow:triggers'),
660
+ "workflowHasExplicitPermissionsBlock": $prop($, 'cdx:github:workflow:hasExplicitPermissionsBlock'),
661
+ "workflowHasAnyExplicitPermissionsBlock": $prop($, 'cdx:github:workflow:hasAnyExplicitPermissionsBlock'),
662
+ "jobHasExplicitPermissionsBlock": $prop($, 'cdx:github:job:hasExplicitPermissionsBlock'),
663
+ "sensitiveOperations": $prop($, 'cdx:github:step:sensitiveOperations'),
664
+ "sensitiveContextRefs": $prop($, 'cdx:github:step:sensitiveContextRefs'),
665
+ "dispatchKinds": $prop($, 'cdx:github:step:dispatchKinds')
666
+ }
667
+
668
+ - id: CI-022
669
+ name: "npm setup action disables build cache despite resolved package distributions"
670
+ description: "Explicitly disabling setup-node caching reduces tamper resistance and reviewability when npm dependencies are resolved from remote package distributions"
671
+ severity: medium
672
+ category: ci-permission
673
+ dry-run-support: full
674
+ attack:
675
+ tactics: [TA0001]
676
+ techniques: [T1195.001]
677
+ condition: |
678
+ $auditComponents($)[
679
+ $prop($, 'cdx:github:action:disablesBuildCache') = 'true'
680
+ and $prop($, 'cdx:github:action:buildCacheEcosystem') = 'npm'
681
+ and $count($$.components[
682
+ $startsWith(purl, 'pkg:npm/')
683
+ and (
684
+ $contains($lowercase($nullSafeProp($, 'cdx:npm:manifestSourceType')), 'git')
685
+ or $contains($lowercase($nullSafeProp($, 'cdx:npm:manifestSourceType')), 'url')
686
+ )
687
+ and $count(externalReferences[
688
+ type = 'distribution'
689
+ and (
690
+ $startsWith($lowercase(url), 'git+')
691
+ or $startsWith($lowercase(url), 'http://')
692
+ or $startsWith($lowercase(url), 'https://')
693
+ )
694
+ ]) > 0
695
+ ]) > 0
696
+ ]
697
+ location: |
698
+ {
699
+ "bomRef": $."bom-ref",
700
+ "purl": purl,
701
+ "file": $prop($, 'cdx:github:workflow:file')
702
+ }
703
+ message: "GitHub Action '{{ $prop($, 'cdx:github:action:uses') }}' explicitly disables npm build caching while resolved npm package distributions are present in the BOM"
704
+ mitigation: "Keep setup-node caching enabled unless you have a reviewed exception; disabling cache can weaken integrity checks and provenance review for resolved npm artifacts"
705
+ evidence: |
706
+ {
707
+ "cacheDisableInput": $prop($, 'cdx:github:action:buildCacheDisableInput'),
708
+ "cacheDisableValue": $prop($, 'cdx:github:action:buildCacheDisableValue'),
709
+ "matchingPackages": $$.components[
710
+ $startsWith(purl, 'pkg:npm/')
711
+ and (
712
+ $contains($lowercase($nullSafeProp($, 'cdx:npm:manifestSourceType')), 'git')
713
+ or $contains($lowercase($nullSafeProp($, 'cdx:npm:manifestSourceType')), 'url')
714
+ )
715
+ and $count(externalReferences[
716
+ type = 'distribution'
717
+ and (
718
+ $startsWith($lowercase(url), 'git+')
719
+ or $startsWith($lowercase(url), 'http://')
720
+ or $startsWith($lowercase(url), 'https://')
721
+ )
722
+ ]) > 0
723
+ ].purl
724
+ }
725
+
726
+ - id: CI-023
727
+ name: "Python setup action disables build cache despite resolved package distributions"
728
+ description: "Explicitly disabling setup-python caching reduces tamper resistance and reviewability when PyPI dependencies are resolved from remote archives or VCS sources"
729
+ severity: medium
730
+ category: ci-permission
731
+ dry-run-support: full
732
+ attack:
733
+ tactics: [TA0001]
734
+ techniques: [T1195.001]
735
+ condition: |
736
+ $auditComponents($)[
737
+ $prop($, 'cdx:github:action:disablesBuildCache') = 'true'
738
+ and $prop($, 'cdx:github:action:buildCacheEcosystem') = 'pypi'
739
+ and $count($$.components[
740
+ $startsWith(purl, 'pkg:pypi/')
741
+ and (
742
+ $contains($lowercase($nullSafeProp($, 'cdx:pypi:manifestSourceType')), 'git')
743
+ or $contains($lowercase($nullSafeProp($, 'cdx:pypi:manifestSourceType')), 'url')
744
+ )
745
+ ]) > 0
746
+ ]
747
+ location: |
748
+ {
749
+ "bomRef": $."bom-ref",
750
+ "purl": purl,
751
+ "file": $prop($, 'cdx:github:workflow:file')
752
+ }
753
+ message: "GitHub Action '{{ $prop($, 'cdx:github:action:uses') }}' explicitly disables Python build caching while resolved PyPI package distributions are present in the BOM"
754
+ mitigation: "Keep setup-python caching enabled when lockfiles resolve remote archives or VCS sources unless you have a reviewed exception"
755
+ evidence: |
756
+ {
757
+ "cacheDisableInput": $prop($, 'cdx:github:action:buildCacheDisableInput'),
758
+ "cacheDisableValue": $prop($, 'cdx:github:action:buildCacheDisableValue'),
759
+ "matchingPackages": $$.components[
760
+ $startsWith(purl, 'pkg:pypi/')
761
+ and (
762
+ $contains($lowercase($nullSafeProp($, 'cdx:pypi:manifestSourceType')), 'git')
763
+ or $contains($lowercase($nullSafeProp($, 'cdx:pypi:manifestSourceType')), 'url')
764
+ )
765
+ ].purl
766
+ }
767
+
768
+ - id: CI-024
769
+ name: "Cargo setup action disables build cache despite manifest-declared git dependencies"
770
+ description: "Explicitly disabling Cargo setup caching reduces tamper resistance and reviewability when Cargo manifests rely on git dependencies"
771
+ severity: medium
772
+ category: ci-permission
773
+ dry-run-support: full
774
+ attack:
775
+ tactics: [TA0001]
776
+ techniques: [T1195.001]
777
+ condition: |
778
+ $auditComponents($)[
779
+ $prop($, 'cdx:github:action:disablesBuildCache') = 'true'
780
+ and $prop($, 'cdx:github:action:buildCacheEcosystem') = 'cargo'
781
+ and $count($$.components[
782
+ $startsWith(purl, 'pkg:cargo/')
783
+ and $hasProp($, 'cdx:cargo:git')
784
+ ]) > 0
785
+ ]
786
+ location: |
787
+ {
788
+ "bomRef": $."bom-ref",
789
+ "purl": purl,
790
+ "file": $prop($, 'cdx:github:workflow:file')
791
+ }
792
+ message: "GitHub Action '{{ $prop($, 'cdx:github:action:uses') }}' explicitly disables Cargo build caching while manifest-declared Cargo git dependencies are present in the BOM"
793
+ mitigation: "Keep Cargo setup caching enabled when manifests rely on git dependencies unless you have a reviewed exception"
794
+ evidence: |
795
+ {
796
+ "cacheDisableInput": $prop($, 'cdx:github:action:buildCacheDisableInput'),
797
+ "cacheDisableValue": $prop($, 'cdx:github:action:buildCacheDisableValue'),
798
+ "matchingPackages": $$.components[
799
+ $startsWith(purl, 'pkg:cargo/')
800
+ and $hasProp($, 'cdx:cargo:git')
801
+ ].purl
802
+ }