<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Rohan Raj Gautam</title>
    <description>The latest articles on Forem by Rohan Raj Gautam (@rohanrajgautam).</description>
    <link>https://forem.com/rohanrajgautam</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F434294%2F1641458e-b8b3-4c5f-825a-00f74bc7332e.png</url>
      <title>Forem: Rohan Raj Gautam</title>
      <link>https://forem.com/rohanrajgautam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/rohanrajgautam"/>
    <language>en</language>
    <item>
      <title>React2Shell RCE Vulnerability: Critical Exploit in React Server Components and Next.js — Patch Immediately</title>
      <dc:creator>Rohan Raj Gautam</dc:creator>
      <pubDate>Wed, 10 Dec 2025 03:28:13 +0000</pubDate>
      <link>https://forem.com/rohanrajgautam/react2shell-rce-vulnerability-critical-exploit-in-react-server-components-and-nextjs-patch-3jkb</link>
      <guid>https://forem.com/rohanrajgautam/react2shell-rce-vulnerability-critical-exploit-in-react-server-components-and-nextjs-patch-3jkb</guid>
      <description>&lt;p&gt;A severe security vulnerability in &lt;strong&gt;React Server Components (RSC)&lt;/strong&gt; has exposed a large number of React and Next.js applications to remote code execution. Both the React team and the Next.js team have released emergency patches.&lt;br&gt;&lt;br&gt;
If your project uses RSC in any capacity, you should treat this as urgent.&lt;/p&gt;
&lt;h2&gt;
  
  
  What Happened
&lt;/h2&gt;

&lt;p&gt;React disclosed a flaw in the RSC “Flight” protocol caused by unsafe deserialization.&lt;br&gt;&lt;br&gt;
Attackers can send crafted payloads that execute arbitrary code on the server.&lt;br&gt;&lt;br&gt;
Next.js is directly affected because its App Router relies on RSC under the hood.&lt;/p&gt;

&lt;p&gt;Independent security researchers have already observed exploitation attempts shortly after disclosure.&lt;/p&gt;
&lt;h2&gt;
  
  
  Who Is Affected
&lt;/h2&gt;

&lt;p&gt;You are impacted if you use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React Server Components (any implementation)&lt;/li&gt;
&lt;li&gt;Next.js App Router&lt;/li&gt;
&lt;li&gt;Any bundler or framework depending on &lt;code&gt;react-server-dom-*&lt;/code&gt; packages (Webpack, Turbopack, Parcel, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using RSC—even without writing server actions—is enough to be vulnerable.&lt;/p&gt;
&lt;h2&gt;
  
  
  How to Fix It
&lt;/h2&gt;
&lt;h3&gt;
  
  
  React Projects
&lt;/h3&gt;

&lt;p&gt;Upgrade all RSC packages to patched versions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;react-server-dom-webpack
react-server-dom-parcel
react-server-dom-turbopack
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use one of the fixed versions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;19.0.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;19.1.2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;19.2.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;or newer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Redeploy your application after updating.&lt;/p&gt;

&lt;h3&gt;
  
  
  Next.js Projects
&lt;/h3&gt;

&lt;p&gt;The Next.js team provides an automated remediation tool:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx fix-react2shell-next
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then upgrade to the patched Next.js release listed in their advisory and redeploy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Recommended Steps
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Rotate all secrets and environment variables.
&lt;/li&gt;
&lt;li&gt;Review logs for suspicious requests or processes.
&lt;/li&gt;
&lt;li&gt;Run security scans on your deployment if it was online before patching.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;This is a high-impact RCE vulnerability affecting the default behavior of modern React and Next.js applications. Because RSC loads by default in many setups, the effective attack surface is huge.&lt;br&gt;&lt;br&gt;
If you depend on RSC anywhere in your stack, patching is not optional.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;React advisory: &lt;a href="https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components" rel="noopener noreferrer"&gt;https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Next.js advisory: &lt;a href="https://nextjs.org/blog/CVE-2025-66478" rel="noopener noreferrer"&gt;https://nextjs.org/blog/CVE-2025-66478&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>react</category>
      <category>nextjs</category>
      <category>security</category>
      <category>vulnerabilities</category>
    </item>
    <item>
      <title>Debugging React Native with Reactotron: A Step-by-Step Guide</title>
      <dc:creator>Rohan Raj Gautam</dc:creator>
      <pubDate>Mon, 24 Jun 2024 16:36:22 +0000</pubDate>
      <link>https://forem.com/rohanrajgautam/debugging-react-native-with-reactotron-a-step-by-step-guide-2f02</link>
      <guid>https://forem.com/rohanrajgautam/debugging-react-native-with-reactotron-a-step-by-step-guide-2f02</guid>
      <description>&lt;p&gt;Debugging a React Native application can sometimes feel like walking through a maze. But what if there was a tool that could streamline the process and give you real-time insights into your app’s behavior? Enter Reactotron—a powerful desktop application that edits React Native apps. In this blog, I’ll walk you through the steps to integrate Reactotron with React Native and make the most of its powerful debugging features.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Reactotron?
&lt;/h2&gt;

&lt;p&gt;Reactotron is a desktop app by Infinite Red that provides a suite of tools for inspecting, logging, and interacting with your React Native application. It supports real-time logging, state inspection, API request monitoring, and more. Reactotron is like having a supercharged console.log at your fingertips but with way more capabilities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Use Reactotron?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Real-time event tracking&lt;/strong&gt;: Monitor actions, state changes, and API calls as they happen.&lt;br&gt;
&lt;strong&gt;Performance monitoring&lt;/strong&gt;: Track how long actions and renders take.&lt;br&gt;
&lt;strong&gt;State management&lt;/strong&gt;: Inspect and modify your app's state.&lt;br&gt;
&lt;strong&gt;Easy integration&lt;/strong&gt;: Simple setup process with minimal configuration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step-by-Step Integration
&lt;/h2&gt;

&lt;p&gt;Let's dive into the step-by-step process of integrating Reactotron into your React Native project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Install Reactotron React Native&lt;/strong&gt;&lt;br&gt;
First, you'll need to add Reactotron to your project. Open your terminal and navigate to your React Native project's root directory. Then, run the following command to install Reactotron and its React Native integration:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

yarn add reactotron-react-native -D


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Or if you prefer npm:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

npm i --save-dev reactotron-react-native


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Configure Reactotron&lt;/strong&gt;&lt;br&gt;
Next, you'll need to configure Reactotron in your project. Create a new file named &lt;code&gt;ReactotronConfig.js&lt;/code&gt; in your project’s &lt;em&gt;root&lt;/em&gt; directory. Add the following code to set up Reactotron:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import Reactotron from "reactotron-react-native";

Reactotron.configure() // controls connection &amp;amp; communication settings
  .useReactNative() // add all built-in react native plugins
  .connect(); // let's connect!


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Or connect to AsyncStorage if you are using that:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import Reactotron from 'reactotron-react-native';
import AsyncStorage from '@react-native-async-storage/async-storage';

Reactotron.setAsyncStorageHandler(AsyncStorage)
  .configure({
    name: 'Tirios',
  })
  .useReactNative({
    asyncStorage: false, // there are more options to the async storage
    networking: {
      // optionally, you can turn it off with false.
      ignoreUrls: /symbolicate/,
    },
    editor: false, // there are more options to editor
    errors: { veto: stackFrame =&amp;gt; false }, // or turn it off with false
    overlay: false, // just turning off overlay
  })
  .connect();


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Integrate Reactotron Configuration&lt;/strong&gt;&lt;br&gt;
You must ensure Reactotron configuration is imported and initialized when your app starts. Open your &lt;code&gt;index.js&lt;/code&gt; or &lt;code&gt;App.js&lt;/code&gt; (if you're using Expo) file and import your &lt;code&gt;ReactotronConfig.js&lt;/code&gt; at the very top:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

if (__DEV__) {
  require('./ReactotronConfig');
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This will initialize Reactotron when your app starts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Start Reactotron&lt;/strong&gt;&lt;br&gt;
Download and install the Reactotron desktop application from the &lt;a href="https://github.com/infinitered/reactotron/releases?q=reactotron-app&amp;amp;expanded=true" rel="noopener noreferrer"&gt;Reactotron releases page&lt;/a&gt;. Open the app, and you'll see a dashboard ready to connect to your React Native app.&lt;/p&gt;

&lt;p&gt;Step 5: Use Reactotron in Your Project&lt;br&gt;
Now that Reactotron is configured, you can start using it in your project. &lt;/p&gt;

&lt;p&gt;Refresh your app (or start it up &lt;code&gt;react-native start&lt;/code&gt;) and have a look at Reactotron now. Do you see the &lt;code&gt;CONNECTION&lt;/code&gt; line? Click that to expand.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F31o066cd3up5h1u104l8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F31o066cd3up5h1u104l8.png" alt="We Have Contact"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Troubleshooting
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Android:&lt;/strong&gt; If you are using an Android device or an emulator run the following command to make sure it can connect to Reactotron:&lt;/p&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&lt;p&gt;adb reverse tcp:9090 tcp:9090&lt;/p&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Conclusion&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;Integrating Reactotron into your React Native project is a straightforward process, and the benefits it brings to your development workflow are immense. So, give it a try, and take your React Native debugging to the next level!&lt;/p&gt;

&lt;p&gt;Happy debugging! &lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>debug</category>
      <category>reactotron</category>
    </item>
  </channel>
</rss>
