@cyclonedx/cdxgen 11.1.2 → 11.1.3
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 +6 -0
- package/bin/cdxgen.js +123 -13
- package/bin/evinse.js +4 -0
- package/bin/repl.js +4 -0
- package/bin/verify.js +4 -0
- package/lib/cli/index.js +21 -2
- package/lib/helpers/envcontext.js +18 -10
- package/lib/helpers/utils.js +44 -35
- package/lib/helpers/utils.test.js +13 -1
- package/lib/stages/pregen/pregen.js +8 -3
- package/package.json +3 -3
- package/types/lib/cli/index.d.ts.map +1 -1
- package/types/lib/helpers/envcontext.d.ts.map +1 -1
- package/types/lib/helpers/utils.d.ts +1 -0
- package/types/lib/helpers/utils.d.ts.map +1 -1
- package/types/lib/stages/pregen/pregen.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -58,6 +58,12 @@ Sections include:
|
|
|
58
58
|
npm install -g @cyclonedx/cdxgen
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
+
To run cdxgen without installing (hotloading), use the [pnpm dlx](https://pnpm.io/cli/dlx) command.
|
|
62
|
+
|
|
63
|
+
```shell
|
|
64
|
+
corepack pnpm dlx @cyclonedx/cdxgen --help
|
|
65
|
+
```
|
|
66
|
+
|
|
61
67
|
If you are a [Homebrew][homebrew-homepage] user, you can also install [cdxgen][homebrew-cdxgen] via:
|
|
62
68
|
|
|
63
69
|
```shell
|
package/bin/cdxgen.js
CHANGED
|
@@ -21,7 +21,14 @@ import {
|
|
|
21
21
|
printSummary,
|
|
22
22
|
printTable,
|
|
23
23
|
} from "../lib/helpers/display.js";
|
|
24
|
-
import {
|
|
24
|
+
import {
|
|
25
|
+
ATOM_DB,
|
|
26
|
+
dirNameStr,
|
|
27
|
+
getTmpDir,
|
|
28
|
+
isMac,
|
|
29
|
+
isSecureMode,
|
|
30
|
+
isWin,
|
|
31
|
+
} from "../lib/helpers/utils.js";
|
|
25
32
|
import { validateBom } from "../lib/helpers/validator.js";
|
|
26
33
|
import { postProcess } from "../lib/stages/postgen/postgen.js";
|
|
27
34
|
import { prepareEnv } from "../lib/stages/pregen/pregen.js";
|
|
@@ -141,6 +148,7 @@ const args = yargs(hideBin(process.argv))
|
|
|
141
148
|
})
|
|
142
149
|
.option("fail-on-error", {
|
|
143
150
|
type: "boolean",
|
|
151
|
+
default: !isSecureMode,
|
|
144
152
|
description: "Fail if any dependency extractor fails.",
|
|
145
153
|
})
|
|
146
154
|
.option("no-babel", {
|
|
@@ -167,7 +175,7 @@ const args = yargs(hideBin(process.argv))
|
|
|
167
175
|
})
|
|
168
176
|
.option("install-deps", {
|
|
169
177
|
type: "boolean",
|
|
170
|
-
default:
|
|
178
|
+
default: !isSecureMode,
|
|
171
179
|
description:
|
|
172
180
|
"Install dependencies automatically for some projects. Defaults to true but disabled for containers and oci scans. Use --no-install-deps to disable this feature.",
|
|
173
181
|
})
|
|
@@ -357,6 +365,10 @@ const args = yargs(hideBin(process.argv))
|
|
|
357
365
|
.alias("h", "help")
|
|
358
366
|
.wrap(Math.min(120, yargs().terminalWidth())).argv;
|
|
359
367
|
|
|
368
|
+
if (process.env?.CDXGEN_NODE_OPTIONS) {
|
|
369
|
+
process.env.NODE_OPTIONS = `${process.env.NODE_OPTIONS || ""} ${process.env.CDXGEN_NODE_OPTIONS}`;
|
|
370
|
+
}
|
|
371
|
+
|
|
360
372
|
if (args.version) {
|
|
361
373
|
const packageJsonAsString = fs.readFileSync(
|
|
362
374
|
join(dirName, "..", "package.json"),
|
|
@@ -376,7 +388,7 @@ if (process.env.GLOBAL_AGENT_HTTP_PROXY || process.env.HTTP_PROXY) {
|
|
|
376
388
|
globalAgent.bootstrap();
|
|
377
389
|
}
|
|
378
390
|
|
|
379
|
-
const filePath = args._[0] ||
|
|
391
|
+
const filePath = args._[0] || process.cwd();
|
|
380
392
|
if (!args.projectName) {
|
|
381
393
|
if (filePath !== ".") {
|
|
382
394
|
args.projectName = basename(filePath);
|
|
@@ -421,6 +433,10 @@ if (options.includeFormulation) {
|
|
|
421
433
|
* @param {object} options CLI options
|
|
422
434
|
*/
|
|
423
435
|
const applyAdvancedOptions = (options) => {
|
|
436
|
+
// Temporary fix till we figure out a better logic
|
|
437
|
+
if (options["install-deps"]) {
|
|
438
|
+
options.installDeps = true;
|
|
439
|
+
}
|
|
424
440
|
switch (options.profile) {
|
|
425
441
|
case "appsec":
|
|
426
442
|
options.deep = true;
|
|
@@ -460,7 +476,7 @@ const applyAdvancedOptions = (options) => {
|
|
|
460
476
|
options.deep = true;
|
|
461
477
|
options.evidence = false;
|
|
462
478
|
options.includeCrypto = false;
|
|
463
|
-
options.installDeps =
|
|
479
|
+
options.installDeps = !isSecureMode;
|
|
464
480
|
break;
|
|
465
481
|
case "deep-learning":
|
|
466
482
|
case "ml-deep":
|
|
@@ -468,7 +484,7 @@ const applyAdvancedOptions = (options) => {
|
|
|
468
484
|
options.deep = true;
|
|
469
485
|
options.evidence = true;
|
|
470
486
|
options.includeCrypto = true;
|
|
471
|
-
options.installDeps =
|
|
487
|
+
options.installDeps = !isSecureMode;
|
|
472
488
|
break;
|
|
473
489
|
default:
|
|
474
490
|
break;
|
|
@@ -526,31 +542,122 @@ applyAdvancedOptions(options);
|
|
|
526
542
|
* Check for node >= 20 permissions
|
|
527
543
|
*
|
|
528
544
|
* @param {string} filePath File path
|
|
545
|
+
* @param {Object} options CLI Options
|
|
529
546
|
* @returns
|
|
530
547
|
*/
|
|
531
|
-
const checkPermissions = (filePath) => {
|
|
548
|
+
const checkPermissions = (filePath, options) => {
|
|
532
549
|
if (!process.permission) {
|
|
533
550
|
return true;
|
|
534
551
|
}
|
|
552
|
+
const fullFilePath = resolve(filePath);
|
|
553
|
+
// Secure mode checks
|
|
554
|
+
if (isSecureMode) {
|
|
555
|
+
if (process.permission.has("fs.read", "*")) {
|
|
556
|
+
console.log(
|
|
557
|
+
"\x1b[1;35mSECURE MODE: DO NOT run cdxgen with FileSystemRead permission set to wildcard.\x1b[0m",
|
|
558
|
+
);
|
|
559
|
+
}
|
|
560
|
+
if (process.permission.has("fs.write", "*")) {
|
|
561
|
+
console.log(
|
|
562
|
+
"\x1b[1;35mSECURE MODE: DO NOT run cdxgen with FileSystemWrite permission set to wildcard.\x1b[0m",
|
|
563
|
+
);
|
|
564
|
+
}
|
|
565
|
+
if (process.permission.has("worker")) {
|
|
566
|
+
console.log(
|
|
567
|
+
"SECURE MODE: DO NOT run cdxgen with worker thread permission! Remove `--allow-worker` argument.",
|
|
568
|
+
);
|
|
569
|
+
}
|
|
570
|
+
if (filePath !== fullFilePath) {
|
|
571
|
+
console.log(
|
|
572
|
+
`\x1b[1;35mSECURE MODE: Invoke cdxgen with an absolute path to improve security. Use ${fullFilePath} instead of ${filePath}.\x1b[0m`,
|
|
573
|
+
);
|
|
574
|
+
if (fullFilePath.includes(" ")) {
|
|
575
|
+
console.log(
|
|
576
|
+
"\x1b[1;35mSECURE MODE: Directory names containing spaces are known to cause issues. Rename the directories by replacing spaces with hyphens or underscores.\x1b[0m",
|
|
577
|
+
);
|
|
578
|
+
} else if (fullFilePath.length > 255 && isWin) {
|
|
579
|
+
console.log(
|
|
580
|
+
"Ensure 'Enable Win32 Long paths' is set to 'Enabled' by using Group Policy Editor.",
|
|
581
|
+
);
|
|
582
|
+
}
|
|
583
|
+
return false;
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
|
|
535
587
|
if (!process.permission.has("fs.read", filePath)) {
|
|
536
588
|
console.log(
|
|
537
|
-
|
|
589
|
+
`\x1b[1;35mSECURE MODE: FileSystemRead permission required. Please invoke cdxgen with the argument --allow-fs-read="${resolve(
|
|
538
590
|
filePath,
|
|
539
|
-
)}"`,
|
|
591
|
+
)}"\x1b[0m`,
|
|
540
592
|
);
|
|
541
593
|
return false;
|
|
542
594
|
}
|
|
595
|
+
if (!process.permission.has("fs.write", options.output)) {
|
|
596
|
+
console.log(
|
|
597
|
+
`\x1b[1;35mSECURE MODE: FileSystemWrite permission is required to create the output BOM file. Please invoke cdxgen with the argument --allow-fs-write="${options.output}"\x1b[0m`,
|
|
598
|
+
);
|
|
599
|
+
}
|
|
600
|
+
if (options.evidence) {
|
|
601
|
+
const slicesFilesKeys = [
|
|
602
|
+
"deps-slices-file",
|
|
603
|
+
"usages-slices-file",
|
|
604
|
+
"reachables-slices-file",
|
|
605
|
+
];
|
|
606
|
+
if (options?.type?.includes("swift")) {
|
|
607
|
+
slicesFilesKeys.push("semantics-slices-file");
|
|
608
|
+
}
|
|
609
|
+
for (const sf of slicesFilesKeys) {
|
|
610
|
+
let issueFound = false;
|
|
611
|
+
if (!process.permission.has("fs.write", options[sf])) {
|
|
612
|
+
console.log(
|
|
613
|
+
`SECURE MODE: FileSystemWrite permission is required to create the output slices file. Please invoke cdxgen with the argument --allow-fs-write="${options[sf]}"`,
|
|
614
|
+
);
|
|
615
|
+
if (!issueFound) {
|
|
616
|
+
issueFound = true;
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
if (issueFound) {
|
|
620
|
+
return false;
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
if (!process.permission.has("fs.write", process.env.ATOM_DB || ATOM_DB)) {
|
|
624
|
+
console.log(
|
|
625
|
+
`SECURE MODE: FileSystemWrite permission is required to create the output slices file. Please invoke cdxgen with the argument --allow-fs-write="${process.env.ATOM_DB || ATOM_DB}"`,
|
|
626
|
+
);
|
|
627
|
+
return false;
|
|
628
|
+
}
|
|
629
|
+
console.log(
|
|
630
|
+
"TIP: Invoke cdxgen with `--allow-addons` to allow the use of sqlite3 native addon. This addon is required for evidence mode.",
|
|
631
|
+
);
|
|
632
|
+
} else {
|
|
633
|
+
if (process.permission.has("fs.write", process.env.ATOM_DB || ATOM_DB)) {
|
|
634
|
+
console.log(
|
|
635
|
+
`SECURE MODE: FileSystemWrite permission is not required for the directory "${process.env.ATOM_DB || ATOM_DB}" in non-evidence mode. Consider removing the argument --allow-fs-write="${process.env.ATOM_DB || ATOM_DB}".`,
|
|
636
|
+
);
|
|
637
|
+
return false;
|
|
638
|
+
}
|
|
639
|
+
}
|
|
543
640
|
if (!process.permission.has("fs.write", getTmpDir())) {
|
|
544
641
|
console.log(
|
|
545
|
-
`FileSystemWrite permission required. Please invoke with the argument --allow-fs-write="${getTmpDir()}"`,
|
|
642
|
+
`FileSystemWrite permission may be required to the TEMP directory. Please invoke cdxgen with the argument --allow-fs-write="${join(getTmpDir(), "*")}"`,
|
|
546
643
|
);
|
|
547
|
-
|
|
644
|
+
if (isMac) {
|
|
645
|
+
console.log(
|
|
646
|
+
"TIP: macOS doesn't use `/tmp` prefix for TEMP directories. Use the argument shown above.",
|
|
647
|
+
);
|
|
648
|
+
}
|
|
548
649
|
}
|
|
549
|
-
if (!process.permission.has("child")) {
|
|
650
|
+
if (!process.permission.has("child") && !isSecureMode) {
|
|
550
651
|
console.log(
|
|
551
|
-
"ChildProcess permission is missing. This is required to spawn commands for some languages. Please invoke with the argument --allow-child-process",
|
|
652
|
+
"ChildProcess permission is missing. This is required to spawn commands for some languages. Please invoke cdxgen with the argument --allow-child-process in case of issues.",
|
|
552
653
|
);
|
|
553
654
|
}
|
|
655
|
+
if (process.permission.has("child") && options?.lifecycle === "pre-build") {
|
|
656
|
+
console.log(
|
|
657
|
+
"SECURE MODE: ChildProcess permission is not required for pre-build SBOM generation. Please invoke cdxgen without the argument --allow-child-process.",
|
|
658
|
+
);
|
|
659
|
+
return false;
|
|
660
|
+
}
|
|
554
661
|
return true;
|
|
555
662
|
};
|
|
556
663
|
|
|
@@ -566,7 +673,10 @@ const checkPermissions = (filePath) => {
|
|
|
566
673
|
return serverModule.start(options);
|
|
567
674
|
}
|
|
568
675
|
// Check if cdxgen has the required permissions
|
|
569
|
-
if (!checkPermissions(filePath)) {
|
|
676
|
+
if (!checkPermissions(filePath, options)) {
|
|
677
|
+
if (isSecureMode) {
|
|
678
|
+
process.exit(1);
|
|
679
|
+
}
|
|
570
680
|
return;
|
|
571
681
|
}
|
|
572
682
|
// This will prevent people from accidentally using the usages slices belonging to a different project
|
package/bin/evinse.js
CHANGED
|
@@ -162,6 +162,10 @@ const evinseArt = `
|
|
|
162
162
|
╚══════╝ ╚═══╝ ╚═╝╚═╝ ╚═══╝╚══════╝╚══════╝
|
|
163
163
|
`;
|
|
164
164
|
|
|
165
|
+
if (process.env?.CDXGEN_NODE_OPTIONS) {
|
|
166
|
+
process.env.NODE_OPTIONS = `${process.env.NODE_OPTIONS || ""} ${process.env.CDXGEN_NODE_OPTIONS}`;
|
|
167
|
+
}
|
|
168
|
+
|
|
165
169
|
console.log(evinseArt);
|
|
166
170
|
(async () => {
|
|
167
171
|
// First, prepare the database by cataloging jars and other libraries
|
package/bin/repl.js
CHANGED
|
@@ -45,6 +45,10 @@ const cdxArt = `
|
|
|
45
45
|
|
|
46
46
|
console.log(cdxArt);
|
|
47
47
|
|
|
48
|
+
if (process.env?.CDXGEN_NODE_OPTIONS) {
|
|
49
|
+
process.env.NODE_OPTIONS = `${process.env.NODE_OPTIONS || ""} ${process.env.CDXGEN_NODE_OPTIONS}`;
|
|
50
|
+
}
|
|
51
|
+
|
|
48
52
|
// The current sbom is stored here
|
|
49
53
|
let sbom = undefined;
|
|
50
54
|
|
package/bin/verify.js
CHANGED
|
@@ -43,6 +43,10 @@ if (args.version) {
|
|
|
43
43
|
process.exit(0);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
if (process.env?.CDXGEN_NODE_OPTIONS) {
|
|
47
|
+
process.env.NODE_OPTIONS = `${process.env.NODE_OPTIONS || ""} ${process.env.CDXGEN_NODE_OPTIONS}`;
|
|
48
|
+
}
|
|
49
|
+
|
|
46
50
|
const bomJson = JSON.parse(fs.readFileSync(args.input, "utf8"));
|
|
47
51
|
let hasInvalidComp = false;
|
|
48
52
|
// Validate any component signature
|
package/lib/cli/index.js
CHANGED
|
@@ -82,6 +82,7 @@ import {
|
|
|
82
82
|
isFeatureEnabled,
|
|
83
83
|
isPackageManagerAllowed,
|
|
84
84
|
isPartialTree,
|
|
85
|
+
isSecureMode,
|
|
85
86
|
isValidIriReference,
|
|
86
87
|
parseBazelActionGraph,
|
|
87
88
|
parseBazelSkyframe,
|
|
@@ -2375,19 +2376,31 @@ export async function createNodejsBom(path, options) {
|
|
|
2375
2376
|
const pkgData = JSON.parse(readFileSync(apkgJson, "utf8"));
|
|
2376
2377
|
const mgrData = pkgData.packageManager;
|
|
2377
2378
|
let mgr = "";
|
|
2378
|
-
let installArgs = ["install"];
|
|
2379
2379
|
if (mgrData) {
|
|
2380
2380
|
mgr = mgrData.split("@")[0];
|
|
2381
2381
|
}
|
|
2382
2382
|
if (supPkgMgrs.includes(mgr)) {
|
|
2383
2383
|
pkgMgr = mgr;
|
|
2384
2384
|
}
|
|
2385
|
+
let installCommand = "install";
|
|
2386
|
+
if (pkgMgr === "npm" && isSecureMode && pkgJsonLockFiles?.length > 0) {
|
|
2387
|
+
installCommand = "ci";
|
|
2388
|
+
}
|
|
2389
|
+
let installArgs = [installCommand];
|
|
2385
2390
|
// Support for passing additional args to the install command
|
|
2386
2391
|
if (process.env[`${pkgMgr.toUpperCase()}_INSTALL_ARGS`]) {
|
|
2387
2392
|
const addArgs =
|
|
2388
2393
|
process.env[`${pkgMgr.toUpperCase()}_INSTALL_ARGS`].split(" ");
|
|
2389
2394
|
installArgs = installArgs.concat(addArgs);
|
|
2390
2395
|
}
|
|
2396
|
+
if (pkgMgr === "npm" && isSecureMode) {
|
|
2397
|
+
if (!installArgs.includes("--ignore-scripts")) {
|
|
2398
|
+
installArgs.push("--ignore-scripts");
|
|
2399
|
+
}
|
|
2400
|
+
if (!installArgs.includes("--no-audit")) {
|
|
2401
|
+
installArgs.push("--no-audit");
|
|
2402
|
+
}
|
|
2403
|
+
}
|
|
2391
2404
|
const basePath = dirname(apkgJson);
|
|
2392
2405
|
// juice-shop mode
|
|
2393
2406
|
// Projects such as juice-shop prevent lockfile creations using .npmrc files
|
|
@@ -6026,7 +6039,8 @@ export function trimComponents(components) {
|
|
|
6026
6039
|
}
|
|
6027
6040
|
// comp.evidence.identity can be an array or object
|
|
6028
6041
|
// Merge the evidence.identity based on methods or objects
|
|
6029
|
-
const
|
|
6042
|
+
const isArray = Array.isArray(comp.evidence.identity);
|
|
6043
|
+
const identities = isArray
|
|
6030
6044
|
? comp.evidence.identity
|
|
6031
6045
|
: [comp.evidence.identity];
|
|
6032
6046
|
for (const aident of identities) {
|
|
@@ -6057,6 +6071,11 @@ export function trimComponents(components) {
|
|
|
6057
6071
|
existingComponent.evidence.identity.push(aident);
|
|
6058
6072
|
}
|
|
6059
6073
|
}
|
|
6074
|
+
if (!isArray) {
|
|
6075
|
+
existingComponent.evidence = {
|
|
6076
|
+
identity: existingComponent.evidence.identity[0],
|
|
6077
|
+
};
|
|
6078
|
+
}
|
|
6060
6079
|
}
|
|
6061
6080
|
// If the component is required in any of the child projects, then make it required
|
|
6062
6081
|
if (
|
|
@@ -31,8 +31,8 @@ export const GIT_COMMAND = process.env.GIT_CMD || "git";
|
|
|
31
31
|
export const SDKMAN_JAVA_TOOL_ALIASES = {
|
|
32
32
|
java8: process.env.JAVA8_TOOL || "8.0.432-tem",
|
|
33
33
|
java11: process.env.JAVA11_TOOL || "11.0.25-tem",
|
|
34
|
-
java17: process.env.JAVA17_TOOL || "17.0.
|
|
35
|
-
java21: process.env.JAVA21_TOOL || "21.0.
|
|
34
|
+
java17: process.env.JAVA17_TOOL || "17.0.14-tem",
|
|
35
|
+
java21: process.env.JAVA21_TOOL || "21.0.6-tem",
|
|
36
36
|
java22: process.env.JAVA22_TOOL || "22.0.2-tem",
|
|
37
37
|
java23: process.env.JAVA23_TOOL || "23.0.1-tem",
|
|
38
38
|
};
|
|
@@ -496,10 +496,18 @@ export function installSdkmanTool(toolType, toolName) {
|
|
|
496
496
|
toolName = getSdkmanToolFullname(toolName);
|
|
497
497
|
let result = undefined;
|
|
498
498
|
if (!isSdkmanToolAvailable(toolType, toolName)) {
|
|
499
|
-
|
|
499
|
+
let installDir = "";
|
|
500
|
+
if (process.env.SDKMAN_CANDIDATES_DIR) {
|
|
501
|
+
installDir = join(process.env.SDKMAN_CANDIDATES_DIR, toolType);
|
|
502
|
+
}
|
|
503
|
+
console.log("About to install", toolType, toolName, installDir);
|
|
500
504
|
result = spawnSync(
|
|
501
505
|
process.env.SHELL || "bash",
|
|
502
|
-
[
|
|
506
|
+
[
|
|
507
|
+
"-i",
|
|
508
|
+
"-c",
|
|
509
|
+
`"echo -e "no" | sdk install ${toolType} ${toolName} ${installDir}"`.trim(),
|
|
510
|
+
],
|
|
503
511
|
{
|
|
504
512
|
encoding: "utf-8",
|
|
505
513
|
shell: process.env.SHELL || true,
|
|
@@ -507,10 +515,10 @@ export function installSdkmanTool(toolType, toolName) {
|
|
|
507
515
|
},
|
|
508
516
|
);
|
|
509
517
|
if (DEBUG_MODE) {
|
|
510
|
-
if (
|
|
518
|
+
if (result.stdout) {
|
|
511
519
|
console.log(result.stdout);
|
|
512
520
|
}
|
|
513
|
-
if (
|
|
521
|
+
if (result.stderr) {
|
|
514
522
|
console.log(result.stderr);
|
|
515
523
|
}
|
|
516
524
|
}
|
|
@@ -598,10 +606,10 @@ export function getNvmToolDirectory(toolName) {
|
|
|
598
606
|
},
|
|
599
607
|
);
|
|
600
608
|
if (DEBUG_MODE) {
|
|
601
|
-
if (
|
|
609
|
+
if (resultWhichNode.stdout) {
|
|
602
610
|
console.log(resultWhichNode.stdout);
|
|
603
611
|
}
|
|
604
|
-
if (
|
|
612
|
+
if (resultWhichNode.stderr) {
|
|
605
613
|
console.log(resultWhichNode.stderr);
|
|
606
614
|
}
|
|
607
615
|
}
|
|
@@ -634,10 +642,10 @@ export function getOrInstallNvmTool(toolVersion) {
|
|
|
634
642
|
);
|
|
635
643
|
|
|
636
644
|
if (DEBUG_MODE) {
|
|
637
|
-
if (
|
|
645
|
+
if (resultInstall.stdout) {
|
|
638
646
|
console.log(resultInstall.stdout);
|
|
639
647
|
}
|
|
640
|
-
if (
|
|
648
|
+
if (resultInstall.stderr) {
|
|
641
649
|
console.log(resultInstall.stderr);
|
|
642
650
|
}
|
|
643
651
|
}
|
package/lib/helpers/utils.js
CHANGED
|
@@ -61,6 +61,11 @@ if (!url.startsWith("file://")) {
|
|
|
61
61
|
export const dirNameStr = import.meta
|
|
62
62
|
? dirname(dirname(dirname(fileURLToPath(url))))
|
|
63
63
|
: __dirname;
|
|
64
|
+
|
|
65
|
+
export const isSecureMode = ["true", "1"].includes(
|
|
66
|
+
process.env?.CDXGEN_SECURE_MODE,
|
|
67
|
+
);
|
|
68
|
+
|
|
64
69
|
export const isWin = platform() === "win32";
|
|
65
70
|
export const isMac = platform() === "darwin";
|
|
66
71
|
export let ATOM_DB = join(homedir(), ".local", "share", ".atomdb");
|
|
@@ -5119,40 +5124,42 @@ export async function parsePyLockData(lockData, lockFile, pyProjectFile) {
|
|
|
5119
5124
|
addedValue[p.value] = true;
|
|
5120
5125
|
}
|
|
5121
5126
|
}
|
|
5122
|
-
|
|
5123
|
-
|
|
5124
|
-
|
|
5125
|
-
|
|
5126
|
-
|
|
5127
|
-
|
|
5128
|
-
|
|
5129
|
-
|
|
5130
|
-
|
|
5131
|
-
|
|
5132
|
-
|
|
5133
|
-
|
|
5134
|
-
|
|
5135
|
-
|
|
5136
|
-
|
|
5137
|
-
|
|
5138
|
-
|
|
5139
|
-
|
|
5140
|
-
|
|
5141
|
-
|
|
5142
|
-
|
|
5143
|
-
|
|
5144
|
-
|
|
5145
|
-
|
|
5146
|
-
|
|
5147
|
-
|
|
5148
|
-
|
|
5149
|
-
|
|
5150
|
-
|
|
5151
|
-
|
|
5152
|
-
|
|
5153
|
-
|
|
5154
|
-
|
|
5155
|
-
|
|
5127
|
+
if (parentPkg?.properties?.length) {
|
|
5128
|
+
for (const pprop of parentPkg.properties) {
|
|
5129
|
+
if (
|
|
5130
|
+
pprop.name.startsWith("internal:workspace") &&
|
|
5131
|
+
!addedValue[pprop.value]
|
|
5132
|
+
) {
|
|
5133
|
+
dependentPkg.properties.push(pprop);
|
|
5134
|
+
addedValue[pprop.value] = true;
|
|
5135
|
+
} else if (pprop.name === "internal:is_workspace") {
|
|
5136
|
+
dependentPkg.properties.push({
|
|
5137
|
+
name: "internal:workspaceRef",
|
|
5138
|
+
value: parentPkg["bom-ref"],
|
|
5139
|
+
});
|
|
5140
|
+
dependentPkg.properties.push({
|
|
5141
|
+
name: "internal:workspaceSrcFile",
|
|
5142
|
+
value: workspaceRefPyProjMap[parentPkg["bom-ref"]],
|
|
5143
|
+
});
|
|
5144
|
+
addedValue[parentPkg["bom-ref"]] = true;
|
|
5145
|
+
addedValue[workspaceRefPyProjMap[parentPkg["bom-ref"]]] = true;
|
|
5146
|
+
const childDeps = depsMap[dependentPkg["bom-ref"]];
|
|
5147
|
+
for (const childRef of childDeps) {
|
|
5148
|
+
if (!childRef.startsWith("pkg:")) {
|
|
5149
|
+
continue;
|
|
5150
|
+
}
|
|
5151
|
+
const childPkg = pkgBomRefMap[childRef];
|
|
5152
|
+
if (childPkg) {
|
|
5153
|
+
childPkg.properties = childPkg.properties || [];
|
|
5154
|
+
childPkg.properties.push({
|
|
5155
|
+
name: "internal:workspaceRef",
|
|
5156
|
+
value: parentPkg["bom-ref"],
|
|
5157
|
+
});
|
|
5158
|
+
childPkg.properties.push({
|
|
5159
|
+
name: "internal:workspaceSrcFile",
|
|
5160
|
+
value: workspaceRefPyProjMap[parentPkg["bom-ref"]],
|
|
5161
|
+
});
|
|
5162
|
+
}
|
|
5156
5163
|
}
|
|
5157
5164
|
}
|
|
5158
5165
|
}
|
|
@@ -13188,7 +13195,9 @@ export function parseCmakeLikeFile(cmakeListFile, pkgType, options = {}) {
|
|
|
13188
13195
|
let parentVersion = undefined;
|
|
13189
13196
|
// In case of meson.build we can find the version number after the word version
|
|
13190
13197
|
// thanks to our replaces and splits
|
|
13191
|
-
const versionIndex = tmpB.findIndex(
|
|
13198
|
+
const versionIndex = tmpB.findIndex(
|
|
13199
|
+
(v) => v?.toLowerCase() === "version",
|
|
13200
|
+
);
|
|
13192
13201
|
if (versionIndex > -1 && tmpB.length > versionIndex) {
|
|
13193
13202
|
parentVersion = tmpB[versionIndex + 1];
|
|
13194
13203
|
}
|
|
@@ -2449,7 +2449,7 @@ test("parse github actions workflow data", () => {
|
|
|
2449
2449
|
dep_list = parseGitHubWorkflowData(
|
|
2450
2450
|
readFileSync("./.github/workflows/repotests.yml", { encoding: "utf-8" }),
|
|
2451
2451
|
);
|
|
2452
|
-
expect(dep_list.length).toEqual(
|
|
2452
|
+
expect(dep_list.length).toEqual(12);
|
|
2453
2453
|
expect(dep_list[0]).toEqual({
|
|
2454
2454
|
group: "actions",
|
|
2455
2455
|
name: "checkout",
|
|
@@ -5734,6 +5734,18 @@ test("parseCmakeLikeFile tests", () => {
|
|
|
5734
5734
|
type: "application",
|
|
5735
5735
|
version: "",
|
|
5736
5736
|
});
|
|
5737
|
+
retMap = parseCmakeLikeFile(
|
|
5738
|
+
"./test/data/cmakes/CMakeLists-version.txt",
|
|
5739
|
+
"generic",
|
|
5740
|
+
);
|
|
5741
|
+
expect(retMap.parentComponent).toEqual({
|
|
5742
|
+
"bom-ref": "pkg:generic/MyProject@2.1.3",
|
|
5743
|
+
group: "",
|
|
5744
|
+
name: "MyProject",
|
|
5745
|
+
purl: "pkg:generic/MyProject@2.1.3",
|
|
5746
|
+
type: "application",
|
|
5747
|
+
version: "2.1.3",
|
|
5748
|
+
});
|
|
5737
5749
|
retMap = parseCmakeLikeFile(
|
|
5738
5750
|
"./test/data/cmakes/CMakeLists-tpl.txt",
|
|
5739
5751
|
"generic",
|
|
@@ -25,6 +25,7 @@ import {
|
|
|
25
25
|
hasAnyProjectType,
|
|
26
26
|
isFeatureEnabled,
|
|
27
27
|
isMac,
|
|
28
|
+
isSecureMode,
|
|
28
29
|
isWin,
|
|
29
30
|
} from "../../helpers/utils.js";
|
|
30
31
|
|
|
@@ -35,7 +36,7 @@ import {
|
|
|
35
36
|
* @param {Object} options CLI options
|
|
36
37
|
*/
|
|
37
38
|
export function prepareEnv(filePath, options) {
|
|
38
|
-
if (!options.projectType) {
|
|
39
|
+
if (!options.projectType || isSecureMode) {
|
|
39
40
|
return;
|
|
40
41
|
}
|
|
41
42
|
for (const pt of options.projectType) {
|
|
@@ -222,13 +223,17 @@ export function doNpmInstall(filePath, nvmNodePath) {
|
|
|
222
223
|
return;
|
|
223
224
|
}
|
|
224
225
|
const newPath = `${nvmNodePath}${delimiter}${process.env.PATH}`;
|
|
225
|
-
|
|
226
|
+
let installArgs = process.env.NPM_INSTALL_ARGS || "--package-lock-only";
|
|
227
|
+
const installCommand = "install";
|
|
228
|
+
if (isSecureMode) {
|
|
229
|
+
installArgs = `${installArgs} --ignore-scripts --no-audit`;
|
|
230
|
+
}
|
|
226
231
|
const resultNpmInstall = spawnSync(
|
|
227
232
|
process.env.SHELL || "bash",
|
|
228
233
|
[
|
|
229
234
|
"-i",
|
|
230
235
|
"-c",
|
|
231
|
-
`export PATH='${nvmNodePath}${delimiter}$PATH' && npm
|
|
236
|
+
`export PATH='${nvmNodePath}${delimiter}$PATH' && npm ${installCommand} ${installArgs}`,
|
|
232
237
|
],
|
|
233
238
|
{
|
|
234
239
|
encoding: "utf-8",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyclonedx/cdxgen",
|
|
3
|
-
"version": "11.1.
|
|
3
|
+
"version": "11.1.3",
|
|
4
4
|
"description": "Creates CycloneDX Software Bill of Materials (SBOM) from source or container image",
|
|
5
5
|
"homepage": "http://github.com/cyclonedx/cdxgen",
|
|
6
6
|
"author": "Prabhu Subramanian <prabhu@appthreat.com>",
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
"*": "biome check --fix --no-errors-on-unmatched"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@babel/parser": "^7.26.
|
|
65
|
-
"@babel/traverse": "^7.26.
|
|
64
|
+
"@babel/parser": "^7.26.7",
|
|
65
|
+
"@babel/traverse": "^7.26.7",
|
|
66
66
|
"@npmcli/arborist": "9.0.0",
|
|
67
67
|
"ajv": "^8.17.1",
|
|
68
68
|
"ajv-formats": "^3.0.1",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/cli/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/cli/index.js"],"names":[],"mappings":"AAsxBA;;;;;;;;GAQG;AACH,gFAFW,MAAM,SAchB;AAuXD;;;;;;;GAOG;AACH,mCALW,MAAM,qBAiEhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;EAKhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM;;;;EAkBhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAs7BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BAgqBhB;AAED;;;;;;;;;;GAUG;AACH,+DAsEC;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BA+dhB;AAED;;;;;GAKG;AACH,kCAHW,MAAM,8BA+YhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAqIhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAkEhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBA+KhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,qBAsHhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,0CAHW,MAAM,qBAuBhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,8BAqDhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM,8BA4ChB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,qBA2BhB;AAED;;;;;GAKG;AACH,qCAHW,MAAM,8BA6FhB;AAED;;;;;GAKG;AACH,iDAHW,MAAM,qBAmUhB;AAED;;;;;GAKG;AACH,mCAHW,MAAM,qBAiJhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM,8BAqNhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,8BAkahB;AAED;;;;;GAKG;AACH,2CAHW,MAAM;;;;;;;;;;;;;;;;;;;;GAoChB;AAED;;;;;;;;KA+DC;AAED;;;;;;GAMG;AACH,yDA+FC;AAED;;;;;;;;;GASG;AACH,2GA6BC;AAED;;;;;GAKG;AACH,0CAHW,MAAM,EAAE,8BA2iBlB;AAED;;;;;GAKG;AACH,iCAHW,MAAM,8BAgUhB;AAED;;;;;GAKG;AACH,gCAHW,MAAM,qBAiPhB;AAED;;;;;;GAMG;AACH,wDAFY,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CAAC,CAwHxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envcontext.d.ts","sourceRoot":"","sources":["../../../lib/helpers/envcontext.js"],"names":[],"mappings":"AAuCA;;;;;;GAMG;AACH,wCALW,MAAM,OACN,MAAM,OAMhB;AAED;;;;;GAKG;AACH,kCAJW,MAAM,OAMhB;AAED;;;;;;GAMG;AACH,gDAJW,MAAM,OAMhB;AAED;;;;;GAKG;AACH,mCAJW,MAAM,MAsBhB;AAED;;;;;GAKG;AACH,+BAJW,MAAM,SAgChB;AAED;;;;;;;GAOG;AACH,oCALW,MAAM,oBAOhB;AAED;;;;;GAKG;AACH,qCAHW,MAAM;;;;;;;;;EAsBhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;;EAgBhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;;EAgBhB;AAED;;;;;GAKG;AACH,qCAHW,MAAM;;;;;EAkBhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM;;;;;EAehB;AAED;;;;;GAKG;AACH,qCAHW,MAAM;;;;;EAehB;AAED;;;;;GAKG;AACH,mCAHW,MAAM;;;;EAahB;AAED;;;;;GAKG;AACH,sCAHW,MAAM;;;;EAahB;AAED;;;;;GAKG;AACH,qCAHW,MAAM;;;;EAahB;AAED;;;;;;GAMG;AACH,+DAEC;AAED;;;;;;;;;IAmCC;AAwCD;;GAEG;AACH,6CAeC;AAED;;GAEG;AACH,0CAUC;AAED;;;;;;;GAOG;AACH,mFAqBC;AAED;;;;;;;GAOG;AACH,+
|
|
1
|
+
{"version":3,"file":"envcontext.d.ts","sourceRoot":"","sources":["../../../lib/helpers/envcontext.js"],"names":[],"mappings":"AAuCA;;;;;;GAMG;AACH,wCALW,MAAM,OACN,MAAM,OAMhB;AAED;;;;;GAKG;AACH,kCAJW,MAAM,OAMhB;AAED;;;;;;GAMG;AACH,gDAJW,MAAM,OAMhB;AAED;;;;;GAKG;AACH,mCAJW,MAAM,MAsBhB;AAED;;;;;GAKG;AACH,+BAJW,MAAM,SAgChB;AAED;;;;;;;GAOG;AACH,oCALW,MAAM,oBAOhB;AAED;;;;;GAKG;AACH,qCAHW,MAAM;;;;;;;;;EAsBhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;;EAgBhB;AAED;;;;;GAKG;AACH,uCAHW,MAAM;;;;;EAgBhB;AAED;;;;;GAKG;AACH,qCAHW,MAAM;;;;;EAkBhB;AAED;;;;;GAKG;AACH,oCAHW,MAAM;;;;;EAehB;AAED;;;;;GAKG;AACH,qCAHW,MAAM;;;;;EAehB;AAED;;;;;GAKG;AACH,mCAHW,MAAM;;;;EAahB;AAED;;;;;GAKG;AACH,sCAHW,MAAM;;;;EAahB;AAED;;;;;GAKG;AACH,qCAHW,MAAM;;;;EAahB;AAED;;;;;;GAMG;AACH,+DAEC;AAED;;;;;;;;;IAmCC;AAwCD;;GAEG;AACH,6CAeC;AAED;;GAEG;AACH,0CAUC;AAED;;;;;;;GAOG;AACH,mFAqBC;AAED;;;;;;;GAOG;AACH,+EAiGC;AAED;;;;;;GAMG;AACH,8DAuBC;AAED;;;;;;GAMG;AACH,iEAmCC;AASD;;;;GAIG;AACH,4CAiBC;AAED,yDAIC;AAED;;;;;;GAMG;AACH,sGAsCC;AAED;;;;;GAKG;AACH;;;EAyFC;AAED;;;;;GAKG;AACH,mFA6DC;AAED;;;;;;;;;GASG;AACH,+GAFa,OAAO,CAkLnB;AAnjCD,8BAAwD"}
|
|
@@ -1365,6 +1365,7 @@ export function isPartialTree(dependencies: any[], componentsCount?: number): bo
|
|
|
1365
1365
|
*/
|
|
1366
1366
|
export function recomputeScope(pkgList: any[], dependencies: any[]): any[];
|
|
1367
1367
|
export const dirNameStr: string;
|
|
1368
|
+
export const isSecureMode: boolean;
|
|
1368
1369
|
export const isWin: boolean;
|
|
1369
1370
|
export const isMac: boolean;
|
|
1370
1371
|
export let ATOM_DB: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/helpers/utils.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/helpers/utils.js"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pregen.d.ts","sourceRoot":"","sources":["../../../../lib/stages/pregen/pregen.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pregen.d.ts","sourceRoot":"","sources":["../../../../lib/stages/pregen/pregen.js"],"names":[],"mappings":"AA+BA;;;;;GAKG;AACH,iEAkBC;AAED;;;;GAIG;AACH,iEASC;AAED;;;;;GAKG;AACH,wEAqCC;AAED;;;;;GAKG;AACH,qEAyDC;AAED;;;;;;;;GAQG;AACH,uEAmBC;AAED;;;;;GAKG;AACH,0EAyCC;AAED;;;;;GAKG;AACH,sEA6EC;AAED;;;;;GAKG;AACH,qEA8PC"}
|