Skip to content

Commit 72bdd4b

Browse files
committed
MLE-24230 Updating all devDependencies
And not using the caret so we know exactly which version we're using. Also documented each override and alphabetized them. And removed the following overrides which Copilot verified were not in the dependency graph: - is-arrayish - nanoid - simple-get - serialize-javascript
1 parent b0aadbc commit 72bdd4b

File tree

4 files changed

+570
-724
lines changed

4 files changed

+570
-724
lines changed

CONTRIBUTING.md

Lines changed: 115 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,120 @@ or
5757
There are also tests in the `test-complete` folder. The setup for these is more complicated and can
5858
be found in the `Jenkinsfile` file in this repository in the `runE2ETests` function.
5959

60-
## Notes on dependencies in package.json
61-
62-
We are using @fastify/busboy because it has a forked copy of dicer that apparently does not
60+
## Explanation of overrides in package.json
61+
62+
Each override is being documented here so we have some ability in the future to remove an override as needed.
63+
These explanations have been copied from a Copilot analysis.
64+
65+
braces: "3.0.3"
66+
- Purpose: Fixes ReDoS vulnerability in brace expansion
67+
- Affects: mocha, gulp, and test infrastructure
68+
- Why needed: Older braces versions vulnerable to regex attacks
69+
- CVE/Issue: CVE-2024-4068 - ReDoS vulnerability
70+
71+
brace-expansion: "2.0.2"
72+
- Purpose: Fixes ReDoS in brace expansion patterns
73+
- Affects: minimatch → brace-expansion
74+
- Why needed: Prevents regex denial of service attacks
75+
- CVE/Issue: Related to minimatch vulnerabilities
76+
77+
glob: "10.3.11"
78+
- Purpose: Fixes ReDoS and security issues in file globbing
79+
- Affects: mocha, gulp-mocha build tooling
80+
- Why needed: Older glob versions have pattern matching vulnerabilities
81+
- CVE/Issue: Multiple vulnerabilities in older glob versions
82+
83+
glob-parent: "6.0.2"
84+
- Purpose: Fixes ReDoS in path parsing
85+
- Affects: Transitive dependency through glob
86+
- Why needed: Older versions vulnerable to regex attacks
87+
- CVE/Issue: CVE-2020-28469 - ReDoS vulnerability
88+
89+
jsdoc: "4.0.0"
90+
- Purpose: Fixes high-severity data access vulnerability in older jsdoc versions
91+
- Affects: gulp-jsdoc3 → jsdoc
92+
- Why needed: [email protected] uses older jsdoc with known vulnerabilities
93+
- CVE/Issue: High severity vulnerability in taffydb (jsdoc dependency)
94+
95+
markdown-it: "14.1.0"
96+
- Purpose: Use latest markdown parser for JSDoc
97+
- Affects: gulp-jsdoc3 → jsdoc → markdown-it
98+
- Why needed: Latest version (no vulnerabilities), handles RFC 7464 parsing
99+
- Note: No newer version available, ensures consistency
100+
101+
minimatch: "5.1.0"
102+
- Purpose: Fixes ReDoS (Regular Expression Denial of Service) vulnerability
103+
- Affects: mocha, gulp-mocha, and other build tools
104+
- Why needed: Older minimatch versions have catastrophic backtracking vulnerability
105+
- CVE/Issue: CVE-2022-3517 - ReDoS vulnerability
106+
107+
sanitize-html: "2.17.0"
108+
- Purpose: Ensure JSDoc template uses non-vulnerable HTML sanitizer
109+
- Affects: gulp-jsdoc3 → ink-docstrap → sanitize-html
110+
- Why needed: Older versions have XSS vulnerabilities
111+
- Note: Also in devDependencies, override ensures transitive deps use safe version
112+
113+
semver: "7.5.3"
114+
- Purpose: Fixes ReDoS in version parsing
115+
- Affects: Multiple packages across dependency tree
116+
- Why needed: Older semver versions have regex vulnerabilities
117+
- CVE/Issue: CVE-2022-25883 - ReDoS vulnerability
118+
119+
tar-fs: "2.1.4"
120+
- Purpose: Fixes directory traversal vulnerability
121+
- Affects: kerberos → prebuild-install → tar-fs
122+
- Why needed: Older tar-fs allows extracting files outside intended directory
123+
- CVE/Issue: CVE-2024-28861 - Path traversal
124+
125+
tmp: "0.2.4"
126+
- Purpose: Fixes arbitrary file write vulnerability
127+
- Affects: gulp-jsdoc3 → jsdoc → tmp
128+
- Why needed: Older tmp versions have file system security issues
129+
- CVE/Issue: CVE-2024-28858 - Arbitrary file write
130+
131+
The following are related to this npm supply chain attack - https://orca.security/resources/blog/qix-npm-attack/ .
132+
133+
ansi-styles: "4.3.0"
134+
- Purpose: Protect against supply chain attack variants
135+
- Affects: chalk → ansi-styles, eslint toolchain
136+
137+
ansi-regex: "5.0.1"
138+
- Purpose: Protect against supply chain attack variants
139+
- Affects: strip-ansi → ansi-regex
140+
141+
chalk: "4.1.2"
142+
- Purpose: Avoid compromised chalk 5.6.1, maintain ESLint compatibility
143+
- Affects: eslint, mocha, gulp-mocha
144+
- Why needed: Chalk 5.6.1 was compromised in supply chain attack. ESLint 9.x requires chalk 4.x (incompatible with chalk 5.x API)
145+
146+
color-convert: "3.1.0"
147+
- Purpose: Protect against supply chain attack variants
148+
- Affects: ansi-styles → color-convert
149+
150+
color-name: "2.0.0"
151+
- Purpose: Protect against supply chain attack variants
152+
- Affects: color-convert → color-name
153+
154+
cross-spawn: "7.0.6"
155+
- Purpose: Protect against supply chain attack variants
156+
- Affects: eslint → cross-spawn
157+
158+
debug: "4.3.6"
159+
- Purpose: Protect against supply chain attack variants
160+
- Affects: eslint, mocha, multiple packages
161+
162+
supports-color: "7.2.0"
163+
- Purpose: Protect against supply chain attack variants
164+
- Affects: mocha, chalk
165+
166+
strip-ansi: "6.0.0"
167+
- Purpose: Protect against supply chain attack variants
168+
- Affects: mocha, cliui in test infrastructure
169+
170+
wrap-ansi: "6.2.0"
171+
- Purpose: Protect against supply chain attack variants
172+
- Affects: mocha → cliui → wrap-ansi
173+
174+
Also, we are using @fastify/busboy because it has a forked copy of dicer that apparently does not
63175
have the same high security vulnerability that the 0.3.1 release of dicer has.
64176

Jenkinsfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def runAuditReport() {
5353
cd node-client-api
5454
npm ci
5555
rm -rf $WORKSPACE/npm-audit-report.json || true
56-
npm audit -json || true > $WORKSPACE/npm-audit-report.json
56+
npm audit --audit-level=low --json > $WORKSPACE/npm-audit-report.json
5757
'''
5858
}
5959

0 commit comments

Comments
 (0)