[Aikido] Fix 1 critical issue in minimist and 3 other issues#5
[Aikido] Fix 1 critical issue in minimist and 3 other issues#5aikido-autofix[bot] wants to merge 1 commit into
Conversation
|
YARN is no longer allowed. Kindly replace the lockfile using PNPM. Found in ./lighthouse-logger/yarn.lock |
There was a problem hiding this comment.
CVE-2026-4800 in lodash - critical severity
Impact:
The fix for CVE-2021-23337 (GHSA-35jh-r3h4-6jhm) added validation for the variable option in _.template but did not apply the same validation to options.imports key names. Both paths flow into the same Function() constructor sink.
When an application passes untrusted input as options.imports key names, an attacker can inject default-parameter expressions that execute arbitrary code at template compilation time.
Additionally, _.template uses assignInWith to merge imports, which enumerates inherited properties via for..in. If Object.prototype has been polluted by any other vector, the polluted keys are copied into the imports object and passed to Function().
Patches:
Users should upgrade to version 4.18.0.
Workarounds:
Do not pass untrusted input as key names in options.imports. Only use developer-controlled, static key names.
Details
Remediation Aikido suggests bumping this package to version 4.18.0 to resolve this issue
Reply @AikidoSec ignore: [REASON] to ignore this issue.
More info
Upgrade minimist, ws, uuid, and lodash.set to fix prototype pollution, DoS, buffer overflow, and unsafe object manipulation vulnerabilities.
✅ No breaking changes affect this codebase. The
uuidpackage appears only as a transitive dependency inyarn.lockbut is not directly imported or used anywhere in the source code. All searches for uuid imports (CommonJS and ES modules), deep imports (uuid/v*), and function calls returned no matches.All breaking changes by upgrading uuid from version 3.0.0 to 11.1.1 (CHANGELOG)
require('uuid/v4')is no longer supported.✅ 4 CVEs resolved by this upgrade, including 1 critical 🚨 CVE
This PR will resolve the following CVEs:
🔗 Related Tasks
🤖 Remediation details
Fix security vulnerabilities in minimist, ws, uuid, and lodash.set
Short summary
This PR remediates four vulnerable packages — minimist, ws, uuid, and lodash.set — across the root
package.jsonandyarn.lock. Direct dependency declarations were updated forwsandlodash; parent dependenciespuppeteerandconventional-changelog-cliwere bumped to admit patched transitive versions;resolutionsentries were added foruuidand the puppeteer-pinnedws; and the abandonedlodash.setpackage was replaced entirely with the actively-maintainedlodashpackage, with a corresponding source change inshared/localization/swap-locale.js.minimist
minimistis a transitive dependency pulled in by several packages (handlebars,json5,rc,tsconfig-paths). All parent ranges already admitted a patched version (≥1.2.6), so the fix was a lockfile-only selector refresh — no manifest change was required. The grouped lockfile entryminimist@^1.2.0, minimist@^1.2.5was refreshed, resolving from1.2.5to1.2.8.ws
wsappears in four lockfile entries spanning majors 6, 7, and 8. The root direct dependency was tightened from^7.0.0to^7.5.10to set a patched semver floor for the v7 range.puppeteerwas bumped from^10.2.0to^11.0.0because puppeteer v10 pinnedwsat the exact version8.2.3(below the v8 patched floor of8.17.1), making a range refresh impossible without a parent bump; aresolutionsentry"puppeteer/ws": "^8.17.1"was also added to override that exact pin. The remaining stale selectors (ws@^6.1.0,ws@^7.3.1,ws@^7.4.5,ws@>=7.4.6) were refreshed viayarn upgradesince their ranges already permitted patched versions.uuid
All three lockfile instances of
uuid(2.0.3,3.0.0,3.3.2) trace back toravenandrequest, both of which are deprecated and have no published version that declaresuuid ≥11. No parent-chain fix was possible, so aresolutionsentry"uuid": "^11.1.1"was added as a last resort.conventional-changelog-cliwas also bumped from^1.3.4to^4.0.0because v1 depended ontempfile@^1.1.1, which in turn required olduuid; v4 drops that dependency entirely. All three uuid lockfile entries consolidated into a single resolved version of11.1.1.lodash.set
lodash.setis a direct dependency used inshared/localization/swap-locale.js. The package was last published in 2016 at version4.3.2and has never been updated; there is no patched version available on npm, which is why Trivy reports "FixedVersion not reported." The package was removed and replaced with a direct dependency onlodash@^4.17.20(the patched version for this CVE), which was already present in the lockfile transitively at4.17.21. The co-locatedrequire('lodash.get')call in the same file was migrated tolodash/getat the same time, andlodash.get(deprecated upstream) was removed frompackage.json. The source file was updated to userequire('lodash/set')andrequire('lodash/get').Version changes
minimist1.2.51.2.8ws(v6 selector)6.2.16.2.4ws@^6.1.0)ws(v7 selectors)7.4.6/7.5.37.5.11^7.0.0→^7.5.10) + selector refreshws(v8 selectors)8.2.0/8.2.38.21.0puppeteer/wsresolution overrideuuid2.0.3/3.0.0/3.3.211.1.1resolutionsoverride (no parent-chain fix possible)lodash.set4.3.2lodashlodash.get4.4.2lodash.setreplacementlodash4.17.214.18.1lodash.set/lodash.get; declared as^4.17.20puppeteer^10.2.0→10.4.0^11.0.0→11.0.0ws@8.2.3exact pin (CVE fix forws)conventional-changelog-cli^1.3.4→1.3.4^4.0.0→4.1.0tempfile→ olduuiddependency chain