Fix npm audit vulnerabilities in GradleV3 and GradleV4 tasks #21711
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context
npm audit identified 9 vulnerabilities in GradleV3 and 8 in GradleV4, including 2 HIGH severity ReDoS attacks (cross-spawn, qs), 1 MODERATE prototype pollution (js-yaml), and several LOW severity DoS issues.
Task Name
GradleV3, GradleV4
Description
Added npm
overridesto force patched versions of vulnerable transitive dependencies:Regenerated package-lock.json files. Result: 0 vulnerabilities in both tasks.
Risk Assessment (Low / Medium / High)
Low - Overrides only affect transitive dependencies from test frameworks (mocha, sinon). No direct dependencies or runtime code changed. Versions use caret ranges for forward compatibility with security patches.
Change Behind Feature Flag (Yes / No)
No - Dependency security fixes cannot be feature-flagged. Impact limited to build/test time.
Tech Design / Approach
Documentation Changes Required (Yes/No)
No - Internal dependency changes only.
Unit Tests Added or Updated (Yes / No)
No - Existing tests validate compatibility. Dependency updates don't change task behavior.
Additional Testing Performed
Logging Added/Updated (Yes/No)
No
Telemetry Added/Updated (Yes/No)
No
Rollback Scenario and Process (Yes/No)
Yes - Revert commit to restore previous package.json and package-lock.json. No runtime state to consider.
Dependency Impact Assessed and Regression Tested (Yes/No)
Yes - Only test dependencies affected (mocha, sinon chains). Task runtime dependencies unchanged. Overrides use compatible semver ranges.
Checklist
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
03nvsblobprodwcus014.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)055vsblobprodwcus02.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)1g1vsblobprodwcus01.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)3eavsblobprodwcus03.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)3zgvsblobprodwcus024.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)40qvsblobprodwcus022.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)4fdvsblobprodwcus012.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)5tbvsblobprodwcus06.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)61cvsblobprodwcus010.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)73dvsblobprodwcus07.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)8usvsblobprodwcus011.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)9owvsblobprodwcus020.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)arpvsblobprodwcus017.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)crcvsblobprodwcus021.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)fslvsblobprodwcus015.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)grnvsblobprodwcus04.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)k92vsblobprodwcus08.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)mnzvsblobprodwcus05.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)pl8vsblobprodwcus09.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)uubvsblobprodwcus018.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)vwmvsblobprodwcus016.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)x4wvsblobprodwcus013.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)xg1vsblobprodwcus019.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)xlkvsblobprodwcus023.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
Work item: AB#2345075
Created via Azure DevOps
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.