This repository was archived by the owner on Aug 5, 2026. It is now read-only.
[Aikido] Fix 10 security issues in lodash, @babel/traverse, ajv and 2 more - #4
Open
aikido-autofix[bot] wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Upgrade dependencies to fix critical RCE vulnerability in template compilation and prototype pollution attacks affecting code execution.
✅ No breaking changes affect this codebase. Lodash is not a dependency of this project and none of the affected methods (
_.unset,_.omit,_.template) are used in the source code.All breaking changes by upgrading lodash from version 4.17.15 to 4.18.1 (CHANGELOG)
_.unset/_.omitnow blockconstructorandprototypeas non-terminal path keys unconditionally. Calls that previously returnedtrueand deleted the property now returnfalseand leave the target untouched._.templatenow throws"Invalid imports option passed into _.template"whenimportskeys contain forbidden identifier characters, which were previously allowed.✅ 10 CVEs resolved by this upgrade, including 1 critical 🚨 CVE
This PR will resolve the following CVEs:
$dataoption is enabled by using inherited property names likeconstructorortoStringas format values, causing unexpected validation behavior or errors.🤖 Remediation details
Fix security vulnerabilities in lodash, @babel/traverse, ajv, ansi-regex, and semver
Short summary
This PR remediates security vulnerabilities in five packages: lodash, @babel/traverse, ajv, ansi-regex, and semver. All five are transitive dependencies except
semver, which is also a direct dependency declared in the rootpackage.json. The rootpackage.jsonreceived one version spec update (semver); all other fixes land exclusively inpackage-lock.jsonvia lockfile-only npm update commands.lodash
lodashis a transitive dependency pulled in by several packages including@babel/traverse,eslint,inquirer,request-promise-core, andtable. Because all of those parents declarelodashwith a^4.17.xrange that already permits>=4.18.1, no manifest edit was required — runningnpm update lodash --package-lock-onlywas sufficient to advance the single hoisted instance from4.17.15to4.18.1, satisfying the patched version floor for all four lodash advisories.@babel/traverse
@babel/traverseis a transitive dependency consumed by Jest's Babel pipeline (via@babel/core,@babel/helpers,istanbul-lib-instrument, andjest-jasmine2). The parent@babel/core@7.7.2declares@babel/traverseas^7.7.2, a range that already permits>=7.23.2, sonpm update @babel/traverse --package-lock-onlyresolved the instance to7.29.7without any manifest change, clearing the prototype-pollution advisory.ajv
ajvis a transitive dependency required byeslint,har-validator, andtable. The parenteslint@6.6.0declaresajvas^6.10.0, which permits>=6.15.0, sonpm update ajv --package-lock-onlyadvanced the single hoisted instance from6.10.2to6.15.0, satisfying the patched version floor for all three ajv advisories without touching any manifest.ansi-regex
ansi-regexappears in multiple nested copies at different major versions, each owned by a differentstrip-ansiparent. All parentstrip-ansiversions in the tree declareansi-regexwith caret ranges (^4.0.0,^4.1.0,^5.0.0) that already permit the respective patched floors (4.1.1,5.0.1), sonpm update ansi-regex --package-lock-onlyadvanced every reachable instance. A separatefseventsupdate removed thefsevents/node_modules/ansi-regex@2.1.1nested copy entirely (thatfseventsversion is no longer installed). Thestring-lengthnested copy moved to3.0.1(patched floor for the 3.x line).semver
semveris both a direct dependency of the root package (^6.3.0→^6.3.1inpackage.json) and a transitive dependency pulled in by several packages at the5.xline (@babel/core,cross-spawn,make-dir,node-notifier,normalize-package-data). The root spec was tightened to^6.3.1andnpm install --package-lock-onlyresolved the root instance to6.3.1. All5.xtransitive instances were advanced to5.7.2vianpm update semver --package-lock-only, as every parent's declared range (^5.4.1,^5.5.0,^5.6.0) already permitted5.7.2. Thefsevents/node_modules/semver@5.7.0copy was removed by thefseventsupdate.Version changes
semver(rootpackage.jsonspec)^6.3.0^6.3.1semver(node_modules/semver)6.3.06.3.1semver(@babel/core/node_modules/semver)5.7.15.7.2@babel/coresemver(cross-spawn/node_modules/semver)5.7.15.7.2cross-spawnsemver(make-dir/node_modules/semver)5.7.15.7.2make-dirsemver(node-notifier/node_modules/semver)5.7.15.7.2node-notifiersemver(normalize-package-data/node_modules/semver)5.7.15.7.2normalize-package-datasemver(fsevents/node_modules/semver)5.7.0fseventsversion no longer installed after parent updatelodash4.17.154.18.1@babel/traverse7.7.27.29.7@babel/coreajv6.10.26.15.0eslint/table/har-validatoransi-regex(node_modules/ansi-regex)5.0.05.0.1strip-ansi@6.0.0ansi-regex(pretty-format/node_modules/ansi-regex)4.1.04.1.1pretty-format→strip-ansiansi-regex(strip-ansi/node_modules/ansi-regex)4.1.04.1.1strip-ansi@5.2.0ansi-regex(string-length/node_modules/ansi-regex)3.0.03.0.1string-length→strip-ansiansi-regex(fsevents/node_modules/ansi-regex)2.1.1fseventsversion no longer installed after parent updatefsevents1.2.9semverandansi-regexcopies