[Aikido] Fix 9 security issues in lodash, uuid, @octokit/endpoint and 3 more - #21
Open
aikido-autofix[bot] wants to merge 1 commit into
Open
[Aikido] Fix 9 security issues in lodash, uuid, @octokit/endpoint and 3 more#21aikido-autofix[bot] wants to merge 1 commit into
aikido-autofix[bot] wants to merge 1 commit into
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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 lodash template injection via options.imports and high-severity buffer overflow in uuid.
✅ No breaking changes affect this codebase.
The lodash upgrade's breaking changes to
_.unset,_.omit, and_.templatedo not impact the code, which only uses_.filter()and_.merge(). The uuid package is not used in the source code. The @octokit packages are transitive dependencies accessed only through@actions/github'sgetOctokit()method, and the codebase does not use any of the deprecated features (HTTP agents, custom request options, or removed API endpoints). The action runs on Node.js 24, which satisfies all version requirements.All breaking changes by upgrading lodash from version 4.17.21 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.All breaking changes by upgrading uuid from version 8.3.2 to 11.1.1 (CHANGELOG)
✅ 9 CVEs resolved by this upgrade, including 1 critical 🚨 CVE
This PR will resolve the following CVEs:
linkheaders, allowing attackers to cause denial of service through specially crafted requests.🤖 Remediation details
Fix security vulnerabilities in lodash, uuid, @octokit/endpoint, @octokit/plugin-paginate-rest, @octokit/request, @octokit/request-error, and undici
Short summary
This PR remediates security vulnerabilities in seven npm packages: lodash, uuid, @octokit/endpoint, @octokit/plugin-paginate-rest, @octokit/request, @octokit/request-error, and undici (introduced transitively by the parent bumps required to fix the other packages). Changes touch the root
package.json(four declared dependency version specs updated, oneoverridesentry added) andpackage-lock.json(lockfile refreshed to reflect all resolved version changes).lodash
lodashis a direct dependency declared in the rootpackage.json. Its declared spec was widened from^4.17.21to^4.18.1, and the lockfile resolves it to4.18.1. The bump was necessary because all three lodash CVEs require a minimum of4.18.1to be patched.uuid
uuidappears as a transitive dependency pulled in by two parents:@actions/core(resolved away entirely after its parent bump) andaws-sdk(which exact-pinsuuid@8.0.0and has no upstream release that upgrades it). For theaws-sdkpath, no parent bump was possible across the entireaws-sdk@2.xline, so a targetedoverridesentry ("uuid@<11.1.1": "11.1.1") was added to the rootpackage.jsonas a last resort, forcing the nested copy to the patched11.1.1.@octokit/endpoint
@octokit/endpointis a transitive dependency; its immediate parent in the lockfile is@octokit/request. Fixing it required bumping@actions/github(a direct dependency) from^4.0.0to^8.0.1, which pulls in a new major of@octokit/request(^10.x) that in turn depends on@octokit/endpoint@^11.x— well above the patched floor of9.0.6. No direct manifest entry for@octokit/endpointexists or was needed.@octokit/plugin-paginate-rest
@octokit/plugin-paginate-restis a transitive dependency whose immediate parent is@actions/github. Bumping@actions/githubfrom^4.0.0to^8.0.1in the rootpackage.jsonwas required because@actions/github@4.x–7.xall resolve@octokit/plugin-paginate-restbelow the patched floor of9.2.2;@actions/github@8.0.1resolves it to14.0.0.@octokit/request
@octokit/requestis a transitive dependency pulled in through@actions/github→@octokit/coreand@octokit/graphql. Bumping@actions/githubto^8.0.1was necessary because that version brings in@octokit/core@^7.xand@octokit/graphql@^9.x, both of which depend on@octokit/request@^10.x— above the patched floor of8.4.1. The lockfile resolves to10.0.11.@octokit/request-error
@octokit/request-erroris a transitive dependency whose parents are@octokit/coreand@octokit/request. Both of those packages were themselves upgraded as a consequence of bumping@actions/githubto^8.0.1; the new versions of@octokit/core(^7.x) and@octokit/request(^10.x) depend on@octokit/request-error@^7.x, which is above the patched floor of5.1.1. The lockfile resolves to7.1.0.undici
undiciwas not in the original task but was introduced as a new vulnerable transitive at5.29.0by the@actions/githubbump to^6.0.0(round 1). It is pulled in via two paths:@actions/github→undicidirectly, and@actions/core→@actions/http-client→undici. Fixing the first path required bumping@actions/githubfurther to^8.0.1(the first version that depends onundici@^6.23.0, resolving to6.28.0≥ the patched floor of6.24.0). Fixing the second path required bumping@actions/corefrom^1.11.0to^2.0.0in the rootpackage.json, because@actions/core@2.xis the first major that depends on@actions/http-client@^3.x, which in turn depends onundici@^6.23.0. After both bumps, the two previously separateundiciinstances collapsed into a single shared copy at6.28.0.Version changes
lodash^4.17.21(resolved4.17.21)^4.18.1(resolved4.18.1)@actions/core^1.10.0(resolved1.10.0)^2.0.0(resolved2.0.3)undicivia@actions/http-client@actions/github^4.0.0(resolved4.0.0)^8.0.1(resolved8.0.1)@octokit/plugin-paginate-rest,@octokit/request,@octokit/request-error,@octokit/endpoint, andundiciuuid8.3.2+ nested8.0.011.1.1uuid@<11.1.1) —aws-sdk@2.xexact-pins8.0.0with no fixing parent@octokit/endpoint6.0.1211.0.3@actions/githubparent bump@octokit/plugin-paginate-rest2.21.314.0.0@actions/githubparent bump@octokit/request5.6.310.0.11@actions/githubparent bump@octokit/request-error2.1.07.1.0@actions/githubparent bumpundici5.29.06.28.0@actions/githuband@actions/coreparent bumps@actions/http-client2.2.33.0.2@actions/coreparent bump (required to reachundici@^6.x)@octokit/core3.6.07.0.6@actions/githubparent bump@octokit/graphql4.8.09.0.3@actions/githubparent bump