@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.
- package/README.md +921 -87
- package/bin/audit.js +239 -0
- package/bin/cdxgen.js +2324 -0
- package/bin/convert.js +213 -0
- package/bin/evinse.js +353 -0
- package/bin/hbom.js +495 -0
- package/bin/repl.js +2224 -0
- package/bin/sign.js +195 -0
- package/bin/tracebom.js +295 -0
- package/bin/validate.js +268 -0
- package/bin/verify.js +189 -0
- package/data/README.md +307 -0
- package/data/bom-1.4.schema.json +1605 -0
- package/data/bom-1.5.schema.json +3660 -0
- package/data/bom-1.6.schema.json +5511 -0
- package/data/bom-1.7.schema.json +6700 -0
- package/data/cbomosdb-queries.json +68 -0
- package/data/component-tags.json +339 -0
- package/data/container-knowledge-index.json +125 -0
- package/data/cosdb-queries.json +17 -0
- package/data/crypto-oid.json +1998 -0
- package/data/cryptography-defs.json +3793 -0
- package/data/cryptography-defs.schema.json +576 -0
- package/data/cyclonedx-2.0-bundled.schema.json +7182 -0
- package/data/frameworks-list.json +219 -0
- package/data/glibc-stdlib.json +117 -0
- package/data/gtfobins-index.json +6296 -0
- package/data/helpers/init.gradle +71 -0
- package/data/jsf-0.82.schema.json +211 -0
- package/data/known-licenses.json +82 -0
- package/data/lic-mapping.json +338 -0
- package/data/license-aliases.json +6624 -0
- package/data/license-db.json +39059 -0
- package/data/license-deprecations.json +302 -0
- package/data/lolbas-index.json +150 -0
- package/data/predictive-audit-allowlist.json +11 -0
- package/data/pypi-pkg-aliases.json +1199 -0
- package/data/python-stdlib.json +308 -0
- package/data/queries-darwin.json +193 -0
- package/data/queries-win.json +257 -0
- package/data/queries.json +268 -0
- package/data/ruby-known-modules.json +281 -0
- package/data/rules/ai-agent-governance.yaml +323 -0
- package/data/rules/ai-bom.yaml +268 -0
- package/data/rules/ai-oversight.yaml +186 -0
- package/data/rules/ai-provenance.yaml +92 -0
- package/data/rules/asar-archives.yaml +150 -0
- package/data/rules/cbom-security.yaml +165 -0
- package/data/rules/chrome-extensions.yaml +248 -0
- package/data/rules/ci-permissions.yaml +802 -0
- package/data/rules/container-risk.yaml +353 -0
- package/data/rules/dependency-sources.yaml +236 -0
- package/data/rules/golem-go.yaml +229 -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 +388 -0
- package/data/rules/obom-runtime.yaml +1776 -0
- package/data/rules/package-integrity.yaml +364 -0
- package/data/rules/rootfs-hardening.yaml +179 -0
- package/data/rules/vscode-extensions.yaml +237 -0
- package/data/spdx-export.schema.json +6794 -0
- package/data/spdx-license-list.json +7449 -0
- package/data/spdx-licenses.json +759 -0
- package/data/spdx.schema.json +819 -0
- package/data/templates/README.md +3 -0
- package/data/templates/asvs-4.0.3.cdx.json +2943 -0
- package/data/templates/asvs-5.0.cdx.json +3046 -0
- package/data/templates/bsimm-v13.cdx.json +1008 -0
- package/data/templates/masvs-2.0.0.cdx.json +225 -0
- package/data/templates/nist-ssdf-1.1.cdx.json +828 -0
- package/data/templates/pcissc-secure-slc-1.1.cdx.json +1027 -0
- package/data/templates/scvs-1.0.0.cdx.json +813 -0
- package/data/templates/ssaf-DRAFT-2023-11.cdx.json +127 -0
- package/data/vendor-alias.json +41967 -0
- package/data/wrapdb-releases.json +4227 -0
- package/index.cjs +15 -0
- package/lib/audit/index.js +2800 -0
- package/lib/audit/progress.js +114 -0
- package/lib/audit/reporters.js +937 -0
- package/lib/audit/scoring.js +560 -0
- package/lib/audit/targets.js +798 -0
- package/lib/cli/bomAssembly.js +1833 -0
- package/lib/cli/cliOptions.js +513 -0
- package/lib/cli/index.js +2759 -0
- package/lib/cli/jsBom.js +2087 -0
- package/lib/cli/jvmBom.js +1858 -0
- package/lib/cli/managedBom.js +2083 -0
- package/lib/cli/nativeBom.js +2125 -0
- package/lib/core/activity.js +1087 -0
- package/lib/core/env.js +719 -0
- package/lib/core/fs.js +1058 -0
- package/lib/core/httpClient.js +730 -0
- package/lib/core/logger.js +142 -0
- package/lib/core/parallel.js +323 -0
- package/lib/core/paths.js +70 -0
- package/lib/core/projectConfig.js +122 -0
- package/lib/core/propertySanitizer.js +174 -0
- package/lib/core/spdx.js +5 -0
- package/lib/core/state.js +59 -0
- package/lib/core/text.js +207 -0
- package/lib/core/ui.js +876 -0
- package/lib/core/urls.js +84 -0
- package/lib/ecosystems/asarutils.js +1636 -0
- package/lib/ecosystems/bunutils.js +402 -0
- package/lib/ecosystems/caxa.js +77 -0
- package/lib/ecosystems/chromextutils.js +1174 -0
- package/lib/ecosystems/cmakeResolver.js +587 -0
- package/lib/ecosystems/cppEvidence.js +305 -0
- package/lib/ecosystems/denoutils.js +1094 -0
- package/lib/ecosystems/dotnetutils.js +132 -0
- package/lib/ecosystems/ecosystems.js +2772 -0
- package/lib/ecosystems/golem.js +1807 -0
- package/lib/ecosystems/gradleutils.js +1048 -0
- package/lib/ecosystems/jsEvidence.js +317 -0
- package/lib/ecosystems/npmutils.js +586 -0
- package/lib/ecosystems/parsers-bazel.js +875 -0
- package/lib/ecosystems/parsers-dotnet.js +1430 -0
- package/lib/ecosystems/parsers-gleam.js +302 -0
- package/lib/ecosystems/parsers-go.js +818 -0
- package/lib/ecosystems/parsers-js.js +4222 -0
- package/lib/ecosystems/parsers-jvm.js +948 -0
- package/lib/ecosystems/parsers-misc.js +3191 -0
- package/lib/ecosystems/parsers-python.js +2070 -0
- package/lib/ecosystems/parsers-rust.js +1294 -0
- package/lib/ecosystems/parsers-zig.js +861 -0
- package/lib/ecosystems/pep770.js +341 -0
- package/lib/ecosystems/pylockutils.js +427 -0
- package/lib/ecosystems/pythonutils.js +1281 -0
- package/lib/ecosystems/registryProvenance.js +1003 -0
- package/lib/ecosystems/remote/huggingface.js +1343 -0
- package/lib/ecosystems/rubyutils.js +1629 -0
- package/lib/ecosystems/rusi.js +820 -0
- package/lib/ecosystems/sbtutils.js +972 -0
- package/lib/ecosystems/tea.js +607 -0
- package/lib/ecosystems/utils.js +575 -0
- package/lib/ecosystems/zigResolver.js +410 -0
- package/lib/evinser/db.js +145 -0
- package/lib/evinser/evinser.js +2362 -0
- package/lib/evinser/scalasem.js +65 -0
- package/lib/evinser/swiftsem.js +767 -0
- package/lib/helpers/annotationFormatter.js +84 -0
- package/lib/helpers/bomSigner.js +312 -0
- package/lib/helpers/exportUtils.js +160 -0
- package/lib/helpers/remote/dependency-track.js +117 -0
- package/lib/helpers/versutils.js +202 -0
- package/lib/helpers/vsixutils.js +1069 -0
- package/lib/inventory/agentFormulationParser.js +322 -0
- package/lib/inventory/aiCollector.js +2140 -0
- package/lib/inventory/aiInventory.js +414 -0
- package/lib/inventory/aiModelVariants.js +121 -0
- package/lib/inventory/aiOversightCollector.js +661 -0
- package/lib/inventory/aiProvenanceCollector.js +822 -0
- package/lib/inventory/analyzer.js +6089 -0
- package/lib/inventory/analyzerScope.js +807 -0
- package/lib/inventory/astWorker.js +20 -0
- package/lib/inventory/atomUtils.js +1092 -0
- package/lib/inventory/auditCategories.js +192 -0
- package/lib/inventory/bomUtils.js +369 -0
- package/lib/inventory/cacheCommands.js +182 -0
- package/lib/inventory/cacheDir.js +104 -0
- package/lib/inventory/cbomutils.js +590 -0
- package/lib/inventory/cdxrs.js +434 -0
- package/lib/inventory/ciParsers/azurePipelines.js +295 -0
- package/lib/inventory/ciParsers/circleCi.js +286 -0
- package/lib/inventory/ciParsers/common.js +24 -0
- package/lib/inventory/ciParsers/githubActions.js +2434 -0
- package/lib/inventory/ciParsers/gitlabCi.js +213 -0
- package/lib/inventory/ciParsers/jenkins.js +180 -0
- package/lib/inventory/citations.js +234 -0
- package/lib/inventory/communityAiConfigParser.js +756 -0
- package/lib/inventory/containerRisk.js +204 -0
- package/lib/inventory/cryptoAlgorithmFamily.js +258 -0
- package/lib/inventory/deps.js +807 -0
- package/lib/inventory/depsUtils.js +588 -0
- package/lib/inventory/display.js +2128 -0
- package/lib/inventory/dosai.js +601 -0
- package/lib/inventory/dosaiParsers.js +154 -0
- package/lib/inventory/dynamic.js +145 -0
- package/lib/inventory/envcontext.js +1789 -0
- package/lib/inventory/evidenceUtils.js +774 -0
- package/lib/inventory/fetchBatch.js +779 -0
- package/lib/inventory/fetchRate.js +255 -0
- package/lib/inventory/forgeEnricher.js +300 -0
- package/lib/inventory/formulationParsers.js +422 -0
- package/lib/inventory/gtfobins.js +339 -0
- package/lib/inventory/hbom.js +719 -0
- package/lib/inventory/hbomAnalysis.js +310 -0
- package/lib/inventory/hbomLoader.js +35 -0
- package/lib/inventory/hostTopology.js +835 -0
- package/lib/inventory/inventoryStats.js +100 -0
- package/lib/inventory/jsonLike.js +121 -0
- package/lib/inventory/licenseEnhancer.js +918 -0
- package/lib/inventory/lolbas.js +285 -0
- package/lib/inventory/mcp.js +253 -0
- package/lib/inventory/mcpConfigParser.js +683 -0
- package/lib/inventory/mcpDiscovery.js +112 -0
- package/lib/inventory/mcpPinning.js +209 -0
- package/lib/inventory/osPackageResolver.js +493 -0
- package/lib/inventory/osinfo.js +277 -0
- package/lib/inventory/osqueryTransform.js +274 -0
- package/lib/inventory/plugins.js +466 -0
- package/lib/inventory/protobom.js +231 -0
- package/lib/inventory/protobomLoader.js +43 -0
- package/lib/inventory/provenanceUtils.js +224 -0
- package/lib/inventory/purl.js +749 -0
- package/lib/inventory/rustFormulationParser.js +339 -0
- package/lib/inventory/sbomDocument.js +340 -0
- package/lib/inventory/source.js +1488 -0
- package/lib/inventory/spdx.js +361 -0
- package/lib/inventory/spdxExpression.js +512 -0
- package/lib/inventory/spdxUtils.js +107 -0
- package/lib/inventory/table.js +263 -0
- package/lib/inventory/traceRunner.js +439 -0
- package/lib/inventory/unicodeScan.js +147 -0
- package/lib/managers/binary.js +3307 -0
- package/lib/managers/containerutils.js +125 -0
- package/lib/managers/docker.js +2145 -0
- package/lib/managers/dockerConnection.js +162 -0
- package/lib/managers/oci.js +704 -0
- package/lib/managers/piptree.js +267 -0
- package/lib/parsers/cmakeCache.js +199 -0
- package/lib/parsers/gguf.js +492 -0
- package/lib/parsers/gitAiNotes.js +233 -0
- package/lib/parsers/gitmodules.js +239 -0
- package/lib/parsers/htmlExtract.js +610 -0
- package/lib/parsers/huggingfaceManifest.js +551 -0
- package/lib/parsers/huggingfaceUtils.js +506 -0
- package/lib/parsers/iri.js +618 -0
- package/lib/parsers/npmrc.js +99 -0
- package/lib/parsers/ollama.js +101 -0
- package/lib/parsers/xml.js +841 -0
- package/lib/server/openapi.yaml +433 -0
- package/lib/server/server.js +616 -0
- package/lib/stages/postgen/annotator.js +977 -0
- package/lib/stages/postgen/auditBom.js +468 -0
- package/lib/stages/postgen/postgen.js +1239 -0
- package/lib/stages/postgen/ruleEngine.js +731 -0
- package/lib/stages/postgen/sortBom.js +195 -0
- package/lib/stages/postgen/spdxConverter.js +796 -0
- package/lib/stages/postgen/specVersionCompat.js +703 -0
- package/lib/stages/pregen/envAudit.js +388 -0
- package/lib/stages/pregen/pregen.js +637 -0
- package/lib/third-party/README.md +9 -0
- package/lib/third-party/arborist/CHANGELOG.md +1109 -0
- package/lib/third-party/arborist/LICENSE.md +20 -0
- package/lib/third-party/arborist/README.md +315 -0
- package/lib/third-party/arborist/lib/arborist/index.js +258 -0
- package/lib/third-party/arborist/lib/arborist/load-actual.js +605 -0
- package/lib/third-party/arborist/lib/arborist/load-virtual.js +300 -0
- package/lib/third-party/arborist/lib/bin-links.js +120 -0
- package/lib/third-party/arborist/lib/calc-dep-flags.js +130 -0
- package/lib/third-party/arborist/lib/case-insensitive-map.js +51 -0
- package/lib/third-party/arborist/lib/consistent-resolve.js +42 -0
- package/lib/third-party/arborist/lib/debug.js +50 -0
- package/lib/third-party/arborist/lib/dep-valid.js +190 -0
- package/lib/third-party/arborist/lib/edge.js +417 -0
- package/lib/third-party/arborist/lib/from-path.js +36 -0
- package/lib/third-party/arborist/lib/gather-dep-set.js +43 -0
- package/lib/third-party/arborist/lib/index.js +22 -0
- package/lib/third-party/arborist/lib/inventory.js +138 -0
- package/lib/third-party/arborist/lib/link.js +169 -0
- package/lib/third-party/arborist/lib/node.js +1673 -0
- package/lib/third-party/arborist/lib/npm-extension.js +45 -0
- package/lib/third-party/arborist/lib/override-resolves.js +11 -0
- package/lib/third-party/arborist/lib/override-set.js +319 -0
- package/lib/third-party/arborist/lib/package-extensions.js +289 -0
- package/lib/third-party/arborist/lib/printable.js +210 -0
- package/lib/third-party/arborist/lib/proc-log.js +30 -0
- package/lib/third-party/arborist/lib/realpath.js +100 -0
- package/lib/third-party/arborist/lib/relpath.js +4 -0
- package/lib/third-party/arborist/lib/shrinkwrap.js +1291 -0
- package/lib/third-party/arborist/lib/spec-from-lock.js +34 -0
- package/lib/third-party/arborist/lib/tree-check.js +165 -0
- package/lib/third-party/arborist/lib/validate-npm-package-name.js +107 -0
- package/lib/third-party/arborist/lib/version-from-tgz.js +51 -0
- package/lib/third-party/arborist/lib/yarn-lock.js +397 -0
- package/lib/validator/bomValidator.js +985 -0
- package/lib/validator/complianceEngine.js +241 -0
- package/lib/validator/complianceRules.js +1680 -0
- package/lib/validator/generated/runtime.mjs +17 -0
- package/lib/validator/generated/validate-1.6.mjs +21258 -0
- package/lib/validator/generated/validate-1.7.mjs +24803 -0
- package/lib/validator/generated/validate-2.0.mjs +22931 -0
- package/lib/validator/index.js +246 -0
- package/lib/validator/reporters/annotations.js +142 -0
- package/lib/validator/reporters/console.js +160 -0
- package/lib/validator/reporters/index.js +41 -0
- package/lib/validator/reporters/json.js +37 -0
- package/lib/validator/reporters/sarif.js +184 -0
- package/package.json +209 -26
- package/types/bin/audit.d.ts +3 -0
- package/types/bin/audit.d.ts.map +1 -0
- package/types/bin/cdxgen.d.ts +3 -0
- package/types/bin/cdxgen.d.ts.map +1 -0
- package/types/bin/convert.d.ts +3 -0
- package/types/bin/convert.d.ts.map +1 -0
- package/types/bin/evinse.d.ts +3 -0
- package/types/bin/evinse.d.ts.map +1 -0
- package/types/bin/hbom.d.ts +3 -0
- package/types/bin/hbom.d.ts.map +1 -0
- package/types/bin/repl.d.ts +3 -0
- package/types/bin/repl.d.ts.map +1 -0
- package/types/bin/sign.d.ts +3 -0
- package/types/bin/sign.d.ts.map +1 -0
- package/types/bin/tracebom.d.ts +3 -0
- package/types/bin/tracebom.d.ts.map +1 -0
- package/types/bin/validate.d.ts +14 -0
- package/types/bin/validate.d.ts.map +1 -0
- package/types/bin/verify.d.ts +3 -0
- package/types/bin/verify.d.ts.map +1 -0
- package/types/lib/audit/index.d.ts +153 -0
- package/types/lib/audit/index.d.ts.map +1 -0
- package/types/lib/audit/progress.d.ts +31 -0
- package/types/lib/audit/progress.d.ts.map +1 -0
- package/types/lib/audit/reporters.d.ts +62 -0
- package/types/lib/audit/reporters.d.ts.map +1 -0
- package/types/lib/audit/scoring.d.ts +36 -0
- package/types/lib/audit/scoring.d.ts.map +1 -0
- package/types/lib/audit/targets.d.ts +77 -0
- package/types/lib/audit/targets.d.ts.map +1 -0
- package/types/lib/cli/bomAssembly.d.ts +315 -0
- package/types/lib/cli/bomAssembly.d.ts.map +1 -0
- package/types/lib/cli/cliOptions.d.ts +156 -0
- package/types/lib/cli/cliOptions.d.ts.map +1 -0
- package/types/lib/cli/index.d.ts +107 -0
- package/types/lib/cli/index.d.ts.map +1 -0
- package/types/lib/cli/jsBom.d.ts +94 -0
- package/types/lib/cli/jsBom.d.ts.map +1 -0
- package/types/lib/cli/jvmBom.d.ts +54 -0
- package/types/lib/cli/jvmBom.d.ts.map +1 -0
- package/types/lib/cli/managedBom.d.ts +105 -0
- package/types/lib/cli/managedBom.d.ts.map +1 -0
- package/types/lib/cli/nativeBom.d.ts +143 -0
- package/types/lib/cli/nativeBom.d.ts.map +1 -0
- package/types/lib/core/activity.d.ts +178 -0
- package/types/lib/core/activity.d.ts.map +1 -0
- package/types/lib/core/env.d.ts +192 -0
- package/types/lib/core/env.d.ts.map +1 -0
- package/types/lib/core/fs.d.ts +158 -0
- package/types/lib/core/fs.d.ts.map +1 -0
- package/types/lib/core/httpClient.d.ts +149 -0
- package/types/lib/core/httpClient.d.ts.map +1 -0
- package/types/lib/core/logger.d.ts +28 -0
- package/types/lib/core/logger.d.ts.map +1 -0
- package/types/lib/core/parallel.d.ts +95 -0
- package/types/lib/core/parallel.d.ts.map +1 -0
- package/types/lib/core/paths.d.ts +36 -0
- package/types/lib/core/paths.d.ts.map +1 -0
- package/types/lib/core/projectConfig.d.ts +23 -0
- package/types/lib/core/projectConfig.d.ts.map +1 -0
- package/types/lib/core/propertySanitizer.d.ts +23 -0
- package/types/lib/core/propertySanitizer.d.ts.map +1 -0
- package/types/lib/core/spdx.d.ts +5 -0
- package/types/lib/core/spdx.d.ts.map +1 -0
- package/types/lib/core/state.d.ts +20 -0
- package/types/lib/core/state.d.ts.map +1 -0
- package/types/lib/core/text.d.ts +78 -0
- package/types/lib/core/text.d.ts.map +1 -0
- package/types/lib/core/ui.d.ts +87 -0
- package/types/lib/core/ui.d.ts.map +1 -0
- package/types/lib/core/urls.d.ts +43 -0
- package/types/lib/core/urls.d.ts.map +1 -0
- package/types/lib/ecosystems/asarutils.d.ts +71 -0
- package/types/lib/ecosystems/asarutils.d.ts.map +1 -0
- package/types/lib/ecosystems/bunutils.d.ts +38 -0
- package/types/lib/ecosystems/bunutils.d.ts.map +1 -0
- package/types/lib/ecosystems/caxa.d.ts +8 -0
- package/types/lib/ecosystems/caxa.d.ts.map +1 -0
- package/types/lib/ecosystems/chromextutils.d.ts +97 -0
- package/types/lib/ecosystems/chromextutils.d.ts.map +1 -0
- package/types/lib/ecosystems/cmakeResolver.d.ts +176 -0
- package/types/lib/ecosystems/cmakeResolver.d.ts.map +1 -0
- package/types/lib/ecosystems/cppEvidence.d.ts +35 -0
- package/types/lib/ecosystems/cppEvidence.d.ts.map +1 -0
- package/types/lib/ecosystems/denoutils.d.ts +76 -0
- package/types/lib/ecosystems/denoutils.d.ts.map +1 -0
- package/types/lib/ecosystems/dotnetutils.d.ts +45 -0
- package/types/lib/ecosystems/dotnetutils.d.ts.map +1 -0
- package/types/lib/ecosystems/ecosystems.d.ts +279 -0
- package/types/lib/ecosystems/ecosystems.d.ts.map +1 -0
- package/types/lib/ecosystems/golem.d.ts +60 -0
- package/types/lib/ecosystems/golem.d.ts.map +1 -0
- package/types/lib/ecosystems/gradleutils.d.ts +139 -0
- package/types/lib/ecosystems/gradleutils.d.ts.map +1 -0
- package/types/lib/ecosystems/jsEvidence.d.ts +17 -0
- package/types/lib/ecosystems/jsEvidence.d.ts.map +1 -0
- package/types/lib/ecosystems/npmutils.d.ts +183 -0
- package/types/lib/ecosystems/npmutils.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-bazel.d.ts +36 -0
- package/types/lib/ecosystems/parsers-bazel.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-dotnet.d.ts +116 -0
- package/types/lib/ecosystems/parsers-dotnet.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-gleam.d.ts +33 -0
- package/types/lib/ecosystems/parsers-gleam.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-go.d.ts +92 -0
- package/types/lib/ecosystems/parsers-go.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-js.d.ts +242 -0
- package/types/lib/ecosystems/parsers-js.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-jvm.d.ts +100 -0
- package/types/lib/ecosystems/parsers-jvm.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-misc.d.ts +450 -0
- package/types/lib/ecosystems/parsers-misc.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-python.d.ts +145 -0
- package/types/lib/ecosystems/parsers-python.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-rust.d.ts +56 -0
- package/types/lib/ecosystems/parsers-rust.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-zig.d.ts +83 -0
- package/types/lib/ecosystems/parsers-zig.d.ts.map +1 -0
- package/types/lib/ecosystems/pep770.d.ts +38 -0
- package/types/lib/ecosystems/pep770.d.ts.map +1 -0
- package/types/lib/ecosystems/pylockutils.d.ts +68 -0
- package/types/lib/ecosystems/pylockutils.d.ts.map +1 -0
- package/types/lib/ecosystems/pythonutils.d.ts +70 -0
- package/types/lib/ecosystems/pythonutils.d.ts.map +1 -0
- package/types/lib/ecosystems/registryProvenance.d.ts +26 -0
- package/types/lib/ecosystems/registryProvenance.d.ts.map +1 -0
- package/types/lib/ecosystems/remote/huggingface.d.ts +31 -0
- package/types/lib/ecosystems/remote/huggingface.d.ts.map +1 -0
- package/types/lib/ecosystems/rubyutils.d.ts +182 -0
- package/types/lib/ecosystems/rubyutils.d.ts.map +1 -0
- package/types/lib/ecosystems/rusi.d.ts +40 -0
- package/types/lib/ecosystems/rusi.d.ts.map +1 -0
- package/types/lib/ecosystems/sbtutils.d.ts +179 -0
- package/types/lib/ecosystems/sbtutils.d.ts.map +1 -0
- package/types/lib/ecosystems/tea.d.ts +180 -0
- package/types/lib/ecosystems/tea.d.ts.map +1 -0
- package/types/lib/ecosystems/utils.d.ts +41 -0
- package/types/lib/ecosystems/utils.d.ts.map +1 -0
- package/types/lib/ecosystems/zigResolver.d.ts +70 -0
- package/types/lib/ecosystems/zigResolver.d.ts.map +1 -0
- package/types/lib/evinser/db.d.ts +17 -0
- package/types/lib/evinser/db.d.ts.map +1 -0
- package/types/lib/evinser/evinser.d.ts +354 -0
- package/types/lib/evinser/evinser.d.ts.map +1 -0
- package/types/lib/evinser/scalasem.d.ts +15 -0
- package/types/lib/evinser/scalasem.d.ts.map +1 -0
- package/types/lib/evinser/swiftsem.d.ts +103 -0
- package/types/lib/evinser/swiftsem.d.ts.map +1 -0
- package/types/lib/helpers/annotationFormatter.d.ts +23 -0
- package/types/lib/helpers/annotationFormatter.d.ts.map +1 -0
- package/types/lib/helpers/bomSigner.d.ts +28 -0
- package/types/lib/helpers/bomSigner.d.ts.map +1 -0
- package/types/lib/helpers/exportUtils.d.ts +52 -0
- package/types/lib/helpers/exportUtils.d.ts.map +1 -0
- package/types/lib/helpers/remote/dependency-track.d.ts +23 -0
- package/types/lib/helpers/remote/dependency-track.d.ts.map +1 -0
- package/types/lib/helpers/versutils.d.ts +8 -0
- package/types/lib/helpers/versutils.d.ts.map +1 -0
- package/types/lib/helpers/vsixutils.d.ts +130 -0
- package/types/lib/helpers/vsixutils.d.ts.map +1 -0
- package/types/lib/inventory/agentFormulationParser.d.ts +21 -0
- package/types/lib/inventory/agentFormulationParser.d.ts.map +1 -0
- package/types/lib/inventory/aiCollector.d.ts +61 -0
- package/types/lib/inventory/aiCollector.d.ts.map +1 -0
- package/types/lib/inventory/aiInventory.d.ts +103 -0
- package/types/lib/inventory/aiInventory.d.ts.map +1 -0
- package/types/lib/inventory/aiModelVariants.d.ts +31 -0
- package/types/lib/inventory/aiModelVariants.d.ts.map +1 -0
- package/types/lib/inventory/aiOversightCollector.d.ts +28 -0
- package/types/lib/inventory/aiOversightCollector.d.ts.map +1 -0
- package/types/lib/inventory/aiProvenanceCollector.d.ts +13 -0
- package/types/lib/inventory/aiProvenanceCollector.d.ts.map +1 -0
- package/types/lib/inventory/analyzer.d.ts +157 -0
- package/types/lib/inventory/analyzer.d.ts.map +1 -0
- package/types/lib/inventory/analyzerScope.d.ts +106 -0
- package/types/lib/inventory/analyzerScope.d.ts.map +1 -0
- package/types/lib/inventory/astWorker.d.ts +9 -0
- package/types/lib/inventory/astWorker.d.ts.map +1 -0
- package/types/lib/inventory/atomUtils.d.ts +159 -0
- package/types/lib/inventory/atomUtils.d.ts.map +1 -0
- package/types/lib/inventory/auditCategories.d.ts +80 -0
- package/types/lib/inventory/auditCategories.d.ts.map +1 -0
- package/types/lib/inventory/bomUtils.d.ts +145 -0
- package/types/lib/inventory/bomUtils.d.ts.map +1 -0
- package/types/lib/inventory/cacheCommands.d.ts +28 -0
- package/types/lib/inventory/cacheCommands.d.ts.map +1 -0
- package/types/lib/inventory/cacheDir.d.ts +55 -0
- package/types/lib/inventory/cacheDir.d.ts.map +1 -0
- package/types/lib/inventory/cbomutils.d.ts +37 -0
- package/types/lib/inventory/cbomutils.d.ts.map +1 -0
- package/types/lib/inventory/cdxrs.d.ts +90 -0
- package/types/lib/inventory/cdxrs.d.ts.map +1 -0
- package/types/lib/inventory/ciParsers/azurePipelines.d.ts +27 -0
- package/types/lib/inventory/ciParsers/azurePipelines.d.ts.map +1 -0
- package/types/lib/inventory/ciParsers/circleCi.d.ts +27 -0
- package/types/lib/inventory/ciParsers/circleCi.d.ts.map +1 -0
- package/types/lib/inventory/ciParsers/common.d.ts +11 -0
- package/types/lib/inventory/ciParsers/common.d.ts.map +1 -0
- package/types/lib/inventory/ciParsers/githubActions.d.ts +38 -0
- package/types/lib/inventory/ciParsers/githubActions.d.ts.map +1 -0
- package/types/lib/inventory/ciParsers/gitlabCi.d.ts +26 -0
- package/types/lib/inventory/ciParsers/gitlabCi.d.ts.map +1 -0
- package/types/lib/inventory/ciParsers/jenkins.d.ts +26 -0
- package/types/lib/inventory/ciParsers/jenkins.d.ts.map +1 -0
- package/types/lib/inventory/citations.d.ts +90 -0
- package/types/lib/inventory/citations.d.ts.map +1 -0
- package/types/lib/inventory/communityAiConfigParser.d.ts +14 -0
- package/types/lib/inventory/communityAiConfigParser.d.ts.map +1 -0
- package/types/lib/inventory/containerRisk.d.ts +20 -0
- package/types/lib/inventory/containerRisk.d.ts.map +1 -0
- package/types/lib/inventory/cryptoAlgorithmFamily.d.ts +37 -0
- package/types/lib/inventory/cryptoAlgorithmFamily.d.ts.map +1 -0
- package/types/lib/inventory/deps.d.ts +140 -0
- package/types/lib/inventory/deps.d.ts.map +1 -0
- package/types/lib/inventory/depsUtils.d.ts +74 -0
- package/types/lib/inventory/depsUtils.d.ts.map +1 -0
- package/types/lib/inventory/display.d.ts +227 -0
- package/types/lib/inventory/display.d.ts.map +1 -0
- package/types/lib/inventory/dosai.d.ts +130 -0
- package/types/lib/inventory/dosai.d.ts.map +1 -0
- package/types/lib/inventory/dosaiParsers.d.ts +59 -0
- package/types/lib/inventory/dosaiParsers.d.ts.map +1 -0
- package/types/lib/inventory/dynamic.d.ts +25 -0
- package/types/lib/inventory/dynamic.d.ts.map +1 -0
- package/types/lib/inventory/envcontext.d.ts +377 -0
- package/types/lib/inventory/envcontext.d.ts.map +1 -0
- package/types/lib/inventory/evidenceUtils.d.ts +74 -0
- package/types/lib/inventory/evidenceUtils.d.ts.map +1 -0
- package/types/lib/inventory/fetchBatch.d.ts +127 -0
- package/types/lib/inventory/fetchBatch.d.ts.map +1 -0
- package/types/lib/inventory/fetchRate.d.ts +118 -0
- package/types/lib/inventory/fetchRate.d.ts.map +1 -0
- package/types/lib/inventory/forgeEnricher.d.ts +31 -0
- package/types/lib/inventory/forgeEnricher.d.ts.map +1 -0
- package/types/lib/inventory/formulationParsers.d.ts +50 -0
- package/types/lib/inventory/formulationParsers.d.ts.map +1 -0
- package/types/lib/inventory/gtfobins.d.ts +27 -0
- package/types/lib/inventory/gtfobins.d.ts.map +1 -0
- package/types/lib/inventory/hbom.d.ts +58 -0
- package/types/lib/inventory/hbom.d.ts.map +1 -0
- package/types/lib/inventory/hbomAnalysis.d.ts +56 -0
- package/types/lib/inventory/hbomAnalysis.d.ts.map +1 -0
- package/types/lib/inventory/hbomLoader.d.ts +7 -0
- package/types/lib/inventory/hbomLoader.d.ts.map +1 -0
- package/types/lib/inventory/hostTopology.d.ts +47 -0
- package/types/lib/inventory/hostTopology.d.ts.map +1 -0
- package/types/lib/inventory/inventoryStats.d.ts +42 -0
- package/types/lib/inventory/inventoryStats.d.ts.map +1 -0
- package/types/lib/inventory/jsonLike.d.ts +23 -0
- package/types/lib/inventory/jsonLike.d.ts.map +1 -0
- package/types/lib/inventory/licenseEnhancer.d.ts +70 -0
- package/types/lib/inventory/licenseEnhancer.d.ts.map +1 -0
- package/types/lib/inventory/lolbas.d.ts +16 -0
- package/types/lib/inventory/lolbas.d.ts.map +1 -0
- package/types/lib/inventory/mcp.d.ts +29 -0
- package/types/lib/inventory/mcp.d.ts.map +1 -0
- package/types/lib/inventory/mcpConfigParser.d.ts +20 -0
- package/types/lib/inventory/mcpConfigParser.d.ts.map +1 -0
- package/types/lib/inventory/mcpDiscovery.d.ts +33 -0
- package/types/lib/inventory/mcpDiscovery.d.ts.map +1 -0
- package/types/lib/inventory/mcpPinning.d.ts +11 -0
- package/types/lib/inventory/mcpPinning.d.ts.map +1 -0
- package/types/lib/inventory/osPackageResolver.d.ts +49 -0
- package/types/lib/inventory/osPackageResolver.d.ts.map +1 -0
- package/types/lib/inventory/osinfo.d.ts +120 -0
- package/types/lib/inventory/osinfo.d.ts.map +1 -0
- package/types/lib/inventory/osqueryTransform.d.ts +84 -0
- package/types/lib/inventory/osqueryTransform.d.ts.map +1 -0
- package/types/lib/inventory/plugins.d.ts +58 -0
- package/types/lib/inventory/plugins.d.ts.map +1 -0
- package/types/lib/inventory/protobom.d.ts +71 -0
- package/types/lib/inventory/protobom.d.ts.map +1 -0
- package/types/lib/inventory/protobomLoader.d.ts +17 -0
- package/types/lib/inventory/protobomLoader.d.ts.map +1 -0
- package/types/lib/inventory/provenanceUtils.d.ts +98 -0
- package/types/lib/inventory/provenanceUtils.d.ts.map +1 -0
- package/types/lib/inventory/purl.d.ts +313 -0
- package/types/lib/inventory/purl.d.ts.map +1 -0
- package/types/lib/inventory/rustFormulationParser.d.ts +17 -0
- package/types/lib/inventory/rustFormulationParser.d.ts.map +1 -0
- package/types/lib/inventory/sbomDocument.d.ts +59 -0
- package/types/lib/inventory/sbomDocument.d.ts.map +1 -0
- package/types/lib/inventory/source.d.ts +163 -0
- package/types/lib/inventory/source.d.ts.map +1 -0
- package/types/lib/inventory/spdx.d.ts +66 -0
- package/types/lib/inventory/spdx.d.ts.map +1 -0
- package/types/lib/inventory/spdxExpression.d.ts +58 -0
- package/types/lib/inventory/spdxExpression.d.ts.map +1 -0
- package/types/lib/inventory/spdxUtils.d.ts +12 -0
- package/types/lib/inventory/spdxUtils.d.ts.map +1 -0
- package/types/lib/inventory/table.d.ts +19 -0
- package/types/lib/inventory/table.d.ts.map +1 -0
- package/types/lib/inventory/traceRunner.d.ts +80 -0
- package/types/lib/inventory/traceRunner.d.ts.map +1 -0
- package/types/lib/inventory/unicodeScan.d.ts +46 -0
- package/types/lib/inventory/unicodeScan.d.ts.map +1 -0
- package/types/lib/managers/binary.d.ts +76 -0
- package/types/lib/managers/binary.d.ts.map +1 -0
- package/types/lib/managers/containerutils.d.ts +30 -0
- package/types/lib/managers/containerutils.d.ts.map +1 -0
- package/types/lib/managers/docker.d.ts +157 -0
- package/types/lib/managers/docker.d.ts.map +1 -0
- package/types/lib/managers/dockerConnection.d.ts +42 -0
- package/types/lib/managers/dockerConnection.d.ts.map +1 -0
- package/types/lib/managers/oci.d.ts +21 -0
- package/types/lib/managers/oci.d.ts.map +1 -0
- package/types/lib/managers/piptree.d.ts +13 -0
- package/types/lib/managers/piptree.d.ts.map +1 -0
- package/types/lib/parsers/cmakeCache.d.ts +70 -0
- package/types/lib/parsers/cmakeCache.d.ts.map +1 -0
- package/types/lib/parsers/gguf.d.ts +39 -0
- package/types/lib/parsers/gguf.d.ts.map +1 -0
- package/types/lib/parsers/gitAiNotes.d.ts +15 -0
- package/types/lib/parsers/gitAiNotes.d.ts.map +1 -0
- package/types/lib/parsers/gitmodules.d.ts +88 -0
- package/types/lib/parsers/gitmodules.d.ts.map +1 -0
- package/types/lib/parsers/htmlExtract.d.ts +34 -0
- package/types/lib/parsers/htmlExtract.d.ts.map +1 -0
- package/types/lib/parsers/huggingfaceManifest.d.ts +153 -0
- package/types/lib/parsers/huggingfaceManifest.d.ts.map +1 -0
- package/types/lib/parsers/huggingfaceUtils.d.ts +155 -0
- package/types/lib/parsers/huggingfaceUtils.d.ts.map +1 -0
- package/types/lib/parsers/iri.d.ts +68 -0
- package/types/lib/parsers/iri.d.ts.map +1 -0
- package/types/lib/parsers/npmrc.d.ts +33 -0
- package/types/lib/parsers/npmrc.d.ts.map +1 -0
- package/types/lib/parsers/ollama.d.ts +22 -0
- package/types/lib/parsers/ollama.d.ts.map +1 -0
- package/types/lib/parsers/xml.d.ts +47 -0
- package/types/lib/parsers/xml.d.ts.map +1 -0
- package/types/lib/server/server.d.ts +51 -0
- package/types/lib/server/server.d.ts.map +1 -0
- package/types/lib/stages/postgen/annotator.d.ts +36 -0
- package/types/lib/stages/postgen/annotator.d.ts.map +1 -0
- package/types/lib/stages/postgen/auditBom.d.ts +92 -0
- package/types/lib/stages/postgen/auditBom.d.ts.map +1 -0
- package/types/lib/stages/postgen/postgen.d.ts +59 -0
- package/types/lib/stages/postgen/postgen.d.ts.map +1 -0
- package/types/lib/stages/postgen/ruleEngine.d.ts +18 -0
- package/types/lib/stages/postgen/ruleEngine.d.ts.map +1 -0
- package/types/lib/stages/postgen/sortBom.d.ts +34 -0
- package/types/lib/stages/postgen/sortBom.d.ts.map +1 -0
- package/types/lib/stages/postgen/spdxConverter.d.ts +11 -0
- package/types/lib/stages/postgen/spdxConverter.d.ts.map +1 -0
- package/types/lib/stages/postgen/specVersionCompat.d.ts +71 -0
- package/types/lib/stages/postgen/specVersionCompat.d.ts.map +1 -0
- package/types/lib/stages/pregen/envAudit.d.ts +14 -0
- package/types/lib/stages/pregen/envAudit.d.ts.map +1 -0
- package/types/lib/stages/pregen/pregen.d.ts +59 -0
- package/types/lib/stages/pregen/pregen.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/arborist/index.d.ts +47 -0
- package/types/lib/third-party/arborist/lib/arborist/index.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/arborist/load-actual.d.ts +4 -0
- package/types/lib/third-party/arborist/lib/arborist/load-actual.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/arborist/load-virtual.d.ts +4 -0
- package/types/lib/third-party/arborist/lib/arborist/load-virtual.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/bin-links.d.ts +18 -0
- package/types/lib/third-party/arborist/lib/bin-links.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/calc-dep-flags.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/calc-dep-flags.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/case-insensitive-map.d.ts +9 -0
- package/types/lib/third-party/arborist/lib/case-insensitive-map.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/consistent-resolve.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/consistent-resolve.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/debug.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/debug.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/dep-valid.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/dep-valid.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/edge.d.ts +46 -0
- package/types/lib/third-party/arborist/lib/edge.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/from-path.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/from-path.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/gather-dep-set.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/gather-dep-set.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/index.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/index.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/inventory.d.ts +14 -0
- package/types/lib/third-party/arborist/lib/inventory.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/link.d.ts +18 -0
- package/types/lib/third-party/arborist/lib/link.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/node.d.ts +112 -0
- package/types/lib/third-party/arborist/lib/node.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/npm-extension.d.ts +18 -0
- package/types/lib/third-party/arborist/lib/npm-extension.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/override-resolves.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/override-resolves.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/override-set.d.ts +27 -0
- package/types/lib/third-party/arborist/lib/override-set.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/package-extensions.d.ts +36 -0
- package/types/lib/third-party/arborist/lib/package-extensions.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/printable.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/printable.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/proc-log.d.ts +20 -0
- package/types/lib/third-party/arborist/lib/proc-log.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/realpath.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/realpath.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/relpath.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/relpath.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/shrinkwrap.d.ts +54 -0
- package/types/lib/third-party/arborist/lib/shrinkwrap.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/spec-from-lock.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/spec-from-lock.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/tree-check.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/tree-check.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/validate-npm-package-name.d.ts +13 -0
- package/types/lib/third-party/arborist/lib/validate-npm-package-name.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/version-from-tgz.d.ts +6 -0
- package/types/lib/third-party/arborist/lib/version-from-tgz.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/yarn-lock.d.ts +35 -0
- package/types/lib/third-party/arborist/lib/yarn-lock.d.ts.map +1 -0
- package/types/lib/validator/bomValidator.d.ts +40 -0
- package/types/lib/validator/bomValidator.d.ts.map +1 -0
- package/types/lib/validator/complianceEngine.d.ts +72 -0
- package/types/lib/validator/complianceEngine.d.ts.map +1 -0
- package/types/lib/validator/complianceRules.d.ts +61 -0
- package/types/lib/validator/complianceRules.d.ts.map +1 -0
- package/types/lib/validator/index.d.ts +101 -0
- package/types/lib/validator/index.d.ts.map +1 -0
- package/types/lib/validator/reporters/annotations.d.ts +37 -0
- package/types/lib/validator/reporters/annotations.d.ts.map +1 -0
- package/types/lib/validator/reporters/console.d.ts +34 -0
- package/types/lib/validator/reporters/console.d.ts.map +1 -0
- package/types/lib/validator/reporters/index.d.ts +30 -0
- package/types/lib/validator/reporters/index.d.ts.map +1 -0
- package/types/lib/validator/reporters/json.d.ts +11 -0
- package/types/lib/validator/reporters/json.d.ts.map +1 -0
- package/types/lib/validator/reporters/sarif.d.ts +22 -0
- package/types/lib/validator/reporters/sarif.d.ts.map +1 -0
- package/mod.d.ts +0 -7
- package/mod.js +0 -22
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# Electron ASAR archive security rules
|
|
2
|
+
# Category: asar-archive
|
|
3
|
+
# Evaluates packaged Electron application archives for dynamic execution,
|
|
4
|
+
# capability overlap, integrity mismatches, and embedded install-time scripts.
|
|
5
|
+
|
|
6
|
+
- id: ASAR-001
|
|
7
|
+
name: "Archived JavaScript with eval or dynamic loading"
|
|
8
|
+
description: "ASAR-packaged JavaScript using eval, Function, or dynamic import/require deserves review for arbitrary code execution and remote payload loading risk."
|
|
9
|
+
severity: high
|
|
10
|
+
category: asar-archive
|
|
11
|
+
dry-run-support: full
|
|
12
|
+
condition: |
|
|
13
|
+
components[
|
|
14
|
+
$prop($, 'cdx:file:kind') = 'asar-entry'
|
|
15
|
+
and (
|
|
16
|
+
$propBool($, 'cdx:asar:js:hasEval') = true
|
|
17
|
+
or $propBool($, 'cdx:asar:js:capability:dynamicImport') = true
|
|
18
|
+
or $listContains($propList($, 'cdx:asar:js:executionIndicators'), 'eval')
|
|
19
|
+
or $listContains($propList($, 'cdx:asar:js:executionIndicators'), 'function-constructor')
|
|
20
|
+
)
|
|
21
|
+
]
|
|
22
|
+
location: |
|
|
23
|
+
{
|
|
24
|
+
"bomRef": $. "bom-ref",
|
|
25
|
+
"srcFile": $prop($, 'internal:SrcFile'),
|
|
26
|
+
"archivePath": $prop($, 'cdx:asar:path')
|
|
27
|
+
}
|
|
28
|
+
message: "Archived JavaScript '{{ name }}' uses eval-like or dynamic loading behavior inside an ASAR package"
|
|
29
|
+
mitigation: "Review the packaged source for eval, Function, dynamic import, or runtime module resolution. Prefer static imports and signed update channels."
|
|
30
|
+
evidence: |
|
|
31
|
+
{
|
|
32
|
+
"archivePath": $prop($, 'cdx:asar:path'),
|
|
33
|
+
"executionIndicators": $prop($, 'cdx:asar:js:executionIndicators'),
|
|
34
|
+
"dynamicImport": $prop($, 'cdx:asar:js:capability:dynamicImport'),
|
|
35
|
+
"hasEval": $prop($, 'cdx:asar:js:hasEval')
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
- id: ASAR-002
|
|
39
|
+
name: "Archived JavaScript with network plus file or hardware access"
|
|
40
|
+
description: "Packaged JavaScript that combines outbound network capability with filesystem or hardware access can materially increase exfiltration or device-control risk."
|
|
41
|
+
severity: high
|
|
42
|
+
category: asar-archive
|
|
43
|
+
dry-run-support: full
|
|
44
|
+
condition: |
|
|
45
|
+
components[
|
|
46
|
+
$prop($, 'cdx:file:kind') = 'asar-entry'
|
|
47
|
+
and $propBool($, 'cdx:asar:js:capability:network') = true
|
|
48
|
+
and (
|
|
49
|
+
$propBool($, 'cdx:asar:js:capability:fileAccess') = true
|
|
50
|
+
or $propBool($, 'cdx:asar:js:capability:hardware') = true
|
|
51
|
+
or $propBool($, 'cdx:asar:js:hasDynamicFetch') = true
|
|
52
|
+
)
|
|
53
|
+
]
|
|
54
|
+
location: |
|
|
55
|
+
{
|
|
56
|
+
"bomRef": $. "bom-ref",
|
|
57
|
+
"srcFile": $prop($, 'internal:SrcFile'),
|
|
58
|
+
"archivePath": $prop($, 'cdx:asar:path')
|
|
59
|
+
}
|
|
60
|
+
message: "Archived JavaScript '{{ name }}' combines network behavior with sensitive local access capabilities"
|
|
61
|
+
mitigation: "Review outbound endpoints, local file access, and hardware APIs. Limit packaged code to explicit allowlisted operations and sign release artifacts."
|
|
62
|
+
evidence: |
|
|
63
|
+
{
|
|
64
|
+
"archivePath": $prop($, 'cdx:asar:path'),
|
|
65
|
+
"capabilities": $prop($, 'cdx:asar:js:capabilities'),
|
|
66
|
+
"networkIndicators": $prop($, 'cdx:asar:js:networkIndicators'),
|
|
67
|
+
"hardwareIndicators": $prop($, 'cdx:asar:js:hardwareIndicators'),
|
|
68
|
+
"fileAccessIndicators": $prop($, 'cdx:asar:js:fileAccessIndicators')
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
- id: ASAR-003
|
|
72
|
+
name: "Declared ASAR integrity mismatch"
|
|
73
|
+
description: "An ASAR entry whose declared integrity hash does not match the computed file hash may indicate tampering or packaging defects."
|
|
74
|
+
severity: high
|
|
75
|
+
category: asar-archive
|
|
76
|
+
dry-run-support: full
|
|
77
|
+
condition: |
|
|
78
|
+
components[
|
|
79
|
+
$prop($, 'cdx:file:kind') = 'asar-entry'
|
|
80
|
+
and $prop($, 'cdx:asar:integrityVerified') = 'false'
|
|
81
|
+
]
|
|
82
|
+
location: |
|
|
83
|
+
{
|
|
84
|
+
"bomRef": $. "bom-ref",
|
|
85
|
+
"srcFile": $prop($, 'internal:SrcFile'),
|
|
86
|
+
"archivePath": $prop($, 'cdx:asar:path')
|
|
87
|
+
}
|
|
88
|
+
message: "Archived entry '{{ name }}' has a declared integrity hash mismatch inside an ASAR package"
|
|
89
|
+
mitigation: "Rebuild the archive from trusted sources, verify signing provenance, and compare the packaged file to the expected release artifact."
|
|
90
|
+
evidence: |
|
|
91
|
+
{
|
|
92
|
+
"archivePath": $prop($, 'cdx:asar:path'),
|
|
93
|
+
"declaredHash": $prop($, 'cdx:asar:declaredIntegrityHash'),
|
|
94
|
+
"verified": $prop($, 'cdx:asar:integrityVerified')
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
- id: ASAR-004
|
|
98
|
+
name: "Embedded npm package with install-time scripts inside ASAR"
|
|
99
|
+
description: "Node packages shipped inside ASAR archives that declare install/preinstall hooks are still useful compromise indicators during artifact review."
|
|
100
|
+
severity: high
|
|
101
|
+
category: asar-archive
|
|
102
|
+
dry-run-support: partial
|
|
103
|
+
condition: |
|
|
104
|
+
components[
|
|
105
|
+
$propBool($, 'cdx:npm:hasInstallScript') = true
|
|
106
|
+
and $contains($prop($, 'internal:SrcFile'), '.asar#/')
|
|
107
|
+
]
|
|
108
|
+
location: |
|
|
109
|
+
{
|
|
110
|
+
"bomRef": $. "bom-ref",
|
|
111
|
+
"purl": purl,
|
|
112
|
+
"srcFile": $prop($, 'internal:SrcFile')
|
|
113
|
+
}
|
|
114
|
+
message: "Embedded npm package '{{ name }}@{{ version }}' inside ASAR declares install-time lifecycle scripts"
|
|
115
|
+
mitigation: "Review the embedded package source and build provenance. Remove unnecessary lifecycle hooks or vendor only prebuilt trusted artifacts."
|
|
116
|
+
evidence: |
|
|
117
|
+
{
|
|
118
|
+
"srcFile": $prop($, 'internal:SrcFile'),
|
|
119
|
+
"lifecycleScripts": $prop($, 'cdx:npm:risky_scripts'),
|
|
120
|
+
"executionIndicators": $prop($, 'cdx:npm:lifecycleExecutionIndicators'),
|
|
121
|
+
"obfuscationIndicators": $prop($, 'cdx:npm:lifecycleObfuscationIndicators')
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
- id: ASAR-005
|
|
125
|
+
name: "Electron ASAR signing metadata failed verification"
|
|
126
|
+
description: "Electron Info.plist signing metadata that fails verification is a high-signal indicator of packaging defects or release-artifact tampering."
|
|
127
|
+
severity: high
|
|
128
|
+
category: asar-archive
|
|
129
|
+
dry-run-support: full
|
|
130
|
+
condition: |
|
|
131
|
+
components[
|
|
132
|
+
$prop($, 'cdx:file:kind') = 'asar-archive'
|
|
133
|
+
and $propBool($, 'cdx:asar:hasSigningMetadata') = true
|
|
134
|
+
and $prop($, 'cdx:asar:signingVerified') = 'false'
|
|
135
|
+
]
|
|
136
|
+
location: |
|
|
137
|
+
{
|
|
138
|
+
"bomRef": $. "bom-ref",
|
|
139
|
+
"srcFile": $prop($, 'internal:SrcFile')
|
|
140
|
+
}
|
|
141
|
+
message: "ASAR archive '{{ name }}' has Electron signing metadata that failed verification"
|
|
142
|
+
mitigation: "Rebuild the Electron package from trusted sources, verify the Info.plist ElectronAsarIntegrity data, and confirm the shipped ASAR matches the expected signed release artifact."
|
|
143
|
+
evidence: |
|
|
144
|
+
{
|
|
145
|
+
"signingDeclaredHash": $prop($, 'cdx:asar:signingDeclaredHash'),
|
|
146
|
+
"signingAlgorithm": $prop($, 'cdx:asar:signingAlgorithm'),
|
|
147
|
+
"signingSource": $prop($, 'cdx:asar:signingSource'),
|
|
148
|
+
"signingScope": $prop($, 'cdx:asar:signingScope'),
|
|
149
|
+
"signingVerified": $prop($, 'cdx:asar:signingVerified')
|
|
150
|
+
}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# CBOM Security and Compliance Rules
|
|
2
|
+
# Category: cbom-security, cbom-compliance
|
|
3
|
+
# Evaluates cryptographic assets (algorithms, protocols, certificates, related-crypto-material) for weaknesses.
|
|
4
|
+
|
|
5
|
+
- id: CBS-001
|
|
6
|
+
name: "Weak/Deprecated Cryptographic Algorithm"
|
|
7
|
+
description: "Usage of weak or deprecated cryptographic algorithms such as MD5, SHA-1, RC4, DES, 3DES, or Blowfish exposes data to decryption or collision attacks."
|
|
8
|
+
severity: high
|
|
9
|
+
category: cbom-security
|
|
10
|
+
dry-run-support: full
|
|
11
|
+
standards:
|
|
12
|
+
nist-800-53:
|
|
13
|
+
- "SC-13 Cryptographic Protection"
|
|
14
|
+
iso-27001:
|
|
15
|
+
- "A.8.24 Use of cryptography"
|
|
16
|
+
condition: |
|
|
17
|
+
components[
|
|
18
|
+
cryptoProperties.assetType = 'algorithm'
|
|
19
|
+
and (
|
|
20
|
+
$contains($lowercase($safeStr(cryptoProperties.algorithmProperties.algorithmFamily)), 'md5')
|
|
21
|
+
or $contains($lowercase($safeStr(cryptoProperties.algorithmProperties.algorithmFamily)), 'sha-1')
|
|
22
|
+
or $contains($lowercase($safeStr(cryptoProperties.algorithmProperties.algorithmFamily)), 'sha1')
|
|
23
|
+
or $contains($lowercase($safeStr(cryptoProperties.algorithmProperties.algorithmFamily)), 'rc4')
|
|
24
|
+
or $contains($lowercase($safeStr(cryptoProperties.algorithmProperties.algorithmFamily)), 'des')
|
|
25
|
+
or $contains($lowercase($safeStr(cryptoProperties.algorithmProperties.algorithmFamily)), 'blowfish')
|
|
26
|
+
or $contains($lowercase($safeStr(cryptoProperties.algorithmProperties.algorithmFamily)), 'md4')
|
|
27
|
+
or $contains($lowercase($safeStr(cryptoProperties.algorithmProperties.algorithmFamily)), 'rc2')
|
|
28
|
+
)
|
|
29
|
+
]
|
|
30
|
+
location: |
|
|
31
|
+
{
|
|
32
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
33
|
+
}
|
|
34
|
+
message: "Weak/Deprecated cryptographic algorithm family '{{ cryptoProperties.algorithmProperties.algorithmFamily }}' detected in component '{{ name }}'"
|
|
35
|
+
mitigation: "Migrate to secure alternatives like SHA-256, SHA-3, or AES-GCM."
|
|
36
|
+
evidence: |
|
|
37
|
+
{
|
|
38
|
+
"algorithmFamily": cryptoProperties.algorithmProperties.algorithmFamily,
|
|
39
|
+
"primitive": cryptoProperties.algorithmProperties.primitive
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
- id: CBS-002
|
|
43
|
+
name: "Insecure Cipher Mode of Operation"
|
|
44
|
+
description: "Electronic Codebook (ECB) mode lacks cryptographic diffusion and exposes patterns in ciphertext, while Cipher Block Chaining (CBC) without authenticated encryption (AEAD) is vulnerable to padding oracle attacks."
|
|
45
|
+
severity: high
|
|
46
|
+
category: cbom-security
|
|
47
|
+
dry-run-support: full
|
|
48
|
+
standards:
|
|
49
|
+
nist-800-53:
|
|
50
|
+
- "SC-13 Cryptographic Protection"
|
|
51
|
+
condition: |
|
|
52
|
+
components[
|
|
53
|
+
cryptoProperties.assetType = 'algorithm'
|
|
54
|
+
and (
|
|
55
|
+
cryptoProperties.algorithmProperties.mode = 'ecb'
|
|
56
|
+
or (cryptoProperties.algorithmProperties.mode = 'cbc' and cryptoProperties.algorithmProperties.primitive != 'ae')
|
|
57
|
+
)
|
|
58
|
+
]
|
|
59
|
+
location: |
|
|
60
|
+
{
|
|
61
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
62
|
+
}
|
|
63
|
+
message: "Insecure cipher mode '{{ cryptoProperties.algorithmProperties.mode }}' detected for component '{{ name }}'"
|
|
64
|
+
mitigation: "Use authenticated encryption modes such as GCM or CCM."
|
|
65
|
+
evidence: |
|
|
66
|
+
{
|
|
67
|
+
"algorithmFamily": cryptoProperties.algorithmProperties.algorithmFamily,
|
|
68
|
+
"mode": cryptoProperties.algorithmProperties.mode,
|
|
69
|
+
"primitive": cryptoProperties.algorithmProperties.primitive
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
- id: CBS-003
|
|
73
|
+
name: "Insufficient Classical Security Level or Key Size"
|
|
74
|
+
description: "Symmetric algorithms with security levels under 128 bits, or asymmetric algorithms (like RSA) with keys under 2048 bits, are vulnerable to brute-force attacks."
|
|
75
|
+
severity: high
|
|
76
|
+
category: cbom-security
|
|
77
|
+
dry-run-support: full
|
|
78
|
+
standards:
|
|
79
|
+
nist-800-53:
|
|
80
|
+
- "SC-13 Cryptographic Protection"
|
|
81
|
+
condition: |
|
|
82
|
+
components[
|
|
83
|
+
(
|
|
84
|
+
cryptoProperties.assetType = 'algorithm'
|
|
85
|
+
and $number(cryptoProperties.algorithmProperties.classicalSecurityLevel) > 0
|
|
86
|
+
and $number(cryptoProperties.algorithmProperties.classicalSecurityLevel) < 128
|
|
87
|
+
)
|
|
88
|
+
or (
|
|
89
|
+
cryptoProperties.assetType = 'related-crypto-material'
|
|
90
|
+
and cryptoProperties.relatedCryptoMaterialProperties.type = 'private-key'
|
|
91
|
+
and $number(cryptoProperties.relatedCryptoMaterialProperties.size) > 0
|
|
92
|
+
and $number(cryptoProperties.relatedCryptoMaterialProperties.size) < 2048
|
|
93
|
+
)
|
|
94
|
+
]
|
|
95
|
+
location: |
|
|
96
|
+
{
|
|
97
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
98
|
+
}
|
|
99
|
+
message: "Cryptographic strength is insufficient: {{ $firstNonEmpty(cryptoProperties.algorithmProperties.classicalSecurityLevel, cryptoProperties.relatedCryptoMaterialProperties.size) }} bits"
|
|
100
|
+
mitigation: "Upgrade key lengths to at least 128 bits for symmetric keys and 2048 bits (preferably 3072 or 4096 bits) for asymmetric/RSA keys."
|
|
101
|
+
evidence: |
|
|
102
|
+
{
|
|
103
|
+
"assetType": cryptoProperties.assetType,
|
|
104
|
+
"classicalSecurityLevel": cryptoProperties.algorithmProperties.classicalSecurityLevel,
|
|
105
|
+
"keySize": cryptoProperties.relatedCryptoMaterialProperties.size
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
- id: CBS-004
|
|
109
|
+
name: "Outdated/Insecure Protocol Version"
|
|
110
|
+
description: "Outdated protocols such as SSL v2, SSL v3, TLS 1.0, or TLS 1.1 contain severe vulnerabilities and should be disabled in favor of TLS 1.2 or TLS 1.3."
|
|
111
|
+
severity: critical
|
|
112
|
+
category: cbom-security
|
|
113
|
+
dry-run-support: full
|
|
114
|
+
standards:
|
|
115
|
+
nist-800-53:
|
|
116
|
+
- "SC-8 Transmission Confidentiality and Integrity"
|
|
117
|
+
condition: |
|
|
118
|
+
components[
|
|
119
|
+
cryptoProperties.assetType = 'protocol'
|
|
120
|
+
and (
|
|
121
|
+
cryptoProperties.protocolProperties.type = 'tls' or cryptoProperties.protocolProperties.type = 'dtls'
|
|
122
|
+
)
|
|
123
|
+
and (
|
|
124
|
+
$contains($lowercase($safeStr(cryptoProperties.protocolProperties.version)), '1.0')
|
|
125
|
+
or $contains($lowercase($safeStr(cryptoProperties.protocolProperties.version)), '1.1')
|
|
126
|
+
or $contains($lowercase($safeStr(cryptoProperties.protocolProperties.version)), 'ssl')
|
|
127
|
+
or $contains($lowercase($safeStr(cryptoProperties.protocolProperties.version)), '2.0')
|
|
128
|
+
or $contains($lowercase($safeStr(cryptoProperties.protocolProperties.version)), '3.0')
|
|
129
|
+
)
|
|
130
|
+
]
|
|
131
|
+
location: |
|
|
132
|
+
{
|
|
133
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
134
|
+
}
|
|
135
|
+
message: "Insecure protocol version '{{ cryptoProperties.protocolProperties.version }}' detected for component '{{ name }}'"
|
|
136
|
+
mitigation: "Require TLS 1.2 or TLS 1.3 as the minimum protocol version."
|
|
137
|
+
evidence: |
|
|
138
|
+
{
|
|
139
|
+
"protocol": cryptoProperties.protocolProperties.type,
|
|
140
|
+
"version": cryptoProperties.protocolProperties.version
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
- id: CBC-001
|
|
144
|
+
name: "Expired or Expiring Certificate"
|
|
145
|
+
description: "Certificates that have expired or are close to their expiration date will cause service disruptions or trust validation failures."
|
|
146
|
+
severity: high
|
|
147
|
+
category: cbom-compliance
|
|
148
|
+
dry-run-support: full
|
|
149
|
+
condition: |
|
|
150
|
+
components[
|
|
151
|
+
cryptoProperties.assetType = 'certificate'
|
|
152
|
+
and $hasProp($, 'cdx:cert:isExpired', 'true')
|
|
153
|
+
]
|
|
154
|
+
location: |
|
|
155
|
+
{
|
|
156
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
157
|
+
}
|
|
158
|
+
message: "Certificate for Subject '{{ cryptoProperties.certificateProperties.subjectName }}' has expired or is invalid"
|
|
159
|
+
mitigation: "Renew the certificate and update the deployment trust stores."
|
|
160
|
+
evidence: |
|
|
161
|
+
{
|
|
162
|
+
"subject": cryptoProperties.certificateProperties.subjectName,
|
|
163
|
+
"issuer": cryptoProperties.certificateProperties.issuerName,
|
|
164
|
+
"notValidAfter": cryptoProperties.certificateProperties.notValidAfter
|
|
165
|
+
}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
# Chrome Extension Security Rules
|
|
2
|
+
# Category: chrome-extension
|
|
3
|
+
# Evaluates Chromium browser extensions for risky permissions and execution posture
|
|
4
|
+
|
|
5
|
+
- id: CHE-001
|
|
6
|
+
name: "Extension with broad host access"
|
|
7
|
+
description: "Browser extensions with <all_urls> or wildcard host permissions can access and manipulate content on most websites"
|
|
8
|
+
severity: high
|
|
9
|
+
category: chrome-extension
|
|
10
|
+
dry-run-support: full
|
|
11
|
+
condition: |
|
|
12
|
+
components[
|
|
13
|
+
$startsWith(purl, 'pkg:chrome-extension/')
|
|
14
|
+
and (
|
|
15
|
+
$listContains($propList($, 'cdx:chrome-extension:permissions'), '<all_urls>')
|
|
16
|
+
or $listContains($propList($, 'cdx:chrome-extension:hostPermissions'), '<all_urls>')
|
|
17
|
+
or $listContains($propList($, 'cdx:chrome-extension:hostPermissions'), '*://*/*')
|
|
18
|
+
)
|
|
19
|
+
]
|
|
20
|
+
location: |
|
|
21
|
+
{
|
|
22
|
+
"bomRef": $. "bom-ref",
|
|
23
|
+
"purl": purl,
|
|
24
|
+
"srcFile": $prop($, 'internal:SrcFile')
|
|
25
|
+
}
|
|
26
|
+
message: "Chrome extension '{{ name }}@{{ version }}' has broad host access permissions"
|
|
27
|
+
mitigation: "Limit host permissions to required domains; avoid <all_urls> and broad wildcard host patterns"
|
|
28
|
+
evidence: |
|
|
29
|
+
{
|
|
30
|
+
"permissions": $prop($, 'cdx:chrome-extension:permissions'),
|
|
31
|
+
"hostPermissions": $prop($, 'cdx:chrome-extension:hostPermissions')
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
- id: CHE-002
|
|
35
|
+
name: "Extension with network interception capabilities"
|
|
36
|
+
description: "Extensions that combine webRequest and webRequestBlocking can intercept and modify browser network traffic"
|
|
37
|
+
severity: critical
|
|
38
|
+
category: chrome-extension
|
|
39
|
+
dry-run-support: full
|
|
40
|
+
condition: |
|
|
41
|
+
components[
|
|
42
|
+
$startsWith(purl, 'pkg:chrome-extension/')
|
|
43
|
+
and $listContains($propList($, 'cdx:chrome-extension:permissions'), 'webRequest')
|
|
44
|
+
and $listContains($propList($, 'cdx:chrome-extension:permissions'), 'webRequestBlocking')
|
|
45
|
+
]
|
|
46
|
+
location: |
|
|
47
|
+
{
|
|
48
|
+
"bomRef": $. "bom-ref",
|
|
49
|
+
"purl": purl,
|
|
50
|
+
"srcFile": $prop($, 'internal:SrcFile')
|
|
51
|
+
}
|
|
52
|
+
message: "Chrome extension '{{ name }}@{{ version }}' can intercept and block web requests"
|
|
53
|
+
mitigation: "Review extension code for request filtering/modification logic; restrict deployment to trusted publishers"
|
|
54
|
+
evidence: |
|
|
55
|
+
{
|
|
56
|
+
"permissions": $prop($, 'cdx:chrome-extension:permissions'),
|
|
57
|
+
"contentScriptsRunAt": $prop($, 'cdx:chrome-extension:contentScriptsRunAt')
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
- id: CHE-003
|
|
61
|
+
name: "Always-early content scripts with broad access"
|
|
62
|
+
description: "Extensions injecting content scripts at document_start together with broad host permissions increase pre-DOM execution risk"
|
|
63
|
+
severity: high
|
|
64
|
+
category: chrome-extension
|
|
65
|
+
dry-run-support: full
|
|
66
|
+
condition: |
|
|
67
|
+
components[
|
|
68
|
+
$startsWith(purl, 'pkg:chrome-extension/')
|
|
69
|
+
and $listContains($propList($, 'cdx:chrome-extension:contentScriptsRunAt'), 'document_start')
|
|
70
|
+
and (
|
|
71
|
+
$listContains($propList($, 'cdx:chrome-extension:permissions'), '<all_urls>')
|
|
72
|
+
or $listContains($propList($, 'cdx:chrome-extension:hostPermissions'), '<all_urls>')
|
|
73
|
+
or $listContains($propList($, 'cdx:chrome-extension:hostPermissions'), '*://*/*')
|
|
74
|
+
)
|
|
75
|
+
]
|
|
76
|
+
location: |
|
|
77
|
+
{
|
|
78
|
+
"bomRef": $. "bom-ref",
|
|
79
|
+
"purl": purl
|
|
80
|
+
}
|
|
81
|
+
message: "Chrome extension '{{ name }}@{{ version }}' injects scripts at document_start with broad site access"
|
|
82
|
+
mitigation: "Prefer run_at=document_idle where possible and scope host permissions to explicit trusted origins"
|
|
83
|
+
evidence: |
|
|
84
|
+
{
|
|
85
|
+
"contentScriptsRunAt": $prop($, 'cdx:chrome-extension:contentScriptsRunAt'),
|
|
86
|
+
"permissions": $prop($, 'cdx:chrome-extension:permissions'),
|
|
87
|
+
"hostPermissions": $prop($, 'cdx:chrome-extension:hostPermissions')
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
- id: CHE-004
|
|
91
|
+
name: "Autofill-capable extension with broad host permissions"
|
|
92
|
+
description: "Autofill features handling credential or PII flows should be reviewed when broad host permissions are granted"
|
|
93
|
+
severity: medium
|
|
94
|
+
category: chrome-extension
|
|
95
|
+
dry-run-support: full
|
|
96
|
+
condition: |
|
|
97
|
+
components[
|
|
98
|
+
$startsWith(purl, 'pkg:chrome-extension/')
|
|
99
|
+
and $propBool($, 'cdx:chrome-extension:hasAutofill') = true
|
|
100
|
+
and (
|
|
101
|
+
$listContains($propList($, 'cdx:chrome-extension:permissions'), '<all_urls>')
|
|
102
|
+
or $listContains($propList($, 'cdx:chrome-extension:hostPermissions'), '<all_urls>')
|
|
103
|
+
or $listContains($propList($, 'cdx:chrome-extension:hostPermissions'), '*://*/*')
|
|
104
|
+
)
|
|
105
|
+
]
|
|
106
|
+
location: |
|
|
107
|
+
{
|
|
108
|
+
"bomRef": $. "bom-ref",
|
|
109
|
+
"purl": purl
|
|
110
|
+
}
|
|
111
|
+
message: "Autofill-capable extension '{{ name }}@{{ version }}' has broad host access"
|
|
112
|
+
mitigation: "Review autofill data handling and origin checks; enforce least-privilege host permissions"
|
|
113
|
+
evidence: |
|
|
114
|
+
{
|
|
115
|
+
"hasAutofill": $prop($, 'cdx:chrome-extension:hasAutofill'),
|
|
116
|
+
"permissions": $prop($, 'cdx:chrome-extension:permissions'),
|
|
117
|
+
"hostPermissions": $prop($, 'cdx:chrome-extension:hostPermissions'),
|
|
118
|
+
"storageManagedSchema": $prop($, 'cdx:chrome-extension:storageManagedSchema')
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
- id: CHE-005
|
|
122
|
+
name: "Extension with file/device capability and broad host scope"
|
|
123
|
+
description: "Extensions requesting file or device-adjacent capabilities alongside broad host scope can increase data collection and exfiltration risk."
|
|
124
|
+
severity: high
|
|
125
|
+
category: chrome-extension
|
|
126
|
+
dry-run-support: full
|
|
127
|
+
condition: |
|
|
128
|
+
components[
|
|
129
|
+
$startsWith(purl, 'pkg:chrome-extension/')
|
|
130
|
+
and (
|
|
131
|
+
$propBool($, 'cdx:chrome-extension:capability:fileAccess') = true
|
|
132
|
+
or $propBool($, 'cdx:chrome-extension:capability:deviceAccess') = true
|
|
133
|
+
or $propBool($, 'cdx:chrome-extension:capability:bluetooth') = true
|
|
134
|
+
)
|
|
135
|
+
and (
|
|
136
|
+
$listContains($propList($, 'cdx:chrome-extension:permissions'), '<all_urls>')
|
|
137
|
+
or $listContains($propList($, 'cdx:chrome-extension:hostPermissions'), '<all_urls>')
|
|
138
|
+
or $listContains($propList($, 'cdx:chrome-extension:hostPermissions'), '*://*/*')
|
|
139
|
+
)
|
|
140
|
+
]
|
|
141
|
+
location: |
|
|
142
|
+
{
|
|
143
|
+
"bomRef": $. "bom-ref",
|
|
144
|
+
"purl": purl,
|
|
145
|
+
"srcFile": $prop($, 'internal:SrcFile')
|
|
146
|
+
}
|
|
147
|
+
message: "Chrome extension '{{ name }}@{{ version }}' combines broad host scope with file/device capabilities"
|
|
148
|
+
mitigation: "Review whether file/device permissions are required and narrow host permissions to explicit trusted origins."
|
|
149
|
+
evidence: |
|
|
150
|
+
{
|
|
151
|
+
"capabilities": $prop($, 'cdx:chrome-extension:capabilities'),
|
|
152
|
+
"permissions": $prop($, 'cdx:chrome-extension:permissions'),
|
|
153
|
+
"hostPermissions": $prop($, 'cdx:chrome-extension:hostPermissions')
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
- id: CHE-006
|
|
157
|
+
name: "Code-injecting extension with broad host scope"
|
|
158
|
+
description: "Extensions with explicit code-injection capability and broad host scope may execute arbitrary script logic across many origins."
|
|
159
|
+
severity: critical
|
|
160
|
+
category: chrome-extension
|
|
161
|
+
dry-run-support: full
|
|
162
|
+
condition: |
|
|
163
|
+
components[
|
|
164
|
+
$startsWith(purl, 'pkg:chrome-extension/')
|
|
165
|
+
and $propBool($, 'cdx:chrome-extension:capability:codeInjection') = true
|
|
166
|
+
and (
|
|
167
|
+
$listContains($propList($, 'cdx:chrome-extension:permissions'), '<all_urls>')
|
|
168
|
+
or $listContains($propList($, 'cdx:chrome-extension:hostPermissions'), '<all_urls>')
|
|
169
|
+
or $listContains($propList($, 'cdx:chrome-extension:hostPermissions'), '*://*/*')
|
|
170
|
+
)
|
|
171
|
+
]
|
|
172
|
+
location: |
|
|
173
|
+
{
|
|
174
|
+
"bomRef": $. "bom-ref",
|
|
175
|
+
"purl": purl,
|
|
176
|
+
"srcFile": $prop($, 'internal:SrcFile')
|
|
177
|
+
}
|
|
178
|
+
message: "Chrome extension '{{ name }}@{{ version }}' has code-injection capability with broad host coverage"
|
|
179
|
+
mitigation: "Constrain host permissions and validate code-injection paths (scripting/tabs/debugger/content scripts) against strict allowlists."
|
|
180
|
+
evidence: |
|
|
181
|
+
{
|
|
182
|
+
"capabilities": $prop($, 'cdx:chrome-extension:capabilities'),
|
|
183
|
+
"permissions": $prop($, 'cdx:chrome-extension:permissions'),
|
|
184
|
+
"contentScriptsRunAt": $prop($, 'cdx:chrome-extension:contentScriptsRunAt')
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
- id: CHE-007
|
|
188
|
+
name: "Fingerprinting-capable extension with broad host scope"
|
|
189
|
+
description: "Fingerprinting-related capability indicators combined with broad host access can increase tracking and privacy risk."
|
|
190
|
+
severity: high
|
|
191
|
+
category: chrome-extension
|
|
192
|
+
dry-run-support: full
|
|
193
|
+
condition: |
|
|
194
|
+
components[
|
|
195
|
+
$startsWith(purl, 'pkg:chrome-extension/')
|
|
196
|
+
and $propBool($, 'cdx:chrome-extension:capability:fingerprinting') = true
|
|
197
|
+
and (
|
|
198
|
+
$listContains($propList($, 'cdx:chrome-extension:permissions'), '<all_urls>')
|
|
199
|
+
or $listContains($propList($, 'cdx:chrome-extension:hostPermissions'), '<all_urls>')
|
|
200
|
+
or $listContains($propList($, 'cdx:chrome-extension:hostPermissions'), '*://*/*')
|
|
201
|
+
)
|
|
202
|
+
]
|
|
203
|
+
location: |
|
|
204
|
+
{
|
|
205
|
+
"bomRef": $. "bom-ref",
|
|
206
|
+
"purl": purl,
|
|
207
|
+
"srcFile": $prop($, 'internal:SrcFile')
|
|
208
|
+
}
|
|
209
|
+
message: "Chrome extension '{{ name }}@{{ version }}' has fingerprinting indicators with broad host access"
|
|
210
|
+
mitigation: "Review extension behavior for passive/active fingerprinting collection and reduce scope to required domains."
|
|
211
|
+
evidence: |
|
|
212
|
+
{
|
|
213
|
+
"capabilities": $prop($, 'cdx:chrome-extension:capabilities'),
|
|
214
|
+
"permissions": $prop($, 'cdx:chrome-extension:permissions'),
|
|
215
|
+
"hostPermissions": $prop($, 'cdx:chrome-extension:hostPermissions')
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
- id: CHE-008
|
|
219
|
+
name: "AI-assistant extension with code injection on AI provider domains"
|
|
220
|
+
description: "Extensions targeting AI assistant domains (OpenAI/ChatGPT/Claude/Copilot) with code-injection capability should be reviewed for prompt/session manipulation risk."
|
|
221
|
+
severity: high
|
|
222
|
+
category: chrome-extension
|
|
223
|
+
dry-run-support: full
|
|
224
|
+
condition: |
|
|
225
|
+
components[
|
|
226
|
+
$startsWith(purl, 'pkg:chrome-extension/')
|
|
227
|
+
and $propBool($, 'cdx:chrome-extension:capability:codeInjection') = true
|
|
228
|
+
and (
|
|
229
|
+
$contains($safeStr($prop($, 'cdx:chrome-extension:hostPermissions')), 'openai.com')
|
|
230
|
+
or $contains($safeStr($prop($, 'cdx:chrome-extension:hostPermissions')), 'chatgpt.com')
|
|
231
|
+
or $contains($safeStr($prop($, 'cdx:chrome-extension:hostPermissions')), 'claude.ai')
|
|
232
|
+
or $contains($safeStr($prop($, 'cdx:chrome-extension:hostPermissions')), 'github.com/copilot')
|
|
233
|
+
)
|
|
234
|
+
]
|
|
235
|
+
location: |
|
|
236
|
+
{
|
|
237
|
+
"bomRef": $. "bom-ref",
|
|
238
|
+
"purl": purl,
|
|
239
|
+
"srcFile": $prop($, 'internal:SrcFile')
|
|
240
|
+
}
|
|
241
|
+
message: "AI-assistant extension '{{ name }}@{{ version }}' can inject code in assistant workflows"
|
|
242
|
+
mitigation: "Review prompt/session handling, enforce least-privilege host permissions, and gate deployment to trusted publishers."
|
|
243
|
+
evidence: |
|
|
244
|
+
{
|
|
245
|
+
"capabilities": $prop($, 'cdx:chrome-extension:capabilities'),
|
|
246
|
+
"permissions": $prop($, 'cdx:chrome-extension:permissions'),
|
|
247
|
+
"hostPermissions": $prop($, 'cdx:chrome-extension:hostPermissions')
|
|
248
|
+
}
|