Skip to content

[Snyk] Upgrade react-scripts from 4.0.1 to 4.0.3 #44

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

nejidevelops
Copy link
Owner

snyk-top-banner

Snyk has created this PR to upgrade react-scripts from 4.0.1 to 4.0.3.

ℹ️ Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


  • The recommended version is 2 versions ahead of your current version.

  • The recommended version was released 4 years ago.

Issues fixed by the recommended upgrade:

Issue Score Exploit Maturity
high severity Prototype Pollution
SNYK-JS-IMMER-1019369
387 Proof of Concept
high severity Remote Memory Exposure
SNYK-JS-DNSPACKET-1293563
387 No Known Exploit
high severity Prototype Pollution
SNYK-JS-ASYNC-2441827
387 Proof of Concept
high severity Server-side Request Forgery (SSRF)
SNYK-JS-IP-6240864
387 Proof of Concept
high severity Asymmetric Resource Consumption (Amplification)
SNYK-JS-BODYPARSER-7926860
387 No Known Exploit
high severity Improper Handling of Extra Parameters
SNYK-JS-FOLLOWREDIRECTS-6141137
387 Proof of Concept
high severity Improper Input Validation
SNYK-JS-URLPARSE-2407770
387 Proof of Concept
medium severity Command Injection
SNYK-JS-REACTDEVUTILS-1083268
387 Proof of Concept
medium severity Information Exposure
SNYK-JS-EVENTSOURCE-2823375
387 Proof of Concept
medium severity Open Redirect
SNYK-JS-EXPRESS-6474509
387 No Known Exploit
medium severity Cross-site Scripting
SNYK-JS-EXPRESS-7926867
387 No Known Exploit
medium severity Information Exposure
SNYK-JS-FOLLOWREDIRECTS-2332181
387 Proof of Concept
medium severity Information Exposure
SNYK-JS-FOLLOWREDIRECTS-6444610
387 Proof of Concept
medium severity Regular Expression Denial of Service (ReDoS)
SNYK-JS-PATHTOREGEXP-8482416
387 Proof of Concept
low severity Information Exposure
SNYK-JS-FOLLOWREDIRECTS-2396346
387 No Known Exploit
critical severity Incomplete List of Disallowed Inputs
SNYK-JS-BABELTRAVERSE-5962462
387 Proof of Concept
medium severity Cross-site Scripting (XSS)
SNYK-JS-COOKIE-8163060
387 No Known Exploit
medium severity Regular Expression Denial of Service (ReDoS)
SNYK-JS-PATHTOREGEXP-7925106
387 Proof of Concept
medium severity Improper Input Validation
SNYK-JS-URLPARSE-1078283
387 No Known Exploit
medium severity Open Redirect
SNYK-JS-URLPARSE-1533425
387 Proof of Concept
medium severity Access Restriction Bypass
SNYK-JS-URLPARSE-2401205
387 Proof of Concept
medium severity Authorization Bypass
SNYK-JS-URLPARSE-2407759
387 Proof of Concept
medium severity Authorization Bypass Through User-Controlled Key
SNYK-JS-URLPARSE-2412697
387 Proof of Concept
low severity Cross-site Scripting
SNYK-JS-SEND-7926862
387 No Known Exploit
low severity Cross-site Scripting
SNYK-JS-SERVESTATIC-7926865
387 No Known Exploit
Release notes
Package name: react-scripts
  • 4.0.3 - 2021-02-22
  • 4.0.2 - 2021-02-03
  • 4.0.1 - 2020-11-23
from react-scripts GitHub release notes

Important

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

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

For more information:

Snyk has created this PR to upgrade react-scripts from 4.0.1 to 4.0.3.

See this package in npm:
react-scripts

See this project in Snyk:
https://app.snyk.io/org/newtonombese1/project/d8f549f8-a2b9-4731-b64b-a65d1dfc20bb?utm_source=github&utm_medium=referral&page=upgrade-pr
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Hello @nejidevelops, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

Summary of Changes

Hello team, gemini-code-assist here to provide a summary of this pull request. This PR, automatically generated by Snyk, aims to upgrade the react-scripts dependency from version 4.0.1 to 4.0.3. The primary motivation for this upgrade is to address a significant number of security vulnerabilities identified in the current version, including several high and critical severity issues related to Prototype Pollution, Remote Memory Exposure, SSRF, and more, as detailed in the PR description. The change itself is minimal, focusing solely on updating the version specification in the project's package.json file.

Highlights

  • Security Fixes: Addresses multiple security vulnerabilities (high, medium, and low severity) present in the older version, as reported by Snyk.
  • Automated PR: This pull request was automatically created by Snyk to propose the security upgrade.

Changelog

  • package.json
    • Updated the react-scripts dependency version from 4.0.1 to 4.0.3.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.


A script version old,
Has vulns, brave Snyk told.
Upgrade the line,
Make code shine,
Security, bold.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This Snyk-automated pull request proposes upgrading react-scripts from version 4.0.1 to 4.0.3. This is a positive and important change as it addresses a number of security vulnerabilities, including critical and high-severity ones, as detailed in the PR description.

My review focuses on the implications of this specific version bump. While the change itself is straightforward, the core nature of react-scripts necessitates careful testing. Additionally, the age of the target version (4.0.3, released in early 2021) warrants consideration for your future dependency management strategy.

Overall, the PR is beneficial from a security perspective, provided thorough testing confirms its stability.

Summary of Findings

  • Critical Security Vulnerability Remediation: The upgrade of react-scripts to version 4.0.3 is essential as it addresses multiple security vulnerabilities, including at least one critical (SNYK-JS-BABELTRAVERSE-5962462) and several high-severity issues. This significantly improves the project's security posture regarding this dependency.
  • Mandatory Post-Upgrade Testing: Due to the core nature of react-scripts in the project's build, development, and testing toolchain, comprehensive testing (verifying build, development server, automated tests, and manual checks) is mandatory before merging this PR to prevent regressions. This was highlighted as a high-severity action item in the review comments.
  • Outdated Target Dependency Version: While react-scripts@4.0.3 resolves the immediate vulnerabilities from 4.0.1, it's important to recognize that version 4.0.3 itself was released in early 2021. For long-term project health, security, and feature support, planning a further upgrade to a more recent major version of react-scripts (e.g., v5.x) is recommended. This was noted as a medium-severity concern for future maintainability.

Merge Readiness

This PR, automatically generated by Snyk, addresses critical security vulnerabilities by upgrading react-scripts from 4.0.1 to 4.0.3. This is a valuable and necessary change for the project's security.

Before merging, it is crucial to:

  1. Perform Thorough Testing: As react-scripts is a foundational dependency, ensure that the application builds correctly, the development server runs as expected, all automated tests pass, and key functionalities are manually verified to catch any regressions.
  2. Acknowledge Dependency Age: Note that react-scripts@4.0.3, while an improvement over 4.0.1, was released in early 2021. It is highly recommended to plan for a future upgrade to a more current version of react-scripts to leverage ongoing support, new features, and further security enhancements.

Given the critical nature of the vulnerabilities being fixed, this PR should be prioritized. However, due to the potential impact of a react-scripts update on the build and runtime behavior, merging should only occur after successful validation through comprehensive testing.

I am unable to approve this PR directly; it requires review, testing, and approval from team members responsible for this repository. If testing confirms no regressions, the PR is highly beneficial. Due to the explicit need for testing confirmation and to highlight the recommendation for future upgrades, I am setting the review status to REQUEST_CHANGES.

@@ -5,7 +5,7 @@
"dependencies": {
"react": "^17.0.1",
"react-dom": "^17.0.1",
"react-scripts": "4.0.1"
"react-scripts": "4.0.3"

Choose a reason for hiding this comment

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

high

This upgrade to react-scripts@4.0.3 is a welcome change as it addresses several security vulnerabilities, including critical ones. Thank you for this Snyk-driven update!

Given that react-scripts is a fundamental part of your project's build, development, and testing toolchain, two key points should be considered before merging:

  1. Critical Action: Thorough Testing Needed: It's essential to conduct comprehensive testing to ensure this upgrade doesn't introduce regressions or break existing functionality. Could you please verify the following?

    • Successful local development server startup (e.g., npm run start).
    • Successful production build (e.g., npm run build).
    • All automated tests pass (e.g., npm run test).
    • Manual smoke tests of key application features to ensure no unexpected behavior.
  2. Medium Concern: Dependency Age & Future Planning: While react-scripts@4.0.3 (released February 2021, as per the PR's release notes) fixes the immediate issues from 4.0.1, it's important to note that this version is itself several years old. The latest stable major version of react-scripts (e.g., v5.x) is significantly newer.

    • Are there any plans or considerations for upgrading to a more current major version of react-scripts in the near future?
    • Staying on older major versions can mean missing out on performance improvements, new features, broader ecosystem compatibility, and potentially encountering other vulnerabilities that are not backported to the 4.x line.

Please confirm the outcomes of testing. Addressing the dependency age would be a beneficial follow-up action for improved long-term project maintainability and security.

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