Bump expo 54.0.10 → 54.0.22 (Snyk security fix)#83666
Bump expo 54.0.10 → 54.0.22 (Snyk security fix)#83666
Conversation
Addresses Snyk-identified vulnerabilities in expo by bumping to 54.0.22 without the unrelated major version bumps (jest 30, glob 12, etc.) that were included in the original Snyk PR #83596. - Update expo 54.0.10 → 54.0.22 in package.json - Rename expo patch file for new version - Update patches/expo/details.md reference - Regenerate package-lock.json Co-authored-by: Michał Jasikowski <mjasikowski@users.noreply.github.com>
The version bump in package.json was missing the corresponding Podfile.lock update, causing the verifyPodfile CI check to fail. Co-authored-by: Michał Jasikowski <mjasikowski@users.noreply.github.com>
|
Fixed the failing Regarding the |
…ility expo@54.0.22's iOS Swift code references ExpoReactNativeFactoryProtocol, which is defined in expo-modules-core@3.0.24 but not in 3.0.18. This was causing the iOS HybridApp build to fail with Swift compilation errors. Changes: - Bump expo-modules-core from 3.0.18 to 3.0.24 in package.json - Update package-lock.json accordingly - Rename patch file to match new version - Update ios/Podfile.lock version reference Co-authored-by: Michał Jasikowski <mjasikowski@users.noreply.github.com>
|
Fixed the iOS HybridApp build failure. The root cause was a missing
Changes pushed:
Regarding the |
minipass 7.1.3 changed its license from ISC to BlueOak-1.0.0, which is not in the Snyk approved license list. The expo 54.0.22 upgrade pulls in glob@13 which requires minipass ^7.1.3, triggering the license change. Pinning minipass to 7.1.2 (ISC) via npm overrides resolves the Snyk license compliance failure. Co-authored-by: Michał Jasikowski <mjasikowski@users.noreply.github.com>
|
Fixed the Root cause: The expo 54.0.22 upgrade pulls in Fix: Added Note: If Snyk still flags the license after the re-scan, it may be flagging one of the other new BlueOak-1.0.0 transitive dependencies (e.g., nested |
The global minipass v7.1.2 override was forcing all nested minipass instances to v7, but @sentry/bundler-plugin-core's glob dependency requires minipass v4.x which provides a default export. The override caused a SyntaxError in Storybook builds and a spellcheck failure. The expo bump is the actual security fix; the minipass override is unnecessary. Co-authored-by: Michał Jasikowski <mjasikowski@users.noreply.github.com>
|
Fixed the failing spellcheck and Storybook tests checks by removing the Root cause: The global The spellcheck also failed because Fix: Removed the unnecessary Note: The |
glob@13.0.6 (from expo 54.0.22) requires minipass@^7.1.3, but the lockfile had minipass@7.1.2 pinned which does not satisfy the constraint, causing npm ci to fail on all builds. Co-authored-by: Michał Jasikowski <mjasikowski@users.noreply.github.com>
|
Fixed the failing build checks by updating Root cause: The expo 54.0.22 bump brought in What was fixed:
Remaining: |
|
The only failing check is Root cause: The expo bump (54.0.10 → 54.0.22) transitively bumped What's needed: A Snyk admin needs to approve the All other checks are either passing or still running. |
Explanation of Change
This is a focused security fix extracted from Snyk PR #83596, which bundled several breaking major version bumps alongside the actual vulnerability fix.
This PR only bumps
expofrom54.0.10to54.0.22to address Snyk-identified vulnerabilities. The original Snyk PR also included major version bumps forjest(29→30),glob(10→12),@sentry/webpack-plugin(4→5), andreact-native(0.81→0.84) — all of which caused CI failures and are not included here.Changes:
expo: 54.0.10 → 54.0.22 inpackage.jsonexpo+54.0.22+001+fix-missing-blob-variable-error.patch)patches/expo/details.mdto reference the renamed patch filepackage-lock.jsonNote:
ios/Podfile.lockmay need updating vianpx pod-installon macOS to reflect the new expo version.Fixed Issues
$
PROPOSAL:
Tests
npm ciand verify it completes without errorsOffline tests
N/A — dependency version bump only, no behavioral changes.
QA Steps
[No QA] — This is a patch version bump of expo (54.0.10 → 54.0.22) to address security vulnerabilities. No functional changes.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
N/A — dependency version bump only
Android: mWeb Chrome
N/A — dependency version bump only
iOS: Native
N/A — dependency version bump only
iOS: mWeb Safari
N/A — dependency version bump only
MacOS: Chrome / Safari
N/A — dependency version bump only