@openrewrite/recipes-nodejs 0.37.0-20260106-104324 → 0.37.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/dist/security/dependency-vulnerability-check.d.ts +2 -0
- package/dist/security/dependency-vulnerability-check.d.ts.map +1 -1
- package/dist/security/dependency-vulnerability-check.js +44 -29
- package/dist/security/dependency-vulnerability-check.js.map +1 -1
- package/dist/security/types.d.ts +1 -1
- package/dist/security/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/security/dependency-vulnerability-check.ts +70 -42
- package/src/security/types.ts +11 -12
|
@@ -20,6 +20,7 @@ export declare class DependencyVulnerabilityCheck extends ScanningRecipe<Accumul
|
|
|
20
20
|
private readonly vulnerabilityReport;
|
|
21
21
|
scope?: DependencyScope;
|
|
22
22
|
transitiveFixStrategy?: TransitiveFixStrategy;
|
|
23
|
+
preferDirectUpgrade?: boolean;
|
|
23
24
|
maximumUpgradeDelta?: UpgradeDelta;
|
|
24
25
|
minimumSeverity?: Severity;
|
|
25
26
|
cvePattern?: string;
|
|
@@ -29,6 +30,7 @@ export declare class DependencyVulnerabilityCheck extends ScanningRecipe<Accumul
|
|
|
29
30
|
constructor(options?: {
|
|
30
31
|
scope?: DependencyScope;
|
|
31
32
|
transitiveFixStrategy?: TransitiveFixStrategy;
|
|
33
|
+
preferDirectUpgrade?: boolean;
|
|
32
34
|
maximumUpgradeDelta?: UpgradeDelta;
|
|
33
35
|
minimumSeverity?: string;
|
|
34
36
|
cvePattern?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-vulnerability-check.d.ts","sourceRoot":"","sources":["../../src/security/dependency-vulnerability-check.ts"],"names":[],"mappings":"AAMA,OAAO,EAGH,gBAAgB,EAGhB,cAAc,EAGd,WAAW,EACd,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAGH,2BAA2B,EAC3B,eAAe,EAYlB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAgB,QAAQ,EAAkC,qBAAqB,EAAC,MAAM,iBAAiB,CAAC;AAO/G,OAAO,EACH,YAAY,EAOf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEH,qBAAqB,EAErB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACpB,MAAM,SAAS,CAAC;AA0HjB,UAAU,WAAY,SAAQ,2BAA2B,CAAC,iBAAiB,CAAC;IAExE,EAAE,EAAE,qBAAqB,CAAC;IAE1B,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAEzD,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAEhD,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEvC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE5C,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAEtC,+BAA+B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAErD,0BAA0B,EAAE,OAAO,CAAC;CACvC;AAgBD,qBAAa,4BAA6B,SAAQ,cAAc,CAAC,WAAW,CAAC;IACzE,QAAQ,CAAC,IAAI,yDAAyD;IACtE,QAAQ,CAAC,WAAW,8CAA8C;IAClE,QAAQ,CAAC,WAAW,SAI8D;IAElF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAKlC;IAUF,KAAK,CAAC,EAAE,eAAe,CAAC;IAaxB,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"dependency-vulnerability-check.d.ts","sourceRoot":"","sources":["../../src/security/dependency-vulnerability-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -158,7 +158,7 @@ __decorate([
|
|
|
158
158
|
], VulnerabilityReportRow.prototype, "dependencyPath", void 0);
|
|
159
159
|
class DependencyVulnerabilityCheck extends rewrite_1.ScanningRecipe {
|
|
160
160
|
constructor(options) {
|
|
161
|
-
var _a, _b, _c, _d, _e;
|
|
161
|
+
var _a, _b, _c, _d, _e, _f;
|
|
162
162
|
super(options);
|
|
163
163
|
this.name = "org.openrewrite.node.dependency-vulnerability-check";
|
|
164
164
|
this.displayName = "Find and fix vulnerable npm dependencies";
|
|
@@ -169,10 +169,11 @@ class DependencyVulnerabilityCheck extends rewrite_1.ScanningRecipe {
|
|
|
169
169
|
"Vulnerability information comes from the GitHub Security Advisory Database.";
|
|
170
170
|
this.vulnerabilityReport = new rewrite_1.DataTable("org.openrewrite.nodejs.table.VulnerabilityReport", "Vulnerability Report", "Lists all vulnerabilities found in project dependencies.", VulnerabilityReportRow);
|
|
171
171
|
(_a = this.transitiveFixStrategy) !== null && _a !== void 0 ? _a : (this.transitiveFixStrategy = 'report');
|
|
172
|
-
(_b = this.
|
|
173
|
-
(_c = this.
|
|
174
|
-
(_d = this.
|
|
175
|
-
(_e = this.
|
|
172
|
+
(_b = this.preferDirectUpgrade) !== null && _b !== void 0 ? _b : (this.preferDirectUpgrade = true);
|
|
173
|
+
(_c = this.maximumUpgradeDelta) !== null && _c !== void 0 ? _c : (this.maximumUpgradeDelta = 'patch');
|
|
174
|
+
(_d = this.minimumSeverity) !== null && _d !== void 0 ? _d : (this.minimumSeverity = vulnerability_1.Severity.LOW);
|
|
175
|
+
(_e = this.fixDeclaredVersions) !== null && _e !== void 0 ? _e : (this.fixDeclaredVersions = false);
|
|
176
|
+
(_f = this.addOverrideComments) !== null && _f !== void 0 ? _f : (this.addOverrideComments = true);
|
|
176
177
|
if (options === null || options === void 0 ? void 0 : options.minimumSeverity) {
|
|
177
178
|
this.minimumSeverity = (0, vulnerability_1.parseSeverity)(options.minimumSeverity);
|
|
178
179
|
}
|
|
@@ -180,16 +181,15 @@ class DependencyVulnerabilityCheck extends rewrite_1.ScanningRecipe {
|
|
|
180
181
|
try {
|
|
181
182
|
this.cvePatternRegex = new RegExp(this.cvePattern);
|
|
182
183
|
}
|
|
183
|
-
catch (
|
|
184
|
+
catch (_g) {
|
|
184
185
|
}
|
|
185
186
|
}
|
|
186
187
|
}
|
|
187
188
|
shouldScanTransitives() {
|
|
188
|
-
return
|
|
189
|
+
return true;
|
|
189
190
|
}
|
|
190
191
|
shouldVerifyTransitiveFixes() {
|
|
191
|
-
return this.
|
|
192
|
-
this.transitiveFixStrategy === 'prefer-direct-upgrade';
|
|
192
|
+
return this.preferDirectUpgrade === true;
|
|
193
193
|
}
|
|
194
194
|
filterRemainingTransitiveFixes(fixes, lockFileContent, packageManager, db) {
|
|
195
195
|
const result = [];
|
|
@@ -198,12 +198,12 @@ class DependencyVulnerabilityCheck extends rewrite_1.ScanningRecipe {
|
|
|
198
198
|
result.push(fix);
|
|
199
199
|
continue;
|
|
200
200
|
}
|
|
201
|
-
const
|
|
202
|
-
if (
|
|
201
|
+
const resolvedVersions = (0, npm_utils_1.extractAllVersionsFromLockFile)(lockFileContent, fix.packageName, packageManager);
|
|
202
|
+
if (resolvedVersions.length === 0) {
|
|
203
203
|
continue;
|
|
204
204
|
}
|
|
205
|
-
const
|
|
206
|
-
if (
|
|
205
|
+
const anyVersionVulnerable = resolvedVersions.some(version => this.isVersionStillVulnerable(fix.packageName, version, fix.cves, db));
|
|
206
|
+
if (anyVersionVulnerable) {
|
|
207
207
|
result.push(fix);
|
|
208
208
|
}
|
|
209
209
|
}
|
|
@@ -446,7 +446,8 @@ class DependencyVulnerabilityCheck extends rewrite_1.ScanningRecipe {
|
|
|
446
446
|
});
|
|
447
447
|
}
|
|
448
448
|
}
|
|
449
|
-
|
|
449
|
+
const upgradeCheck = (0, version_utils_1.isUpgradeableWithinDelta)(vuln.resolved.version, vuln.vulnerability, this.maximumUpgradeDelta);
|
|
450
|
+
if (this.isReportOnly() || !upgradeCheck) {
|
|
450
451
|
continue;
|
|
451
452
|
}
|
|
452
453
|
const fixVersion = (0, version_utils_1.getUpgradeVersion)(vuln.vulnerability);
|
|
@@ -944,7 +945,7 @@ class DependencyVulnerabilityCheck extends rewrite_1.ScanningRecipe {
|
|
|
944
945
|
(0, javascript_1.storeInstallResult)(phase1Result, acc, updateInfo, phase1PackageJson);
|
|
945
946
|
return;
|
|
946
947
|
}
|
|
947
|
-
if (this.
|
|
948
|
+
if (this.preferDirectUpgrade) {
|
|
948
949
|
remainingTransitiveFixes = yield this.tryDirectUpgradesForTransitives(remainingTransitiveFixes, updateInfo);
|
|
949
950
|
}
|
|
950
951
|
const finalFixes = [...directFixes, ...remainingTransitiveFixes];
|
|
@@ -1019,7 +1020,7 @@ class DependencyVulnerabilityCheck extends rewrite_1.ScanningRecipe {
|
|
|
1019
1020
|
(0, javascript_1.storeInstallResult)(phase1Result, acc, rootUpdateInfo, phase1RootPackageJson);
|
|
1020
1021
|
return;
|
|
1021
1022
|
}
|
|
1022
|
-
if (this.
|
|
1023
|
+
if (this.preferDirectUpgrade) {
|
|
1023
1024
|
remainingTransitiveFixes = yield this.tryDirectUpgradesForTransitives(remainingTransitiveFixes, rootUpdateInfo);
|
|
1024
1025
|
}
|
|
1025
1026
|
const finalRootPackageJson = this.createModifiedPackageJson(rootOriginalContent, [...rootDirectFixes, ...remainingTransitiveFixes], pm);
|
|
@@ -1068,6 +1069,9 @@ class DependencyVulnerabilityCheck extends rewrite_1.ScanningRecipe {
|
|
|
1068
1069
|
}
|
|
1069
1070
|
}
|
|
1070
1071
|
else if (fix.isTransitive) {
|
|
1072
|
+
if (this.transitiveFixStrategy === 'lock-file') {
|
|
1073
|
+
continue;
|
|
1074
|
+
}
|
|
1071
1075
|
if (fix.fixViaDirectUpgrades && fix.fixViaDirectUpgrades.length > 0) {
|
|
1072
1076
|
for (const upgrade of fix.fixViaDirectUpgrades) {
|
|
1073
1077
|
const { directDepName, directDepVersion, directDepScope } = upgrade;
|
|
@@ -1174,7 +1178,7 @@ __decorate([
|
|
|
1174
1178
|
(0, rewrite_1.Option)({
|
|
1175
1179
|
displayName: "Scope",
|
|
1176
1180
|
description: "Match dependencies with the specified scope. Default includes all scopes. " +
|
|
1177
|
-
"Use
|
|
1181
|
+
"Use `dependencies` for production dependencies, `devDependencies` for development only, etc.",
|
|
1178
1182
|
required: false,
|
|
1179
1183
|
example: "dependencies",
|
|
1180
1184
|
valid: ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"]
|
|
@@ -1184,20 +1188,31 @@ __decorate([
|
|
|
1184
1188
|
(0, rewrite_1.Option)({
|
|
1185
1189
|
displayName: "Transitive fix strategy",
|
|
1186
1190
|
description: "Strategy for handling transitive dependency vulnerabilities. " +
|
|
1187
|
-
"
|
|
1188
|
-
"
|
|
1189
|
-
"
|
|
1190
|
-
"Default is
|
|
1191
|
+
"`report` only reports them without fixing. " +
|
|
1192
|
+
"`override` adds overrides/resolutions for transitive vulnerabilities. " +
|
|
1193
|
+
"`lock-file` updates the lock file to resolve safe versions without modifying `package.json` (similar to Dependabot). " +
|
|
1194
|
+
"Default is `report`.",
|
|
1191
1195
|
required: false,
|
|
1192
1196
|
example: "override",
|
|
1193
|
-
valid: ["report", "override", "
|
|
1197
|
+
valid: ["report", "override", "lock-file"]
|
|
1194
1198
|
})
|
|
1195
1199
|
], DependencyVulnerabilityCheck.prototype, "transitiveFixStrategy", void 0);
|
|
1200
|
+
__decorate([
|
|
1201
|
+
(0, rewrite_1.Option)({
|
|
1202
|
+
displayName: "Prefer direct upgrade",
|
|
1203
|
+
description: "When fixing transitive vulnerabilities, first try to find higher versions of " +
|
|
1204
|
+
"direct dependencies that include safe transitive versions. Falls back to the " +
|
|
1205
|
+
"`transitiveFixStrategy` if no suitable direct upgrade exists. Queries npm registry. " +
|
|
1206
|
+
"Default is `true`.",
|
|
1207
|
+
required: false,
|
|
1208
|
+
example: "false"
|
|
1209
|
+
})
|
|
1210
|
+
], DependencyVulnerabilityCheck.prototype, "preferDirectUpgrade", void 0);
|
|
1196
1211
|
__decorate([
|
|
1197
1212
|
(0, rewrite_1.Option)({
|
|
1198
1213
|
displayName: "Maximum upgrade delta",
|
|
1199
1214
|
description: "The maximum difference to allow when upgrading a dependency version. " +
|
|
1200
|
-
"Use
|
|
1215
|
+
"Use `none` to only report vulnerabilities without making any changes. " +
|
|
1201
1216
|
"Patch version upgrades are the default and safest option. " +
|
|
1202
1217
|
"Minor version upgrades can introduce new features but typically no breaking changes. " +
|
|
1203
1218
|
"Major version upgrades may require code changes.",
|
|
@@ -1210,8 +1225,8 @@ __decorate([
|
|
|
1210
1225
|
(0, rewrite_1.Option)({
|
|
1211
1226
|
displayName: "Minimum severity",
|
|
1212
1227
|
description: "Only fix vulnerabilities with a severity level equal to or higher than the specified minimum. " +
|
|
1213
|
-
"Vulnerabilities are classified as LOW
|
|
1214
|
-
"Default is LOW
|
|
1228
|
+
"Vulnerabilities are classified as `LOW`, `MODERATE`, `HIGH`, or `CRITICAL` based on their potential impact. " +
|
|
1229
|
+
"Default is `LOW`, which includes all severity levels.",
|
|
1215
1230
|
required: false,
|
|
1216
1231
|
example: "MODERATE",
|
|
1217
1232
|
valid: ["LOW", "MODERATE", "HIGH", "CRITICAL"]
|
|
@@ -1231,11 +1246,11 @@ __decorate([
|
|
|
1231
1246
|
__decorate([
|
|
1232
1247
|
(0, rewrite_1.Option)({
|
|
1233
1248
|
displayName: "Fix declared versions",
|
|
1234
|
-
description: "When enabled, also upgrades version specifiers declared in package.json that specify vulnerable versions, " +
|
|
1249
|
+
description: "When enabled, also upgrades version specifiers declared in `package.json` that specify vulnerable versions, " +
|
|
1235
1250
|
"even if the lock file already resolves to a safe version. This is a preventive measure to ensure that " +
|
|
1236
1251
|
"future installs (e.g., on a different machine or after lock file changes) won't install vulnerable versions. " +
|
|
1237
1252
|
"These preventive upgrades are NOT reported in the vulnerability data table since there's no actual vulnerability. " +
|
|
1238
|
-
"Default is false
|
|
1253
|
+
"Default is `false`.",
|
|
1239
1254
|
required: false,
|
|
1240
1255
|
example: "true"
|
|
1241
1256
|
})
|
|
@@ -1243,9 +1258,9 @@ __decorate([
|
|
|
1243
1258
|
__decorate([
|
|
1244
1259
|
(0, rewrite_1.Option)({
|
|
1245
1260
|
displayName: "Add override comments",
|
|
1246
|
-
description: "When enabled, adds a comment field (e.g.,
|
|
1261
|
+
description: "When enabled, adds a comment field (e.g., `//overrides`) alongside overrides to document which CVEs " +
|
|
1247
1262
|
"each override is fixing. This helps with auditing and knowing when overrides can be removed. " +
|
|
1248
|
-
"Default is true
|
|
1263
|
+
"Default is `true`.",
|
|
1249
1264
|
required: false,
|
|
1250
1265
|
example: "true"
|
|
1251
1266
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-vulnerability-check.js","sourceRoot":"","sources":["../../src/security/dependency-vulnerability-check.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dependency-vulnerability-check.js","sourceRoot":"","sources":["../../src/security/dependency-vulnerability-check.ts"],"names":[],"mappings":"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"}
|
package/dist/security/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DependencyScope, PackageManager, ResolvedDependency } from "@openrewrite/rewrite/javascript";
|
|
2
2
|
import { Vulnerability } from "./vulnerability";
|
|
3
3
|
export declare const ALL_DEPENDENCY_SCOPES: DependencyScope[];
|
|
4
|
-
export type TransitiveFixStrategy = 'report' | 'override' | '
|
|
4
|
+
export type TransitiveFixStrategy = 'report' | 'override' | 'lock-file';
|
|
5
5
|
export interface PathSegment {
|
|
6
6
|
name: string;
|
|
7
7
|
version: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/security/types.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACpG,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAK9C,eAAO,MAAM,qBAAqB,EAAE,eAAe,EAElD,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/security/types.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACpG,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAK9C,eAAO,MAAM,qBAAqB,EAAE,eAAe,EAElD,CAAC;AAgBF,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;AAKxE,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAKD,MAAM,WAAW,oBAAoB;IAEjC,QAAQ,EAAE,kBAAkB,CAAC;IAE7B,aAAa,EAAE,aAAa,CAAC;IAE7B,KAAK,EAAE,MAAM,CAAC;IAEd,QAAQ,EAAE,OAAO,CAAC;IAElB,KAAK,CAAC,EAAE,eAAe,CAAC;IAExB,IAAI,EAAE,WAAW,EAAE,CAAC;CACvB;AAKD,MAAM,WAAW,gBAAgB;IAE7B,WAAW,EAAE,MAAM,CAAC;IAEpB,UAAU,EAAE,MAAM,CAAC;IAEnB,YAAY,EAAE,OAAO,CAAC;IAEtB,IAAI,EAAE,MAAM,EAAE,CAAC;IAEf,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAElC,KAAK,CAAC,EAAE,eAAe,CAAC;IAExB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAM9B,cAAc,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,eAAe,CAAC;KAC1B,EAAE,CAAC;IAOJ,oBAAoB,CAAC,EAAE;QAEnB,aAAa,EAAE,MAAM,CAAC;QAEtB,gBAAgB,EAAE,MAAM,CAAC;QAEzB,cAAc,EAAE,eAAe,CAAC;KACnC,EAAE,CAAC;CACP;AAKD,MAAM,WAAW,iBAAiB;IAE9B,eAAe,EAAE,MAAM,CAAC;IAExB,mBAAmB,EAAE,MAAM,CAAC;IAE5B,cAAc,EAAE,cAAc,CAAC;IAE/B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openrewrite/recipes-nodejs",
|
|
3
|
-
"version": "0.37.0
|
|
3
|
+
"version": "0.37.0",
|
|
4
4
|
"license": "Moderne Source Available License",
|
|
5
5
|
"description": "OpenRewrite recipes for Node.js library migrations.",
|
|
6
6
|
"homepage": "https://github.com/moderneinc/rewrite-node",
|
|
@@ -41,7 +41,7 @@ import {parseSeverity, Severity, severityOrdinal, Vulnerability, VulnerabilityDa
|
|
|
41
41
|
import {
|
|
42
42
|
findDirectUpgradeWithSafeTransitiveInIsolation,
|
|
43
43
|
verifyAllUpgradesFixTransitive,
|
|
44
|
-
|
|
44
|
+
extractAllVersionsFromLockFile,
|
|
45
45
|
DependencyScope as NpmUtilsDependencyScope
|
|
46
46
|
} from "./npm-utils";
|
|
47
47
|
import {
|
|
@@ -234,7 +234,7 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
234
234
|
@Option({
|
|
235
235
|
displayName: "Scope",
|
|
236
236
|
description: "Match dependencies with the specified scope. Default includes all scopes. " +
|
|
237
|
-
"Use
|
|
237
|
+
"Use `dependencies` for production dependencies, `devDependencies` for development only, etc.",
|
|
238
238
|
required: false,
|
|
239
239
|
example: "dependencies",
|
|
240
240
|
valid: ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"]
|
|
@@ -244,20 +244,31 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
244
244
|
@Option({
|
|
245
245
|
displayName: "Transitive fix strategy",
|
|
246
246
|
description: "Strategy for handling transitive dependency vulnerabilities. " +
|
|
247
|
-
"
|
|
248
|
-
"
|
|
249
|
-
"
|
|
250
|
-
"Default is
|
|
247
|
+
"`report` only reports them without fixing. " +
|
|
248
|
+
"`override` adds overrides/resolutions for transitive vulnerabilities. " +
|
|
249
|
+
"`lock-file` updates the lock file to resolve safe versions without modifying `package.json` (similar to Dependabot). " +
|
|
250
|
+
"Default is `report`.",
|
|
251
251
|
required: false,
|
|
252
252
|
example: "override",
|
|
253
|
-
valid: ["report", "override", "
|
|
253
|
+
valid: ["report", "override", "lock-file"]
|
|
254
254
|
})
|
|
255
255
|
transitiveFixStrategy?: TransitiveFixStrategy;
|
|
256
256
|
|
|
257
|
+
@Option({
|
|
258
|
+
displayName: "Prefer direct upgrade",
|
|
259
|
+
description: "When fixing transitive vulnerabilities, first try to find higher versions of " +
|
|
260
|
+
"direct dependencies that include safe transitive versions. Falls back to the " +
|
|
261
|
+
"`transitiveFixStrategy` if no suitable direct upgrade exists. Queries npm registry. " +
|
|
262
|
+
"Default is `true`.",
|
|
263
|
+
required: false,
|
|
264
|
+
example: "false"
|
|
265
|
+
})
|
|
266
|
+
preferDirectUpgrade?: boolean;
|
|
267
|
+
|
|
257
268
|
@Option({
|
|
258
269
|
displayName: "Maximum upgrade delta",
|
|
259
270
|
description: "The maximum difference to allow when upgrading a dependency version. " +
|
|
260
|
-
"Use
|
|
271
|
+
"Use `none` to only report vulnerabilities without making any changes. " +
|
|
261
272
|
"Patch version upgrades are the default and safest option. " +
|
|
262
273
|
"Minor version upgrades can introduce new features but typically no breaking changes. " +
|
|
263
274
|
"Major version upgrades may require code changes.",
|
|
@@ -270,8 +281,8 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
270
281
|
@Option({
|
|
271
282
|
displayName: "Minimum severity",
|
|
272
283
|
description: "Only fix vulnerabilities with a severity level equal to or higher than the specified minimum. " +
|
|
273
|
-
"Vulnerabilities are classified as LOW
|
|
274
|
-
"Default is LOW
|
|
284
|
+
"Vulnerabilities are classified as `LOW`, `MODERATE`, `HIGH`, or `CRITICAL` based on their potential impact. " +
|
|
285
|
+
"Default is `LOW`, which includes all severity levels.",
|
|
275
286
|
required: false,
|
|
276
287
|
example: "MODERATE",
|
|
277
288
|
valid: ["LOW", "MODERATE", "HIGH", "CRITICAL"]
|
|
@@ -291,11 +302,11 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
291
302
|
|
|
292
303
|
@Option({
|
|
293
304
|
displayName: "Fix declared versions",
|
|
294
|
-
description: "When enabled, also upgrades version specifiers declared in package.json that specify vulnerable versions, " +
|
|
305
|
+
description: "When enabled, also upgrades version specifiers declared in `package.json` that specify vulnerable versions, " +
|
|
295
306
|
"even if the lock file already resolves to a safe version. This is a preventive measure to ensure that " +
|
|
296
307
|
"future installs (e.g., on a different machine or after lock file changes) won't install vulnerable versions. " +
|
|
297
308
|
"These preventive upgrades are NOT reported in the vulnerability data table since there's no actual vulnerability. " +
|
|
298
|
-
"Default is false
|
|
309
|
+
"Default is `false`.",
|
|
299
310
|
required: false,
|
|
300
311
|
example: "true"
|
|
301
312
|
})
|
|
@@ -303,9 +314,9 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
303
314
|
|
|
304
315
|
@Option({
|
|
305
316
|
displayName: "Add override comments",
|
|
306
|
-
description: "When enabled, adds a comment field (e.g.,
|
|
317
|
+
description: "When enabled, adds a comment field (e.g., `//overrides`) alongside overrides to document which CVEs " +
|
|
307
318
|
"each override is fixing. This helps with auditing and knowing when overrides can be removed. " +
|
|
308
|
-
"Default is true
|
|
319
|
+
"Default is `true`.",
|
|
309
320
|
required: false,
|
|
310
321
|
example: "true"
|
|
311
322
|
})
|
|
@@ -317,6 +328,7 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
317
328
|
constructor(options?: {
|
|
318
329
|
scope?: DependencyScope;
|
|
319
330
|
transitiveFixStrategy?: TransitiveFixStrategy;
|
|
331
|
+
preferDirectUpgrade?: boolean;
|
|
320
332
|
maximumUpgradeDelta?: UpgradeDelta;
|
|
321
333
|
minimumSeverity?: string;
|
|
322
334
|
cvePattern?: string;
|
|
@@ -325,6 +337,7 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
325
337
|
}) {
|
|
326
338
|
super(options);
|
|
327
339
|
this.transitiveFixStrategy ??= 'report';
|
|
340
|
+
this.preferDirectUpgrade ??= true;
|
|
328
341
|
this.maximumUpgradeDelta ??= 'patch';
|
|
329
342
|
this.minimumSeverity ??= Severity.LOW;
|
|
330
343
|
this.fixDeclaredVersions ??= false;
|
|
@@ -344,18 +357,22 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
344
357
|
|
|
345
358
|
/**
|
|
346
359
|
* Returns true if transitive vulnerabilities should be scanned.
|
|
360
|
+
* Always true - we want to report transitive vulnerabilities even if not fixing them.
|
|
347
361
|
*/
|
|
348
362
|
private shouldScanTransitives(): boolean {
|
|
349
|
-
return
|
|
363
|
+
return true;
|
|
350
364
|
}
|
|
351
365
|
|
|
352
366
|
/**
|
|
353
367
|
* Returns true if we should verify that transitive fixes are still needed
|
|
354
|
-
* after applying direct fixes
|
|
368
|
+
* after applying direct fixes. Only needed when preferDirectUpgrade is true,
|
|
369
|
+
* because it tries to fix transitives via direct dependency upgrades first.
|
|
370
|
+
*
|
|
371
|
+
* For 'override' and 'lock-file' strategies without preferDirectUpgrade,
|
|
372
|
+
* we apply the strategy directly without checking if direct upgrades helped.
|
|
355
373
|
*/
|
|
356
374
|
private shouldVerifyTransitiveFixes(): boolean {
|
|
357
|
-
return this.
|
|
358
|
-
this.transitiveFixStrategy === 'prefer-direct-upgrade';
|
|
375
|
+
return this.preferDirectUpgrade === true;
|
|
359
376
|
}
|
|
360
377
|
|
|
361
378
|
/**
|
|
@@ -382,32 +399,36 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
382
399
|
continue;
|
|
383
400
|
}
|
|
384
401
|
|
|
385
|
-
// For transitive fixes, check if the package is still vulnerable
|
|
386
|
-
|
|
402
|
+
// For transitive fixes, check if ANY version of the package is still vulnerable.
|
|
403
|
+
// A package can appear at multiple locations in the tree at different versions
|
|
404
|
+
// (e.g., hoisted at 2.1.1 and nested at 1.0.2), so we need to check ALL versions.
|
|
405
|
+
const resolvedVersions = extractAllVersionsFromLockFile(
|
|
387
406
|
lockFileContent,
|
|
388
407
|
fix.packageName,
|
|
389
408
|
packageManager
|
|
390
409
|
);
|
|
391
410
|
|
|
392
|
-
if (
|
|
411
|
+
if (resolvedVersions.length === 0) {
|
|
393
412
|
// Package not found in lock file - might have been removed by direct upgrade
|
|
394
413
|
// Skip this fix (transitive is no longer in the tree)
|
|
395
414
|
continue;
|
|
396
415
|
}
|
|
397
416
|
|
|
398
|
-
// Check if
|
|
399
|
-
const
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
417
|
+
// Check if ANY resolved version is still vulnerable
|
|
418
|
+
const anyVersionVulnerable = resolvedVersions.some(version =>
|
|
419
|
+
this.isVersionStillVulnerable(
|
|
420
|
+
fix.packageName,
|
|
421
|
+
version,
|
|
422
|
+
fix.cves,
|
|
423
|
+
db
|
|
424
|
+
)
|
|
404
425
|
);
|
|
405
426
|
|
|
406
|
-
if (
|
|
407
|
-
//
|
|
427
|
+
if (anyVersionVulnerable) {
|
|
428
|
+
// At least one version of the transitive is still vulnerable, keep the fix
|
|
408
429
|
result.push(fix);
|
|
409
430
|
}
|
|
410
|
-
// Otherwise,
|
|
431
|
+
// Otherwise, all versions are safe - skip the override
|
|
411
432
|
}
|
|
412
433
|
|
|
413
434
|
return result;
|
|
@@ -848,7 +869,8 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
848
869
|
}
|
|
849
870
|
|
|
850
871
|
// Check if upgradeable within delta
|
|
851
|
-
|
|
872
|
+
const upgradeCheck = isUpgradeableWithinDelta(vuln.resolved.version, vuln.vulnerability, this.maximumUpgradeDelta!);
|
|
873
|
+
if (this.isReportOnly() || !upgradeCheck) {
|
|
852
874
|
continue;
|
|
853
875
|
}
|
|
854
876
|
|
|
@@ -916,7 +938,7 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
916
938
|
cveSummaries,
|
|
917
939
|
scope,
|
|
918
940
|
originalMajorVersion: originalMajor,
|
|
919
|
-
// Store ALL direct dependencies for potential later use by
|
|
941
|
+
// Store ALL direct dependencies for potential later use by preferDirectUpgrade
|
|
920
942
|
directDepInfos: isTransitive && directDepInfosArray.length > 0 ? directDepInfosArray : undefined
|
|
921
943
|
};
|
|
922
944
|
|
|
@@ -1604,10 +1626,10 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
1604
1626
|
* Writes a modified package.json with all new versions, then runs install.
|
|
1605
1627
|
* All file contents are provided from in-memory sources (SourceFiles), not read from disk.
|
|
1606
1628
|
*
|
|
1607
|
-
*
|
|
1629
|
+
* When preferDirectUpgrade is enabled, this uses a two-phase approach:
|
|
1608
1630
|
* 1. First run with only direct fixes (+ fixes via direct upgrade)
|
|
1609
1631
|
* 2. Check the resulting lock file for remaining transitive vulnerabilities
|
|
1610
|
-
* 3. If any remain,
|
|
1632
|
+
* 3. If any remain, apply the fallback strategy (override or lock-file)
|
|
1611
1633
|
*/
|
|
1612
1634
|
private async runPackageManagerInstall(
|
|
1613
1635
|
acc: Accumulator,
|
|
@@ -1619,7 +1641,7 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
1619
1641
|
const directFixes = fixes.filter(f => !f.isTransitive || (f.fixViaDirectUpgrades && f.fixViaDirectUpgrades.length > 0));
|
|
1620
1642
|
const transitiveFixes = fixes.filter(f => f.isTransitive && (!f.fixViaDirectUpgrades || f.fixViaDirectUpgrades.length === 0));
|
|
1621
1643
|
|
|
1622
|
-
//
|
|
1644
|
+
// When preferDirectUpgrade is enabled, use two-phase approach
|
|
1623
1645
|
if (this.shouldVerifyTransitiveFixes() && transitiveFixes.length > 0) {
|
|
1624
1646
|
// Phase 1: Apply only direct fixes and check what transitives are still vulnerable
|
|
1625
1647
|
const phase1PackageJson = this.createModifiedPackageJson(
|
|
@@ -1670,9 +1692,9 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
1670
1692
|
return;
|
|
1671
1693
|
}
|
|
1672
1694
|
|
|
1673
|
-
//
|
|
1695
|
+
// When preferDirectUpgrade is enabled, try to find higher direct dependency versions
|
|
1674
1696
|
// that fix the remaining transitive vulnerabilities
|
|
1675
|
-
if (this.
|
|
1697
|
+
if (this.preferDirectUpgrade) {
|
|
1676
1698
|
remainingTransitiveFixes = await this.tryDirectUpgradesForTransitives(
|
|
1677
1699
|
remainingTransitiveFixes,
|
|
1678
1700
|
updateInfo
|
|
@@ -1728,10 +1750,10 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
1728
1750
|
* Runs the package manager in a temporary directory for a workspace.
|
|
1729
1751
|
* Handles direct dependency fixes in workspace members and transitive fixes in root.
|
|
1730
1752
|
*
|
|
1731
|
-
*
|
|
1753
|
+
* When preferDirectUpgrade is enabled, this uses a two-phase approach:
|
|
1732
1754
|
* 1. First run with only direct fixes (+ fixes via direct upgrade)
|
|
1733
1755
|
* 2. Check the resulting lock file for remaining transitive vulnerabilities
|
|
1734
|
-
* 3. If any remain,
|
|
1756
|
+
* 3. If any remain, apply the fallback strategy (override or lock-file)
|
|
1735
1757
|
*/
|
|
1736
1758
|
private async runWorkspacePackageManagerInstall(
|
|
1737
1759
|
acc: Accumulator,
|
|
@@ -1788,7 +1810,7 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
1788
1810
|
|
|
1789
1811
|
const rootOriginalContent = acc.allPackageJsonContents.get(rootPath) || rootUpdateInfo.originalPackageJson;
|
|
1790
1812
|
|
|
1791
|
-
//
|
|
1813
|
+
// When preferDirectUpgrade is enabled, use two-phase approach
|
|
1792
1814
|
if (this.shouldVerifyTransitiveFixes() && allTransitiveFixes.length > 0) {
|
|
1793
1815
|
// Phase 1: Apply only direct fixes
|
|
1794
1816
|
const phase1RootPackageJson = this.createModifiedPackageJson(
|
|
@@ -1841,9 +1863,9 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
1841
1863
|
return;
|
|
1842
1864
|
}
|
|
1843
1865
|
|
|
1844
|
-
//
|
|
1866
|
+
// When preferDirectUpgrade is enabled, try to find higher direct dependency versions
|
|
1845
1867
|
// that fix the remaining transitive vulnerabilities
|
|
1846
|
-
if (this.
|
|
1868
|
+
if (this.preferDirectUpgrade) {
|
|
1847
1869
|
remainingTransitiveFixes = await this.tryDirectUpgradesForTransitives(
|
|
1848
1870
|
remainingTransitiveFixes,
|
|
1849
1871
|
rootUpdateInfo
|
|
@@ -1949,6 +1971,12 @@ export class DependencyVulnerabilityCheck extends ScanningRecipe<Accumulator> {
|
|
|
1949
1971
|
packageJson[fix.scope][fix.packageName] = applyVersionPrefix(originalVersion, fix.newVersion);
|
|
1950
1972
|
}
|
|
1951
1973
|
} else if (fix.isTransitive) {
|
|
1974
|
+
// For 'lock-file' strategy, we don't add overrides for transitive deps.
|
|
1975
|
+
// The lock file update alone is expected to resolve safe versions.
|
|
1976
|
+
if (this.transitiveFixStrategy === 'lock-file') {
|
|
1977
|
+
continue;
|
|
1978
|
+
}
|
|
1979
|
+
|
|
1952
1980
|
// If we found direct dependency upgrades that fix this transitive vulnerability,
|
|
1953
1981
|
// upgrade those direct dependencies instead of using overrides. This is preferred because:
|
|
1954
1982
|
// 1. It's cleaner - no override/resolution clutter in package.json
|
package/src/security/types.ts
CHANGED
|
@@ -18,18 +18,17 @@ export const ALL_DEPENDENCY_SCOPES: DependencyScope[] = [
|
|
|
18
18
|
* Strategy for handling transitive dependency vulnerabilities.
|
|
19
19
|
*
|
|
20
20
|
* - 'report': Report transitive vulnerabilities but don't fix them. (Default)
|
|
21
|
-
* - 'override': Add overrides/resolutions for
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* Most thorough, slowest.
|
|
21
|
+
* - 'override': Add overrides/resolutions for transitive vulnerabilities.
|
|
22
|
+
* Ensures fixes are persistent by explicitly specifying versions.
|
|
23
|
+
* - 'lock-file': Update the lock file to resolve safe versions of transitive
|
|
24
|
+
* dependencies without modifying package.json. Similar to
|
|
25
|
+
* Dependabot's approach. Less intrusive than overrides but may
|
|
26
|
+
* be less persistent if lock file is regenerated.
|
|
27
|
+
*
|
|
28
|
+
* Note: Use the separate `preferDirectUpgrade` option to first try upgrading
|
|
29
|
+
* direct dependencies before falling back to the chosen strategy.
|
|
31
30
|
*/
|
|
32
|
-
export type TransitiveFixStrategy = 'report' | 'override' | '
|
|
31
|
+
export type TransitiveFixStrategy = 'report' | 'override' | 'lock-file';
|
|
33
32
|
|
|
34
33
|
/**
|
|
35
34
|
* Represents a segment in the dependency path.
|
|
@@ -77,7 +76,7 @@ export interface VulnerabilityFix {
|
|
|
77
76
|
originalMajorVersion?: number;
|
|
78
77
|
/**
|
|
79
78
|
* For transitive vulnerabilities, info about ALL direct dependencies that bring
|
|
80
|
-
* this transitive in. Used by
|
|
79
|
+
* this transitive in. Used by preferDirectUpgrade to find higher versions
|
|
81
80
|
* of the direct dependencies that might fix the transitive.
|
|
82
81
|
*/
|
|
83
82
|
directDepInfos?: {
|