fix(security): fix security issue in uuid via major version upgrade from 8.3.2 to 11.1.1 in shared-actions - #267
Open
aikido-autofix[bot] wants to merge 1 commit into
Conversation
✅ Security Analysis ResultsNo security issues found. 2 files reviewed.
|
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.
Overview
Jira ticket: https://typeform.atlassian.net/browse/<TICKET_ID>
Upgrade uuid to fix buffer overflow vulnerability in v3(), v5(), and v6() functions that could write past buffer boundaries without proper bounds validation.
Changes
Testing
Security Impact — CVE vulnerabilities fixed by this PR
✅ 1 CVE resolved by this upgrade
This PR will resolve the following CVEs:
Breaking Changes & Upgrade Impact
✅ Code not affected by breaking changes.
✅ No breaking changes from the uuid upgrade (8.3.2 => 11.1.1) affect this codebase.
The codebase uses uuid only indirectly through the
analytics-nodedependency, which usesv4()for generating random UUIDs. The breaking changes in uuid versions 9.x, 10.x, and 11.x are:Node.js version support changes: The action runs on
node24(Node.js 24), which is newer than the uuid 11.x requirement of Node.js 16-20. However, Node.js 24 is backward compatible with packages targeting Node.js 16-20, so this is not a breaking change in practice.Browser-specific changes (removal of minified UMD build, IE 11/Safari 10 support, msCrypto fallback): Not applicable - this is a GitHub Action running in Node.js environment, not a browser.
v1 and v7 internal refactoring: Not applicable - the codebase only uses
v4()throughanalytics-node.TypeScript port: Not applicable - the codebase is written in JavaScript and doesn't import uuid types directly.
The uuid package is used exclusively by
analytics-node@6.2.0for generating message IDs usingv4(), and this functionality remains unchanged across all versions.All breaking changes by upgrading uuid from version 8.3.2 to 11.1.1 (CHANGELOG)
Fix Details / Technical Implementation
🤖 Remediation details
Fix transitive
uuidvulnerability via Yarn resolutionThis PR remediates a security vulnerability in the transitive dependency
uuidwithinshared-actions/send-deployment-event. The fix is applied via aresolutionsentry inshared-actions/send-deployment-event/package.jsonand is reflected in the correspondingyarn.lock.uuid
uuid@8.3.2was pulled in transitively by the direct dependencyanalytics-node@6.2.0, which declaresuuid@^8.3.2. The patched version (11.1.1) is a semver-major jump outside that range, andanalytics-node@6.2.0is the only published version of that package, so no parent bump could admit a safeuuidrelease. A Yarnresolutionsentry pinninguuidto11.1.1was added as a last resort, forcing the lockfile to resolveuuidto the patched version regardless of the^8.3.2constraint declared byanalytics-node.Version changes
uuid8.3.211.1.1resolutionsoverride (transitive viaanalytics-node; no parent bump possible)Docs
For contributions to the
Typeform/.githubrepoNote: Please do not use this repository for new internal shared workflows and actions. Use https://github.com/Typeform/.github-private instead!
Please check that your contribution applies to one of these cases below. If this is not the case, please contribute to https://github.com/Typeform/.github-private instead.