[Aikido] Fix 13 security issues in axios, undici - #265
Open
aikido-autofix[bot] wants to merge 1 commit into
Open
[Aikido] Fix 13 security issues in axios, undici#265aikido-autofix[bot] wants to merge 1 commit into
aikido-autofix[bot] wants to merge 1 commit into
Conversation
3 tasks
✅ Security Analysis ResultsGreat news! No security issues found in this pull request. Analysis Summary:
💡 Trigger a new security scan by commenting Security analysis powered by Claude Sonnet 4.6 via pr-auditor | Questions? Contact #dx-team or check out this page |
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 axios and undici to fix SSRF/proxy bypass, prototype pollution header injection, credential leakage on cross-origin redirects, and unsafe error serialization vulnerabilities. This update includes breaking changes that require manual migration.
Changes
Testing
Security Impact — CVE vulnerabilities fixed by this PR
✅ 13 CVEs resolved by this upgrade
This PR will resolve the following CVEs:
X-API-Key) during cross-origin redirects, potentially leaking API keys and authentication tokens to unintended hosts. This information disclosure vulnerability affects shared environments where secret headers are set by default.allowAbsoluteUrlsnot being set tofalseby default inbuildFullPath(), allowing attackers to bypass URL restrictions and process unintended URLs.//(e.g.,https:internal.example), allowing attackers to bypass URL allowlists or WAF checks and reach unintended hosts. The vulnerability enables URL validation bypass through silent normalization of invalid URLs.formDataToJSONfunction allows attackers to modify object prototypes. Additionally, a ReDoS vulnerability incombineURLscan cause denial of service through malicious input.Breaking Changes & Upgrade Impact
analytics-nodedependency.Where your code is affected:
shared-actions/send-deployment-event/package.json(line 10): Direct axios dependency"axios": "^1.18.0"shared-actions/send-deployment-event/deployment-frequency-event.js(line 2, 12-20): Usesanalytics-node@6.2.0which depends onaxios@^0.27.2shared-actions/send-deployment-event/yarn.lock(line showing axios resolution): Yarn resolves toaxios@1.20.0which breaks the^0.27.2semver range required byanalytics-node@6.2.0Impact:
The
analytics-node@6.2.0library and its dependencyaxios-retry@3.2.0were designed for axios 0.27.x. Installing axios 1.20.0 violates the semver constraint^0.27.2(which means>=0.27.2 <1.0.0). This will causeanalytics-nodeto receive an incompatible major version of axios, potentially breaking HTTP requests, retry logic, error handling, and request/response interceptors used internally by the library.Remediation:
Either downgrade axios to
^0.27.2to match the analytics-node dependency, or upgrade analytics-node to a version that supports axios 1.x (check for analytics-node versions >= 7.x that may support axios 1.x).All breaking changes by upgrading undici from version 6.24.1 to 6.28.0 (CHANGELOG)
parseSetCookieno longer applies percent-decoding to cookie values, changing behavior for cookies containing encoded sequences like%0D%0Aand%00SameSitevalues (Strict,Lax,None) rather than accepting them as substrings, rejecting previously accepted values likeSameSite=NoneOfYourBusinessContent-Lengthis inconsistent withContent-Range, where previously inconsistent responses may have been acceptedsetCookie()now applies stricter validation that may reject previously accepted unsanitized domain and unparsed valuestypeproperties on duck-typed blob-like HTTP/1.1 request bodies are now coerced and validated, potentially rejecting previously accepted valuesFix Details / Technical Implementation
🤖 Remediation details
Fix security vulnerabilities in axios and undici (
shared-actions/send-deployment-event)Short summary
This PR remediates multiple high- and medium-severity vulnerabilities in two packages —
axiosandundici— used by theshared-actions/send-deployment-eventaction. Changes touchshared-actions/send-deployment-event/package.json(new direct dependency entry and aresolutionsfield) and the correspondingyarn.lock.axios
axioswas a transitive dependency pulled in by the direct dependencyanalytics-node@6.2.0, which declaresaxios@^0.27.2. Because^0.27.2cannot resolve across the major boundary to the required≥1.18.0, andanalytics-node@6.2.0is the latest published version with no fix available, two additions were required:axios: "^1.18.0"was added as a direct dependency inpackage.json, and aresolutions: { "axios": "^1.18.0" }field was added to force Yarn Classic to resolve theanalytics-nodetransitive selector to the same patched version. Both selectors (^0.27.2and^1.18.0) now merge into a single lockfile entry resolving to1.20.0.undici
undiciis a transitive dependency pulled in by@actions/http-client@4.0.0via^6.23.0. That range already admits6.26.0+, so no manifest change was needed — a lockfile refresh viayarn upgrade 'undici@^6.23.0'was sufficient to advance the resolved version from6.24.1to6.28.0, satisfying the≥6.26.0patch floor.Version changes
axios0.27.2(resolved)1.20.0(resolved)^0.27.2fromanalytics-nodeundici6.24.1(resolved)6.28.0(resolved)^6.23.0already admitted patched versionDocs
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.