@cyclonedx/cdxgen 12.4.1 → 12.4.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/bin/evinse.js +15 -0
- package/lib/cli/index.js +60 -9
- package/lib/cli/index.poku.js +161 -0
- package/lib/evinser/evinser.js +118 -3
- package/lib/helpers/cbomutils.js +162 -2
- package/lib/helpers/cbomutils.poku.js +100 -0
- package/lib/helpers/ciParsers/githubActions.js +15 -3
- package/lib/helpers/ciParsers/githubActions.poku.js +52 -0
- package/lib/helpers/display.js +12 -6
- package/lib/helpers/display.poku.js +38 -0
- package/lib/helpers/dosai.js +433 -0
- package/lib/helpers/dosai.poku.js +302 -0
- package/lib/helpers/dosaiParsers.js +103 -0
- package/lib/helpers/utils.js +198 -1
- package/lib/helpers/utils.poku.js +352 -0
- package/lib/stages/postgen/annotator.js +2 -1
- package/lib/stages/postgen/annotator.poku.js +28 -0
- package/package.json +12 -12
- package/types/lib/cli/index.d.ts.map +1 -1
- package/types/lib/evinser/evinser.d.ts +15 -0
- package/types/lib/evinser/evinser.d.ts.map +1 -1
- package/types/lib/helpers/bomUtils.d.ts +1 -3
- package/types/lib/helpers/bomUtils.d.ts.map +1 -1
- package/types/lib/helpers/cbomutils.d.ts +1 -0
- package/types/lib/helpers/cbomutils.d.ts.map +1 -1
- package/types/lib/helpers/ciParsers/githubActions.d.ts.map +1 -1
- package/types/lib/helpers/display.d.ts.map +1 -1
- package/types/lib/helpers/dosai.d.ts +24 -0
- package/types/lib/helpers/dosai.d.ts.map +1 -0
- package/types/lib/helpers/dosaiParsers.d.ts +8 -0
- package/types/lib/helpers/dosaiParsers.d.ts.map +1 -0
- package/types/lib/helpers/utils.d.ts.map +1 -1
- package/types/lib/stages/postgen/annotator.d.ts.map +1 -1
- package/types/lib/validator/bomValidator.d.ts.map +1 -1
|
@@ -54,6 +54,7 @@ import {
|
|
|
54
54
|
isPartialTree,
|
|
55
55
|
isValidIriReference,
|
|
56
56
|
mapConanPkgRefToPurlStringAndNameAndVersion,
|
|
57
|
+
PROJECT_TYPE_ALIASES,
|
|
57
58
|
parseBazelActionGraph,
|
|
58
59
|
parseBazelBuild,
|
|
59
60
|
parseBazelSkyframe,
|
|
@@ -338,6 +339,32 @@ it("safeSpawnSync() does not classify non-probe -v commands as version checks",
|
|
|
338
339
|
}
|
|
339
340
|
});
|
|
340
341
|
|
|
342
|
+
it("safeSpawnSync() blocks shell metacharacters with shell execution", () => {
|
|
343
|
+
const markerFile = path.join(tmpdir(), "cdxgen-safe-spawn-shell-marker");
|
|
344
|
+
const originalConsoleWarn = console.warn;
|
|
345
|
+
const warnings = [];
|
|
346
|
+
rmSync(markerFile, { force: true });
|
|
347
|
+
resetRecordedActivities();
|
|
348
|
+
console.warn = (message) => {
|
|
349
|
+
warnings.push(message);
|
|
350
|
+
};
|
|
351
|
+
|
|
352
|
+
try {
|
|
353
|
+
const result = safeSpawnSync("printf", ["blocked", ">", markerFile], {
|
|
354
|
+
shell: true,
|
|
355
|
+
});
|
|
356
|
+
assert.strictEqual(result.status, 1);
|
|
357
|
+
assert.ok(result.error);
|
|
358
|
+
assert.match(result.error.message, /shell metacharacters/);
|
|
359
|
+
assert.strictEqual(existsSync(markerFile), false);
|
|
360
|
+
assert.ok(warnings.some((warning) => /Security Alert/.test(warning)));
|
|
361
|
+
} finally {
|
|
362
|
+
console.warn = originalConsoleWarn;
|
|
363
|
+
resetRecordedActivities();
|
|
364
|
+
rmSync(markerFile, { force: true });
|
|
365
|
+
}
|
|
366
|
+
});
|
|
367
|
+
|
|
341
368
|
it("safeSpawnSync() reads CDXGEN_ALLOWED_COMMANDS once per invocation", () => {
|
|
342
369
|
const originalAllowedCommands = process.env.CDXGEN_ALLOWED_COMMANDS;
|
|
343
370
|
process.env.CDXGEN_ALLOWED_COMMANDS = "echo-cdxgen-test";
|
|
@@ -597,6 +624,37 @@ it("records recursive file discovery activity in dry-run mode", () => {
|
|
|
597
624
|
}
|
|
598
625
|
});
|
|
599
626
|
|
|
627
|
+
it("records suspicious discovered paths with shell metacharacters in dry-run mode", () => {
|
|
628
|
+
const tmpRoot = mkdtempSync(
|
|
629
|
+
path.join(tmpdir(), "cdxgen-dry-run-shell-path-"),
|
|
630
|
+
);
|
|
631
|
+
const shellIfs = "$" + "{IFS}";
|
|
632
|
+
const maliciousDirName =
|
|
633
|
+
platform() === "win32"
|
|
634
|
+
? "evil&echo%CDXGEN_GITURL_E2E_MARKER%&rem"
|
|
635
|
+
: `evil;cd${shellIfs}..;printf${shellIfs}marker>CDXGEN_GITURL_E2E_MARKER;#`;
|
|
636
|
+
const maliciousDir = path.join(tmpRoot, maliciousDirName);
|
|
637
|
+
const pomFile = path.join(maliciousDir, "pom.xml");
|
|
638
|
+
mkdirSync(maliciousDir, { recursive: true });
|
|
639
|
+
writeFileSync(pomFile, "<project />");
|
|
640
|
+
setDryRunMode(true);
|
|
641
|
+
resetRecordedActivities();
|
|
642
|
+
try {
|
|
643
|
+
assert.deepStrictEqual(getAllFiles(tmpRoot, "**/pom.xml"), [pomFile]);
|
|
644
|
+
const suspiciousActivity = getRecordedActivities().find(
|
|
645
|
+
(activity) => activity.classification === "suspicious-path",
|
|
646
|
+
);
|
|
647
|
+
assert.ok(suspiciousActivity);
|
|
648
|
+
assert.strictEqual(suspiciousActivity.risk, "shell-metacharacters");
|
|
649
|
+
assert.strictEqual(suspiciousActivity.target, pomFile);
|
|
650
|
+
assert.match(suspiciousActivity.reason, /shell metacharacters/);
|
|
651
|
+
} finally {
|
|
652
|
+
setDryRunMode(false);
|
|
653
|
+
resetRecordedActivities();
|
|
654
|
+
rmSync(tmpRoot, { force: true, recursive: true });
|
|
655
|
+
}
|
|
656
|
+
});
|
|
657
|
+
|
|
600
658
|
it("records updated discovery activity when a repeated glob match count changes", () => {
|
|
601
659
|
const tmpRoot = mkdtempSync(path.join(tmpdir(), "cdxgen-dry-run-glob-"));
|
|
602
660
|
const packageJsonFile = path.join(tmpRoot, "package.json");
|
|
@@ -4327,6 +4385,296 @@ it("addEvidenceForDotnet() initializes evidence before adding occurrences", () =
|
|
|
4327
4385
|
}
|
|
4328
4386
|
});
|
|
4329
4387
|
|
|
4388
|
+
it("addEvidenceForDotnet() ignores unreadable dosai JSON", () => {
|
|
4389
|
+
const tempDir = mkdtempSync(path.join(tmpdir(), "cdxgen-dotnet-bad-json-"));
|
|
4390
|
+
const slicesFile = path.join(tempDir, "dosai.json");
|
|
4391
|
+
try {
|
|
4392
|
+
writeFileSync(slicesFile, "");
|
|
4393
|
+
const inputPkgList = [
|
|
4394
|
+
{
|
|
4395
|
+
name: "Example",
|
|
4396
|
+
purl: "pkg:nuget/Example@1.0.0",
|
|
4397
|
+
properties: [{ name: "PackageFiles", value: "Example.dll" }],
|
|
4398
|
+
},
|
|
4399
|
+
];
|
|
4400
|
+
const pkgList = addEvidenceForDotnet(inputPkgList, slicesFile);
|
|
4401
|
+
|
|
4402
|
+
assert.strictEqual(pkgList, inputPkgList);
|
|
4403
|
+
assert.strictEqual(pkgList[0].evidence, undefined);
|
|
4404
|
+
assert.strictEqual(pkgList[0].scope, undefined);
|
|
4405
|
+
} finally {
|
|
4406
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
4407
|
+
}
|
|
4408
|
+
});
|
|
4409
|
+
|
|
4410
|
+
it("addEvidenceForDotnet() consumes dosai v3 PackageReachability", () => {
|
|
4411
|
+
const tempDir = mkdtempSync(
|
|
4412
|
+
path.join(tmpdir(), "cdxgen-dotnet-reachability-"),
|
|
4413
|
+
);
|
|
4414
|
+
const slicesFile = path.join(tempDir, "dosai.json");
|
|
4415
|
+
try {
|
|
4416
|
+
writeFileSync(
|
|
4417
|
+
slicesFile,
|
|
4418
|
+
JSON.stringify({
|
|
4419
|
+
CallGraph: {
|
|
4420
|
+
Edges: [
|
|
4421
|
+
{
|
|
4422
|
+
Id: "e1",
|
|
4423
|
+
FileName: "Controllers/EpisodesController.cs",
|
|
4424
|
+
LineNumber: 17,
|
|
4425
|
+
CalledMethodName: "System.Text.Json.JsonSerializer.Deserialize",
|
|
4426
|
+
},
|
|
4427
|
+
],
|
|
4428
|
+
Nodes: [
|
|
4429
|
+
{
|
|
4430
|
+
Id: "n1",
|
|
4431
|
+
FileName: "System.Text.Json.dll",
|
|
4432
|
+
LineNumber: 0,
|
|
4433
|
+
ClassName: "JsonSerializer",
|
|
4434
|
+
Name: "Deserialize",
|
|
4435
|
+
},
|
|
4436
|
+
],
|
|
4437
|
+
},
|
|
4438
|
+
PackageReachability: [
|
|
4439
|
+
{
|
|
4440
|
+
Purl: "pkg:nuget/System.Text.Json",
|
|
4441
|
+
EdgeIds: ["e1"],
|
|
4442
|
+
NodeIds: ["n1"],
|
|
4443
|
+
SourceLocations: [
|
|
4444
|
+
{
|
|
4445
|
+
Path: "Controllers/Parser.cs",
|
|
4446
|
+
FileName: "Parser.cs",
|
|
4447
|
+
LineNumber: 42,
|
|
4448
|
+
ColumnNumber: 13,
|
|
4449
|
+
Kind: "CallGraphEdge",
|
|
4450
|
+
},
|
|
4451
|
+
{
|
|
4452
|
+
Path: "System.Text.Json.dll",
|
|
4453
|
+
FileName: "System.Text.Json.dll",
|
|
4454
|
+
LineNumber: 1,
|
|
4455
|
+
Kind: "CallGraphNode",
|
|
4456
|
+
},
|
|
4457
|
+
],
|
|
4458
|
+
},
|
|
4459
|
+
],
|
|
4460
|
+
}),
|
|
4461
|
+
);
|
|
4462
|
+
const pkgList = addEvidenceForDotnet(
|
|
4463
|
+
[
|
|
4464
|
+
{
|
|
4465
|
+
name: "System.Text.Json",
|
|
4466
|
+
purl: "pkg:nuget/System.Text.Json@10.0.0",
|
|
4467
|
+
properties: [],
|
|
4468
|
+
},
|
|
4469
|
+
],
|
|
4470
|
+
slicesFile,
|
|
4471
|
+
);
|
|
4472
|
+
|
|
4473
|
+
assert.deepStrictEqual(pkgList[0].evidence?.occurrences, [
|
|
4474
|
+
{
|
|
4475
|
+
location: "Controllers/Parser.cs",
|
|
4476
|
+
line: 42,
|
|
4477
|
+
},
|
|
4478
|
+
]);
|
|
4479
|
+
assert.ok(
|
|
4480
|
+
pkgList[0].evidence.identity.methods.some(
|
|
4481
|
+
(method) =>
|
|
4482
|
+
method.technique === "source-code-analysis" &&
|
|
4483
|
+
method.value === "Controllers/Parser.cs#42",
|
|
4484
|
+
),
|
|
4485
|
+
);
|
|
4486
|
+
assert.ok(
|
|
4487
|
+
pkgList[0].properties.some(
|
|
4488
|
+
(property) =>
|
|
4489
|
+
property.name === "CalledMethods" &&
|
|
4490
|
+
property.value.includes(
|
|
4491
|
+
"System.Text.Json.JsonSerializer.Deserialize",
|
|
4492
|
+
),
|
|
4493
|
+
),
|
|
4494
|
+
);
|
|
4495
|
+
} finally {
|
|
4496
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
4497
|
+
}
|
|
4498
|
+
});
|
|
4499
|
+
|
|
4500
|
+
it("addEvidenceForDotnet() keeps PackageReachability fallback evidence source-only", () => {
|
|
4501
|
+
const tempDir = mkdtempSync(
|
|
4502
|
+
path.join(tmpdir(), "cdxgen-dotnet-source-fallback-"),
|
|
4503
|
+
);
|
|
4504
|
+
const slicesFile = path.join(tempDir, "dosai.json");
|
|
4505
|
+
try {
|
|
4506
|
+
writeFileSync(
|
|
4507
|
+
slicesFile,
|
|
4508
|
+
JSON.stringify({
|
|
4509
|
+
CallGraph: {
|
|
4510
|
+
Edges: [
|
|
4511
|
+
{
|
|
4512
|
+
Id: "e1",
|
|
4513
|
+
FileName: "System.Text.Json.dll",
|
|
4514
|
+
LineNumber: 12,
|
|
4515
|
+
CalledMethodName: "System.Text.Json.JsonSerializer.Deserialize",
|
|
4516
|
+
CallLocation: {
|
|
4517
|
+
FileName: "Program.fs",
|
|
4518
|
+
LineNumber: 8,
|
|
4519
|
+
},
|
|
4520
|
+
},
|
|
4521
|
+
{
|
|
4522
|
+
Id: "e2",
|
|
4523
|
+
FileName: "Controllers/EpisodesController.cs",
|
|
4524
|
+
LineNumber: 17,
|
|
4525
|
+
CalledMethodName: "System.Text.Json.JsonSerializer.Serialize",
|
|
4526
|
+
},
|
|
4527
|
+
],
|
|
4528
|
+
},
|
|
4529
|
+
PackageReachability: [
|
|
4530
|
+
{
|
|
4531
|
+
Purl: "pkg:nuget/System.Text.Json",
|
|
4532
|
+
EdgeIds: ["e1", "e2"],
|
|
4533
|
+
},
|
|
4534
|
+
],
|
|
4535
|
+
}),
|
|
4536
|
+
);
|
|
4537
|
+
const pkgList = addEvidenceForDotnet(
|
|
4538
|
+
[
|
|
4539
|
+
{
|
|
4540
|
+
name: "System.Text.Json",
|
|
4541
|
+
purl: "pkg:nuget/System.Text.Json@10.0.0",
|
|
4542
|
+
properties: [],
|
|
4543
|
+
},
|
|
4544
|
+
],
|
|
4545
|
+
slicesFile,
|
|
4546
|
+
);
|
|
4547
|
+
|
|
4548
|
+
assert.deepStrictEqual(pkgList[0].evidence?.occurrences, [
|
|
4549
|
+
{
|
|
4550
|
+
location: "Controllers/EpisodesController.cs",
|
|
4551
|
+
line: 17,
|
|
4552
|
+
},
|
|
4553
|
+
{
|
|
4554
|
+
location: "Program.fs",
|
|
4555
|
+
line: 8,
|
|
4556
|
+
},
|
|
4557
|
+
]);
|
|
4558
|
+
assert.ok(!JSON.stringify(pkgList[0].evidence).includes(".dll"));
|
|
4559
|
+
} finally {
|
|
4560
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
4561
|
+
}
|
|
4562
|
+
});
|
|
4563
|
+
|
|
4564
|
+
it("addEvidenceForDotnet() preserves additional identity entries", () => {
|
|
4565
|
+
const tempDir = mkdtempSync(
|
|
4566
|
+
path.join(tmpdir(), "cdxgen-dotnet-identity-array-"),
|
|
4567
|
+
);
|
|
4568
|
+
const slicesFile = path.join(tempDir, "dosai.json");
|
|
4569
|
+
try {
|
|
4570
|
+
writeFileSync(
|
|
4571
|
+
slicesFile,
|
|
4572
|
+
JSON.stringify({
|
|
4573
|
+
Dependencies: [
|
|
4574
|
+
{
|
|
4575
|
+
Path: "Program.cs",
|
|
4576
|
+
FileName: "Program.cs",
|
|
4577
|
+
Name: "System.Text.Json",
|
|
4578
|
+
Purl: "pkg:nuget/System.Text.Json",
|
|
4579
|
+
LineNumber: 12,
|
|
4580
|
+
},
|
|
4581
|
+
],
|
|
4582
|
+
}),
|
|
4583
|
+
);
|
|
4584
|
+
const pkgList = addEvidenceForDotnet(
|
|
4585
|
+
[
|
|
4586
|
+
{
|
|
4587
|
+
name: "System.Text.Json",
|
|
4588
|
+
purl: "pkg:nuget/System.Text.Json@10.0.0",
|
|
4589
|
+
evidence: {
|
|
4590
|
+
identity: [
|
|
4591
|
+
{
|
|
4592
|
+
field: "name",
|
|
4593
|
+
confidence: 0.8,
|
|
4594
|
+
methods: [
|
|
4595
|
+
{ technique: "filename", value: "packages.lock.json" },
|
|
4596
|
+
],
|
|
4597
|
+
},
|
|
4598
|
+
{
|
|
4599
|
+
field: "purl",
|
|
4600
|
+
confidence: 1,
|
|
4601
|
+
methods: [
|
|
4602
|
+
{
|
|
4603
|
+
technique: "manifest-analysis",
|
|
4604
|
+
value: "packages.lock.json",
|
|
4605
|
+
},
|
|
4606
|
+
],
|
|
4607
|
+
},
|
|
4608
|
+
],
|
|
4609
|
+
},
|
|
4610
|
+
properties: [],
|
|
4611
|
+
},
|
|
4612
|
+
],
|
|
4613
|
+
slicesFile,
|
|
4614
|
+
);
|
|
4615
|
+
|
|
4616
|
+
assert.strictEqual(pkgList[0].evidence.identity.length, 2);
|
|
4617
|
+
assert.strictEqual(pkgList[0].evidence.identity[0].field, "name");
|
|
4618
|
+
assert.ok(
|
|
4619
|
+
pkgList[0].evidence.identity[1].methods.some(
|
|
4620
|
+
(method) =>
|
|
4621
|
+
method.technique === "source-code-analysis" &&
|
|
4622
|
+
method.value === "Program.cs#12",
|
|
4623
|
+
),
|
|
4624
|
+
);
|
|
4625
|
+
} finally {
|
|
4626
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
4627
|
+
}
|
|
4628
|
+
});
|
|
4629
|
+
|
|
4630
|
+
it("addEvidenceForDotnet() consumes dosai Dependencies with purls", () => {
|
|
4631
|
+
const tempDir = mkdtempSync(path.join(tmpdir(), "cdxgen-dotnet-vb-deps-"));
|
|
4632
|
+
const slicesFile = path.join(tempDir, "dosai.json");
|
|
4633
|
+
try {
|
|
4634
|
+
writeFileSync(
|
|
4635
|
+
slicesFile,
|
|
4636
|
+
JSON.stringify({
|
|
4637
|
+
Dependencies: [
|
|
4638
|
+
{
|
|
4639
|
+
Path: "Program.vb",
|
|
4640
|
+
FileName: "Program.vb",
|
|
4641
|
+
Name: "Newtonsoft.Json",
|
|
4642
|
+
Purl: "pkg:nuget/Newtonsoft.Json@13.0.3",
|
|
4643
|
+
LineNumber: 4,
|
|
4644
|
+
ColumnNumber: 9,
|
|
4645
|
+
},
|
|
4646
|
+
],
|
|
4647
|
+
}),
|
|
4648
|
+
);
|
|
4649
|
+
const pkgList = addEvidenceForDotnet(
|
|
4650
|
+
[
|
|
4651
|
+
{
|
|
4652
|
+
name: "Newtonsoft.Json",
|
|
4653
|
+
purl: "pkg:nuget/Newtonsoft.Json@13.0.3",
|
|
4654
|
+
properties: [],
|
|
4655
|
+
},
|
|
4656
|
+
],
|
|
4657
|
+
slicesFile,
|
|
4658
|
+
);
|
|
4659
|
+
|
|
4660
|
+
assert.deepStrictEqual(pkgList[0].evidence?.occurrences, [
|
|
4661
|
+
{
|
|
4662
|
+
location: "Program.vb",
|
|
4663
|
+
line: 4,
|
|
4664
|
+
},
|
|
4665
|
+
]);
|
|
4666
|
+
assert.ok(
|
|
4667
|
+
pkgList[0].properties.some(
|
|
4668
|
+
(property) =>
|
|
4669
|
+
property.name === "ImportedModules" &&
|
|
4670
|
+
property.value.includes("Newtonsoft.Json"),
|
|
4671
|
+
),
|
|
4672
|
+
);
|
|
4673
|
+
} finally {
|
|
4674
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
4675
|
+
}
|
|
4676
|
+
});
|
|
4677
|
+
|
|
4330
4678
|
it("parse packages.lock.json", () => {
|
|
4331
4679
|
assert.deepStrictEqual(parseCsPkgLockData(null), {
|
|
4332
4680
|
dependenciesList: [],
|
|
@@ -10229,6 +10577,10 @@ it("parseMakeDFile tests", () => {
|
|
|
10229
10577
|
});
|
|
10230
10578
|
|
|
10231
10579
|
it("hasAnyProjectType tests", () => {
|
|
10580
|
+
for (const language of ["vb", "vbnet", "visualbasic", "f#", "fs", "fsharp"]) {
|
|
10581
|
+
assert.ok(PROJECT_TYPE_ALIASES.csharp.includes(language));
|
|
10582
|
+
}
|
|
10583
|
+
|
|
10232
10584
|
assert.deepStrictEqual(
|
|
10233
10585
|
hasAnyProjectType(["docker"], {
|
|
10234
10586
|
projectType: [],
|
|
@@ -23,6 +23,7 @@ function humanifyTimestamp(timestamp) {
|
|
|
23
23
|
month: "long",
|
|
24
24
|
day: "numeric",
|
|
25
25
|
weekday: "long",
|
|
26
|
+
timeZone: "UTC",
|
|
26
27
|
});
|
|
27
28
|
}
|
|
28
29
|
|
|
@@ -123,7 +124,7 @@ function getGitHubWorkflowStats(components) {
|
|
|
123
124
|
stats.continueOnError++;
|
|
124
125
|
}
|
|
125
126
|
if (propMap["cdx:github:job:runner"]) {
|
|
126
|
-
propMap["cdx:github:job:runner"]
|
|
127
|
+
String(propMap["cdx:github:job:runner"])
|
|
127
128
|
.split(",")
|
|
128
129
|
.filter((r) => r.includes("$"))
|
|
129
130
|
.forEach((r) => {
|
|
@@ -432,3 +432,31 @@ it("recognizes HBOMs and summarizes hardware-specific metadata", () => {
|
|
|
432
432
|
);
|
|
433
433
|
assert.match(summary, /Identifier policy is 'redacted-by-default'\./u);
|
|
434
434
|
});
|
|
435
|
+
|
|
436
|
+
it("handles non-string GitHub runner properties while summarizing metadata", () => {
|
|
437
|
+
const summary = textualMetadata({
|
|
438
|
+
bomFormat: "CycloneDX",
|
|
439
|
+
specVersion: "1.7",
|
|
440
|
+
metadata: {
|
|
441
|
+
timestamp: "2026-01-01T00:00:00Z",
|
|
442
|
+
tools: { components: [{ name: "cdxgen" }] },
|
|
443
|
+
component: { name: "workflow", type: "application" },
|
|
444
|
+
},
|
|
445
|
+
components: [
|
|
446
|
+
{
|
|
447
|
+
name: "checkout",
|
|
448
|
+
purl: "pkg:github/actions/checkout@v4",
|
|
449
|
+
properties: [
|
|
450
|
+
{ name: "cdx:github:workflow:name", value: "CI" },
|
|
451
|
+
{ name: "cdx:github:job:name", value: "build" },
|
|
452
|
+
{
|
|
453
|
+
name: "cdx:github:job:runner",
|
|
454
|
+
value: { group: "ubuntu-runners", labels: "ubuntu-latest" },
|
|
455
|
+
},
|
|
456
|
+
],
|
|
457
|
+
},
|
|
458
|
+
],
|
|
459
|
+
});
|
|
460
|
+
|
|
461
|
+
assert.match(summary, /GitHub Action references/u);
|
|
462
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyclonedx/cdxgen",
|
|
3
|
-
"version": "12.4.
|
|
3
|
+
"version": "12.4.3",
|
|
4
4
|
"description": "Creates CycloneDX Software Bill of Materials (SBOM) from source or container image",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sbom",
|
|
@@ -156,17 +156,17 @@
|
|
|
156
156
|
"@appthreat/cdx-proto": "2.0.1",
|
|
157
157
|
"@bufbuild/protobuf": "2.12.0",
|
|
158
158
|
"@cdxgen/cdx-hbom": "0.5.0",
|
|
159
|
-
"@cdxgen/cdxgen-plugins-bin": "2.1.
|
|
160
|
-
"@cdxgen/cdxgen-plugins-bin-darwin-amd64": "2.1.
|
|
161
|
-
"@cdxgen/cdxgen-plugins-bin-darwin-arm64": "2.1.
|
|
162
|
-
"@cdxgen/cdxgen-plugins-bin-linux-amd64": "2.1.
|
|
163
|
-
"@cdxgen/cdxgen-plugins-bin-linux-arm": "2.1.
|
|
164
|
-
"@cdxgen/cdxgen-plugins-bin-linux-arm64": "2.1.
|
|
165
|
-
"@cdxgen/cdxgen-plugins-bin-linux-ppc64": "2.1.
|
|
166
|
-
"@cdxgen/cdxgen-plugins-bin-linuxmusl-amd64": "2.1.
|
|
167
|
-
"@cdxgen/cdxgen-plugins-bin-linuxmusl-arm64": "2.1.
|
|
168
|
-
"@cdxgen/cdxgen-plugins-bin-windows-amd64": "2.1.
|
|
169
|
-
"@cdxgen/cdxgen-plugins-bin-windows-arm64": "2.1.
|
|
159
|
+
"@cdxgen/cdxgen-plugins-bin": "2.1.3",
|
|
160
|
+
"@cdxgen/cdxgen-plugins-bin-darwin-amd64": "2.1.3",
|
|
161
|
+
"@cdxgen/cdxgen-plugins-bin-darwin-arm64": "2.1.3",
|
|
162
|
+
"@cdxgen/cdxgen-plugins-bin-linux-amd64": "2.1.3",
|
|
163
|
+
"@cdxgen/cdxgen-plugins-bin-linux-arm": "2.1.3",
|
|
164
|
+
"@cdxgen/cdxgen-plugins-bin-linux-arm64": "2.1.3",
|
|
165
|
+
"@cdxgen/cdxgen-plugins-bin-linux-ppc64": "2.1.3",
|
|
166
|
+
"@cdxgen/cdxgen-plugins-bin-linuxmusl-amd64": "2.1.3",
|
|
167
|
+
"@cdxgen/cdxgen-plugins-bin-linuxmusl-arm64": "2.1.3",
|
|
168
|
+
"@cdxgen/cdxgen-plugins-bin-windows-amd64": "2.1.3",
|
|
169
|
+
"@cdxgen/cdxgen-plugins-bin-windows-arm64": "2.1.3",
|
|
170
170
|
"body-parser": "2.2.2",
|
|
171
171
|
"compression": "1.8.1",
|
|
172
172
|
"connect": "3.7.0",
|
|
@@ -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":"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"}
|
|
@@ -114,6 +114,21 @@ export function initFromSbom(components: any, language: any): {
|
|
|
114
114
|
* @param {Object} options Command line options
|
|
115
115
|
*/
|
|
116
116
|
export function analyzeProject(dbObjMap: Object, options: Object): Promise<{
|
|
117
|
+
usagesSlicesFile: any;
|
|
118
|
+
dataFlowSlicesFile: any;
|
|
119
|
+
purlLocationMap: {};
|
|
120
|
+
servicesMap: {};
|
|
121
|
+
dataFlowFrames: {};
|
|
122
|
+
tempDir: any;
|
|
123
|
+
tempDirOwned: any;
|
|
124
|
+
userDefinedTypesMap: {};
|
|
125
|
+
cryptoComponents: any[];
|
|
126
|
+
cryptoGeneratePurls: {};
|
|
127
|
+
atomFile?: undefined;
|
|
128
|
+
reachablesSlicesFile?: undefined;
|
|
129
|
+
semanticsSlicesFile?: undefined;
|
|
130
|
+
openapiSpecFile?: undefined;
|
|
131
|
+
} | {
|
|
117
132
|
atomFile: any;
|
|
118
133
|
usagesSlicesFile: any;
|
|
119
134
|
dataFlowSlicesFile: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evinser.d.ts","sourceRoot":"","sources":["../../../lib/evinser/evinser.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"evinser.d.ts","sourceRoot":"","sources":["../../../lib/evinser/evinser.js"],"names":[],"mappings":"AA2CA;;;;GAIG;AACH,mCAFW,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAyDhB;AAED,6GAiDC;AAED,gGAkCC;AAED,wGAqBC;AAED;;;;;;;;;;;;;;;;;;;;;GAwMC;AAED,6EA0BC;AAED;;;EA8BC;AAcD;;;;;GAKG;AACH,yCAHW,MAAM,WACN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoPhB;AAED,wLA8DC;AAED;;;;;;;;;;;GAWG;AACH,2CARW,MAAM,uBACN,MAAM,0BAEN,MAAM,mBACN,MAAM,kBACN,MAAM,iBAqOhB;AAED;;;;;;;GAOG;AACH,yFAHW,MAAM,GACJ,MAAM,CAiGlB;AAyBD,sGAyEC;AAED,wGAmCC;AAED;;;;;;GAMG;AACH,mDAJW,MAAM,8BAEN,MAAM,uBA6DhB;AAED;;;;;;GAMG;AACH,gDAJW,MAAM,wCAEN,MAAM,QAkDhB;AAED,yEAWC;AAED,gEAsFC;AAED;;;;;;GAMG;AACH,iDAJW,MAAM,WACN,MAAM,OA0KhB;AAED;;;;;;;;;;GAUG;AACH,gDAPW,MAAM,uBACN,MAAM,iBACN,MAAM,YACN,MAAM,oBACN,MAAM,kBACN,MAAM,eAoHhB;AAED;;;;;;;GAOG;AACH,kDAHW,MAAM,mBACN,MAAM;;;;;;;;;;;;;EA4FhB;AAED;;;;;GAKG;AACH,kDAaC;AAED;;;;;GAKG;AACH,2CAHW,MAAM,UAKhB;AAED,gGAiDC"}
|
|
@@ -7,9 +7,7 @@ export function getCycloneDxRootFormatKey(specVersionOrBom: any): "specFormat" |
|
|
|
7
7
|
export function getCycloneDxFormat(bomJson: any): any;
|
|
8
8
|
export function hasCycloneDxFormat(bomJson: any): boolean;
|
|
9
9
|
export function isCycloneDxBom(bomJson: any): boolean;
|
|
10
|
-
export function setCycloneDxFormat(bomJson:
|
|
11
|
-
preserveLegacyBomFormat?: boolean | undefined;
|
|
12
|
-
}): any;
|
|
10
|
+
export function setCycloneDxFormat(bomJson: object, specVersion: string | number, { preserveLegacyBomFormat }?: object): object;
|
|
13
11
|
export function detectBomFormat(bomJson: any): "unknown" | "cyclonedx" | "spdx";
|
|
14
12
|
export function getNonCycloneDxErrorMessage(bomJson: any, commandName?: string): string;
|
|
15
13
|
//# sourceMappingURL=bomUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bomUtils.d.ts","sourceRoot":"","sources":["../../../lib/helpers/bomUtils.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bomUtils.d.ts","sourceRoot":"","sources":["../../../lib/helpers/bomUtils.js"],"names":[],"mappings":"AAcO,oDAKJ;AAgBI,oFAMN;AAEM,mFASN;AAEM,8FAUN;AAEM,oEACwC;AAExC,6FAQN;AAEM,sDACoC;AAEpC,0DAC2C;AAE3C,sDAE4D;AAiD5D,4CALI,MAAM,eACN,MAAM,GAAC,MAAM,gCACb,MAAM,GACJ,MAAM,CAkClB;AAEM,gFAQN;AAEM,wFASN"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export function collectOSCryptoLibs(options: Object): any[];
|
|
8
8
|
export function collectSourceCryptoComponents(src: any, options?: {}): Promise<any[]>;
|
|
9
|
+
export function collectDosaiCryptoComponents(src: any, options?: {}): Promise<any[]>;
|
|
9
10
|
/**
|
|
10
11
|
* Find crypto algorithm in the given code snippet
|
|
11
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cbomutils.d.ts","sourceRoot":"","sources":["../../../lib/helpers/cbomutils.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cbomutils.d.ts","sourceRoot":"","sources":["../../../lib/helpers/cbomutils.js"],"names":[],"mappings":"AAmBA;;;;;GAKG;AACH,6CAHW,MAAM,SA2BhB;AA2TD,sFA4CC;AAED,qFAmEC;AAED;;;;;GAKG;AACH,sCAHW,MAAM,SAgBhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"githubActions.d.ts","sourceRoot":"","sources":["../../../../lib/helpers/ciParsers/githubActions.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"githubActions.d.ts","sourceRoot":"","sources":["../../../../lib/helpers/ciParsers/githubActions.js"],"names":[],"mappings":"AAuyDA;;;;;;GAMG;AAEH,qCALW,MAAM,WACN,MAAM,GACJ;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAijBjF;;;;IAeC;;;;OAIG;IACH,sBAJW,MAAM,EAAE,WACR,MAAM,GACJ;QAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE,CAqB3H"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../../lib/helpers/display.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../../lib/helpers/display.js"],"names":[],"mappings":"AAoZA;;;;;;;;;EAoBC;AAED,wGA4BC;AA6BD;;;;;;;;;;GAUG;AACH,oCANW,MAAM,gBACN,MAAM,EAAE,cACR,MAAM,gBACN,MAAM,GACJ,IAAI,CA+EhB;AAQD;;;;;GAKG;AACH,sCAHW,MAAM,GACJ,IAAI,CAsBhB;AACD;;;;;;GAMG;AACH,uCAHW,MAAM,GACJ,IAAI,CAwBhB;AAED;;;;;GAKG;AACH,0CAHW,MAAM,GACJ,IAAI,CAuBhB;AA0BD;;;;;;GAMG;AACH,0CAHW,MAAM,GACJ,IAAI,CAwChB;AAED;;;;;;GAMG;AACH,wCAHW,MAAM,GACJ,IAAI,CA4ChB;AACD;;;;;;;;GAQG;AACH,6CALW,MAAM,SACN,MAAM,cACN,MAAM,GACJ,IAAI,CAoChB;AAoMD;;;;;;GAMG;AACH,gDAHW,MAAM,GACJ,IAAI,CAoChB;AAED;;;;;GAKG;AACH,sDAHW,MAAM,EAAE,GACN,IAAI,CA4BhB;AAED;;;;;;;GAOG;AACH,4CAHW,MAAM,GACJ,IAAI,CAsBhB;AAED;;;;;;GAMG;AACH,sCAHW,MAAM,GACJ,IAAI,CAkDhB;AAED,mEAsHC;AAgED;;;;;GAKG;AACH,iEAHW,eAAe,EAAE,GACf,IAAI,CA+BhB;AAED;;;;;;;;GAQG;AACH,iDALW,MAAM,UACN,MAAM,WACN,MAAM,oBACN,eAAe,EAAE,QAsU3B;AAznDM,gDANI,MAAM,eACN,MAAM,EAAE,GAAC,SAAS,eAClB,MAAM,GAAC,SAAS,6BAChB,MAAM,GACJ,MAAM,EAAE,CA2FpB;AAwNM,6DAHI,MAAM,EAAE,GACN,MAAM,EAAE,CAcpB;AAukBM,uDAJI,MAAM,EAAE,SACR,MAAM,GACJ,MAAM,EAAE,CAyCpB;8BA+RY;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export function isDosaiDotnetLanguage(language: any): boolean;
|
|
2
|
+
export function readDosaiJsonFile(jsonFile: any): any;
|
|
3
|
+
export function runDosaiCommand(command: any, src: any, outputFile: any, options?: {}): boolean;
|
|
4
|
+
export function createDosaiMethodsSlice(src: any, outputFile: any, options?: {}): boolean;
|
|
5
|
+
export function createDosaiDataFlowSlice(src: any, outputFile: any, options?: {}): boolean;
|
|
6
|
+
export function createDosaiCryptoAnalysis(src: any, outputFile: any, options?: {}): boolean;
|
|
7
|
+
export function analyzeDosaiCrypto(src: any, options?: {}): any;
|
|
8
|
+
export function buildPurlAliasMap(components?: any[]): Map<any, any>;
|
|
9
|
+
export function resolveComponentPurl(purl: any, purlAliasMap: any): any;
|
|
10
|
+
export function collectDosaiPurlEvidence(methodsSlice: any, components?: any[]): {
|
|
11
|
+
purlLocationMap: {};
|
|
12
|
+
purlModulesMap: {};
|
|
13
|
+
purlMethodsMap: {};
|
|
14
|
+
};
|
|
15
|
+
export function collectDosaiDataFlowFrames(dataFlowResult: any, components?: any[]): {};
|
|
16
|
+
export function collectDosaiServicesFromMethods(methodsSlice: any, servicesMap?: {}): {};
|
|
17
|
+
export function normalizeDosaiServiceMap(servicesMap?: {}): {
|
|
18
|
+
name: string;
|
|
19
|
+
endpoints: any[];
|
|
20
|
+
authenticated: any;
|
|
21
|
+
"x-trust-boundary": any;
|
|
22
|
+
properties: any;
|
|
23
|
+
}[];
|
|
24
|
+
//# sourceMappingURL=dosai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dosai.d.ts","sourceRoot":"","sources":["../../../lib/helpers/dosai.js"],"names":[],"mappings":"AAyIA,8DAEC;AAED,sDASC;AAED,gGAuDC;AAED,0FAEC;AAED,2FAEC;AAED,4FAEC;AAED,gEAaC;AAED,qEAEC;AAED,wEAEC;AAED;;;;EAiEC;AAED,wFAoCC;AAED,yFAyEC;AAED;;;;;;IAQC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export function normalizeDosaiPurlKey(purl: any): string | undefined;
|
|
2
|
+
export function addDosaiSetValue(map: any, key: any, value: any): void;
|
|
3
|
+
export function dosaiLocation(item: any): any;
|
|
4
|
+
export function dosaiSourceLocationFromNode(node: any): any;
|
|
5
|
+
export function dosaiSourceLocation(location: any): any;
|
|
6
|
+
export function buildDosaiPurlAliasMap(components?: any[]): Map<any, any>;
|
|
7
|
+
export function resolveDosaiComponentPurl(purl: any, purlAliasMap: any): any;
|
|
8
|
+
//# sourceMappingURL=dosaiParsers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dosaiParsers.d.ts","sourceRoot":"","sources":["../../../lib/helpers/dosaiParsers.js"],"names":[],"mappings":"AAEA,qEAcC;AAED,uEAMC;AAED,8CAYC;AAcD,4DAWC;AAED,wDAWC;AAED,0EAaC;AAED,6EASC"}
|