Skip to content

[Snyk] Security upgrade react-native from 0.40.0 to 0.69.12#13

Open
MHxGH-ServiceAccount wants to merge 1 commit intomasterfrom
snyk-fix-c848b7f30a864270fd7edb4398645295
Open

[Snyk] Security upgrade react-native from 0.40.0 to 0.69.12#13
MHxGH-ServiceAccount wants to merge 1 commit intomasterfrom
snyk-fix-c848b7f30a864270fd7edb4398645295

Conversation

@MHxGH-ServiceAccount
Copy link

@MHxGH-ServiceAccount MHxGH-ServiceAccount commented Mar 6, 2026

snyk-top-banner

Snyk has created this PR to fix 1 vulnerabilities in the npm dependencies of this project.

Snyk changed the following file(s):

  • example/package.json

Vulnerabilities that will be fixed with an upgrade:

Issue Score
critical severity Prototype Pollution
SNYK-JS-IMMUTABLE-15423650
  278  

Breaking Change Risk

Merge Risk: High

Notice: This assessment is enhanced by AI.


Important

  • Check the changes in this PR to ensure they won't cause issues with your project.
  • Max score is 1000. Note that the real score may have changed since the PR was raised.
  • This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic


Learn how to fix vulnerabilities with free interactive lessons:

🦉 Prototype Pollution


Note

High Risk
Upgrading react-native across many releases is likely to introduce breaking build/runtime changes even though this PR only changes package.json. Follow-on updates to native projects, JS code, and tooling may be required to keep the app compiling and running.

Overview
Upgrades the example app’s react-native dependency from ^0.40.0 to ^0.69.12 to address a reported security vulnerability in the dependency tree.

Written by Cursor Bugbot for commit fcdfa5a. This will update automatically on new commits. Configure here.

@MHxGH-ServiceAccount
Copy link
Author

Merge Risk: High

Upgrading from react-native version 0.40.0 to 0.69.12 is a massive undertaking that spans approximately 29 major versions and several years of development. This is not a direct upgrade but a significant migration project that involves fundamental architectural changes, API removals, and tooling updates.

Key Breaking Changes & Architectural Shifts:

  • Project Structure & Tooling: Native project files (iOS/Android) have undergone extensive changes. The upgrade requires a complete overhaul of project configurations. The React Native CLI introduced breaking changes in v8.0, removing link and unlink commands in favor of autolinking.
  • Core Component Migration: Many core components and modules have been removed from the React Native package and extracted into community-maintained packages. This includes AsyncStorage, WebView, NetInfo, and SegmentedComponentIOS. Your code must be updated to import and use these from their new packages.
  • React 18 Support: Version 0.69 is the first to support React 18, introducing new hooks and concurrent features. This requires understanding the new capabilities and may involve refactoring how state and effects are managed.
  • Hermes as Default Engine: Hermes became the bundled, default JavaScript engine in v0.69, which can significantly impact performance and debugging workflows.
  • New Architecture (Fabric/TurboModules): While not enabled by default in 0.69, this version includes support for the new architecture, which replaces the legacy bridge with a more performant JSI (JavaScript Interface). Migrating libraries and custom native modules is a complex process.
  • AndroidX Requirement: Support for the Android Support Library was dropped in favor of AndroidX. This is a mandatory and often complex migration for the Android part of the project.

Recommendation:
A direct, in-place upgrade is not feasible and will likely fail. The officially recommended approach is to use the React Native Upgrade Helper tool. However, given the vast version gap, the most practical strategy is to:

  1. Create a brand new project using npx react-native init with the target version (0.69.12).
  2. Methodically migrate your JavaScript source code, assets, and dependencies to the new project.
  3. Re-implement any custom native modules and update dependencies to versions compatible with React Native 0.69 and the new tooling.

This upgrade should be treated as a full project rewrite or a major migration effort, not a routine dependency update.

Source: React Native Upgrade Helper, React Native 0.69 Release Notes

Notice 🤖: This content was augmented using artificial intelligence. AI-generated content may contain errors and should be reviewed for accuracy before use.

@MHxGH-ServiceAccount
Copy link
Author

MHxGH-ServiceAccount commented Mar 6, 2026

Snyk checks have failed. 4 issues have been found so far.

Status Scanner Critical High Medium Low Total (4)
Open Source Security 0 4 0 0 4 issues
Licenses 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

"dependencies": {
"react": "^15.4.2",
"react-native": "^0.40.0",
"react-native": "^0.69.12",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Incompatible React and React Native version pairing

High Severity

react-native was upgraded to ^0.69.12 which requires react 18.x, but react remains pinned at ^15.4.2. These versions are fundamentally incompatible — React Native 0.69 relies on React 18 APIs and internals. The example app will fail to install (peer dependency conflict) or crash at runtime.

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants