Skip to content

Commit c1085e7

Browse files
runway-github[bot]weitingsungeorgewrmarshall
authored
chore(runway): cherry-pick fix: bump axios to 1.15.0 to resolve critical SSRF vulnerability (#28717)
- fix: bump axios to 1.15.0 to resolve critical SSRF vulnerability (#28620) <!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** CI is failing on `yarn audit:ci` due to a critical severity advisory ([GHSA-3p68-rc4w-qgx5](GHSA-3p68-rc4w-qgx5)) in axios < 1.15.0. The vulnerability allows an attacker to bypass `NO_PROXY` hostname normalization, leading to SSRF. This PR bumps axios from 1.13.5 to 1.15.0 across `dependencies`, `resolutions`, and the CI scripts package. Because 1.15.0 was published less than 3 days ago, it is also temporarily added to `npmPreapprovedPackages` in `.yarnrc.yml` to bypass the `npmMinimalAgeGate`. This preapproval entry should be removed after 2025-04-12. ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: null ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I've included tests if applicable - [x] I've documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I've applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Updates a widely used HTTP client to remediate a critical SSRF advisory; moderate risk due to potential subtle networking/proxy behavior changes across the app and CI scripts. > > **Overview** > **Bumps `axios` from `^1.13.5` to `^1.15.0` across the repo** (app `dependencies`, `resolutions`, and the `.github/scripts` workspace) to address the flagged security advisory. > > Updates both lockfiles to the new `axios` and its transitive `proxy-from-env@^2.1.0`, and temporarily adds `axios` to `.yarnrc.yml` `npmPreapprovedPackages` to bypass the 3-day `npmMinimalAgeGate` for this release. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 34350ca. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> [f8a6fb8](f8a6fb8) --------- Co-authored-by: Wei Sun <wei.sun@consensys.net> Co-authored-by: georgewrmarshall <george.marshall@consensys.net>
1 parent fa0ae67 commit c1085e7

5 files changed

Lines changed: 33 additions & 25 deletions

File tree

.github/scripts/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"dependencies": {
1717
"@actions/core": "^1.10.1",
1818
"@actions/github": "^6.0.0",
19-
"axios": "^1.13.5",
19+
"axios": "^1.15.0",
2020
"simple-git": "^3.25.0"
2121
},
2222
"devDependencies": {

.github/scripts/yarn.lock

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ __metadata:
151151
"@lavamoat/allow-scripts": "npm:^3.2.0"
152152
"@lavamoat/preinstall-always-fail": "npm:^2.1.0"
153153
"@types/node": "npm:^20.16.2"
154-
axios: "npm:^1.13.5"
154+
axios: "npm:^1.15.0"
155155
simple-git: "npm:^3.25.0"
156156
ts-node: "npm:^10.5.0"
157157
typescript: "npm:~5.4.5"
@@ -508,14 +508,14 @@ __metadata:
508508
languageName: node
509509
linkType: hard
510510

511-
"axios@npm:^1.13.5":
512-
version: 1.13.5
513-
resolution: "axios@npm:1.13.5"
511+
"axios@npm:^1.15.0":
512+
version: 1.15.0
513+
resolution: "axios@npm:1.15.0"
514514
dependencies:
515515
follow-redirects: "npm:^1.15.11"
516516
form-data: "npm:^4.0.5"
517-
proxy-from-env: "npm:^1.1.0"
518-
checksum: 10/db726d09902565ef9a0632893530028310e2ec2b95b727114eca1b101450b00014133dfc3871cffc87983fb922bca7e4874d7e2826d1550a377a157cdf3f05b6
517+
proxy-from-env: "npm:^2.1.0"
518+
checksum: 10/d39a2c0ebc7ff4739401b282e726cc2673377949d6c46d60eb619458f8d7a2f7eadbcada7097f4dbc7d5c59abb4d3bf6fac33d474412bc3415d3f5aa7ed45530
519519
languageName: node
520520
linkType: hard
521521

@@ -1422,10 +1422,10 @@ __metadata:
14221422
languageName: node
14231423
linkType: hard
14241424

1425-
"proxy-from-env@npm:^1.1.0":
1426-
version: 1.1.0
1427-
resolution: "proxy-from-env@npm:1.1.0"
1428-
checksum: 10/f0bb4a87cfd18f77bc2fba23ae49c3b378fb35143af16cc478171c623eebe181678f09439707ad80081d340d1593cd54a33a0113f3ccb3f4bc9451488780ee23
1425+
"proxy-from-env@npm:^2.1.0":
1426+
version: 2.1.0
1427+
resolution: "proxy-from-env@npm:2.1.0"
1428+
checksum: 10/fbbaf4dab2a6231dc9e394903a5f66f20475e36b734335790b46feb9da07c37d6b32e2c02e3e2ea4d4b23774c53d8562e5b7cc73282cb43f4a597b7eacaee2ee
14291429
languageName: node
14301430
linkType: hard
14311431

.yarnrc.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,4 @@ npmPreapprovedPackages:
3030
- '@metamask-previews/*'
3131
- '@lavamoat/*'
3232
- '@consensys/*'
33+
- 'axios' # TODO: Remove after 2025-04-12 once axios 1.15.0 ages past the 3-day npmMinimalAgeGate

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@
160160
"@unrs/resolver-binding-wasm32-wasi": "npm:npm-empty-package@1.0.0",
161161
"d3-color": "3.1.0",
162162
"napi-postinstall": "npm:npm-empty-package@1.0.0",
163-
"axios": "^1.13.5",
163+
"axios": "^1.15.0",
164164
"lodash": "4.18.1",
165165
"redux-persist-filesystem-storage/react-native-blob-util": "^0.19.9",
166166
"@ethersproject/providers/ws": "^7.5.10",
@@ -363,9 +363,9 @@
363363
"@walletconnect/core": "^2.23.0",
364364
"@walletconnect/react-native-compat": "^2.23.0",
365365
"@walletconnect/utils": "^2.23.0",
366-
"@xmldom/xmldom": "^0.8.10",
366+
"@xmldom/xmldom": "^0.8.12",
367367
"asyncstorage-down": "4.2.0",
368-
"axios": "^1.13.5",
368+
"axios": "^1.15.0",
369369
"bignumber.js": "^9.0.1",
370370
"bitcoin-address-validation": "2.2.3",
371371
"bnjs4": "npm:bn.js@^4.12.3",

yarn.lock

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20811,10 +20811,10 @@ __metadata:
2081120811
languageName: node
2081220812
linkType: hard
2081320813

20814-
"@xmldom/xmldom@npm:^0.8.10, @xmldom/xmldom@npm:^0.8.8, @xmldom/xmldom@npm:^0.x":
20815-
version: 0.8.11
20816-
resolution: "@xmldom/xmldom@npm:0.8.11"
20817-
checksum: 10/f6d6ffdf71cf19d9b3c10e978fad40d2f85453bf5b2aa05be8aa0c5ad13f84690c3153316729213cc652d06ec12c605ddb0aa03886f1d73d51b974b4105d31e3
20814+
"@xmldom/xmldom@npm:^0.8.12, @xmldom/xmldom@npm:^0.8.8, @xmldom/xmldom@npm:^0.x":
20815+
version: 0.8.12
20816+
resolution: "@xmldom/xmldom@npm:0.8.12"
20817+
checksum: 10/0fc20bc72a057a939ed17afc3fb35d6be2eb19e42aa9ba3c78aa8bdf471da0b4b17c2710581ce6a2cd68ce3995c2ee7d689593a70a26df1273c0c9c29dfca257
2081820818
languageName: node
2081920819
linkType: hard
2082020820

@@ -22567,14 +22567,14 @@ __metadata:
2256722567
languageName: node
2256822568
linkType: hard
2256922569

22570-
"axios@npm:^1.13.5":
22571-
version: 1.13.5
22572-
resolution: "axios@npm:1.13.5"
22570+
"axios@npm:^1.15.0":
22571+
version: 1.15.0
22572+
resolution: "axios@npm:1.15.0"
2257322573
dependencies:
2257422574
follow-redirects: "npm:^1.15.11"
2257522575
form-data: "npm:^4.0.5"
22576-
proxy-from-env: "npm:^1.1.0"
22577-
checksum: 10/db726d09902565ef9a0632893530028310e2ec2b95b727114eca1b101450b00014133dfc3871cffc87983fb922bca7e4874d7e2826d1550a377a157cdf3f05b6
22576+
proxy-from-env: "npm:^2.1.0"
22577+
checksum: 10/d39a2c0ebc7ff4739401b282e726cc2673377949d6c46d60eb619458f8d7a2f7eadbcada7097f4dbc7d5c59abb4d3bf6fac33d474412bc3415d3f5aa7ed45530
2257822578
languageName: node
2257922579
linkType: hard
2258022580

@@ -35740,7 +35740,7 @@ __metadata:
3574035740
"@walletconnect/utils": "npm:^2.23.0"
3574135741
"@wdio/protocols": "npm:^9.24.0"
3574235742
"@welldone-software/why-did-you-render": "npm:^8.0.1"
35743-
"@xmldom/xmldom": "npm:^0.8.10"
35743+
"@xmldom/xmldom": "npm:^0.8.12"
3574435744
appium: "npm:^2.12.1"
3574535745
appium-adb: "npm:^9.11.4"
3574635746
appium-chromium-driver: "npm:^2.0.2"
@@ -35749,7 +35749,7 @@ __metadata:
3574935749
appwright: "patch:appwright@npm%3A0.1.45#~/.yarn/patches/appwright-npm-0.1.45-f282bc1c1b.patch"
3575035750
assert: "npm:^1.5.0"
3575135751
asyncstorage-down: "npm:4.2.0"
35752-
axios: "npm:^1.13.5"
35752+
axios: "npm:^1.15.0"
3575335753
babel-jest: "npm:^29.7.0"
3575435754
babel-loader: "npm:^9.1.3"
3575535755
babel-plugin-inline-import: "npm:^3.0.0"
@@ -39701,6 +39701,13 @@ __metadata:
3970139701
languageName: node
3970239702
linkType: hard
3970339703

39704+
"proxy-from-env@npm:^2.1.0":
39705+
version: 2.1.0
39706+
resolution: "proxy-from-env@npm:2.1.0"
39707+
checksum: 10/fbbaf4dab2a6231dc9e394903a5f66f20475e36b734335790b46feb9da07c37d6b32e2c02e3e2ea4d4b23774c53d8562e5b7cc73282cb43f4a597b7eacaee2ee
39708+
languageName: node
39709+
linkType: hard
39710+
3970439711
"prr@npm:~0.0.0":
3970539712
version: 0.0.0
3970639713
resolution: "prr@npm:0.0.0"

0 commit comments

Comments
 (0)