Patching is now a business decision: lessons from React2Shell

React2Shell was under attack about a day after disclosure. What it and 2026's Next.js advisories teach business owners about patching.
For a long time, software updates felt like housekeeping: worth doing, easy to postpone. That is no longer true for anything connected to the internet. Over the past year, critical flaws in some of the most popular web frameworks went from public announcement to active attacks in about a day. When the gap is that short, the decision to patch, and who is responsible for doing it, belongs on the business side of the table, not just in the IT backlog.
Here is what happened, explained without the jargon, and a simple routine that keeps a small business out of trouble.
React2Shell: a perfect 10, exploited in about a day
On December 3, 2025, the React team disclosed CVE-2025-55182, a flaw in React Server Components that became widely known as "React2Shell." React is one of the most widely used tools for building websites and web apps, and Server Components power many modern sites, including those built with Next.js.
The flaw allowed unauthenticated remote code execution. In plain terms: someone on the internet, with no account and no password, could send a crafted request and run their own commands on the server. It was rated CVSS 10.0, the maximum severity score. The React team also warned that apps could be vulnerable even if they did not use the specific feature involved, as long as they supported Server Components. Its advice was to upgrade immediately.
What happened next is the important part:
- AWS reported that groups it linked to China were already experimenting with exploit code on December 4, the day after disclosure.
- Security firm Wiz said its sensors saw victims being compromised starting at 6:00 AM UTC on December 5. It identified multiple cryptomining campaigns, in which attackers installed software that secretly uses the server's computing power to mine cryptocurrency.
- Wiz also saw attackers harvesting credentials from servers, including cloud access keys stored in environment variables.
- The US Cybersecurity and Infrastructure Security Agency (CISA) added the flaw to its Known Exploited Vulnerabilities catalog on December 5, 2025, and lists it as known to have been used in ransomware campaigns.
A cryptominer sounds like a nuisance rather than a disaster. It isn't. It means a stranger is running code on your server. Mining is often just the first, most profitable thing they do. The same access can expose customer data, passwords and API keys.

2026: a steady drumbeat of Next.js fixes
Next.js, a popular framework built on React, moved to a formal security release program in July 2026, with advance notice of releases roughly once a month. Its team noted that the volume of vulnerability research is rising fast, driven by AI-assisted discovery. The releases since then show why:
- August 25, 2026: Next.js 16.3.3 and 15.5.24 fixed two critical flaws. One (GHSA-2xp9-vwfh-vxw4) allowed unauthenticated remote code execution through the Image Optimization feature when it processed a malicious AVIF image. The root cause was in libheif, an image library that Next.js uses indirectly through another library called sharp. The patched versions simply switch off AVIF optimization until the upstream fix arrives. The second flaw affected Next.js servers running on Windows.
- September 22, 2026: an out-of-band update (16.3.6) fixed a critical remote code execution issue in the code that generates social sharing images, again rooted in upstream dependencies.
- September 30, 2026: the scheduled September release (16.3.8 and 15.5.27) fixed seven more issues, including server-side request forgery and cache poisoning. The Next.js team also said fixes for one more critical and one high-severity issue were postponed because of upstream dependency delays.
- October 8, 2026: Next.js announced another out-of-band update, planned for October 14, to fix three vulnerabilities in upstream dependencies: two critical and one high. Two of them are the fixes postponed from September.
Two lessons stand out for business owners.
First, the risk often lives in code you never chose. The August flaw was not in Next.js itself, but in an image library two layers down. Modern websites are built from many of these open-source building blocks, and you inherit their bugs.
Second, old versions may never be fixed. The August advisory lists affected versions going back to Next.js 10. Patches shipped for versions 15 and 16 only. Next.js's support policy lists version 14 and earlier as unsupported. If your site runs on one of those, "patching" means a real upgrade project, and the longer you wait, the bigger it gets.
What "end of life" means for your business
Every piece of software has a support window. When it ends, the maintainers stop shipping security fixes. The software keeps working, which is exactly why it is easy to ignore.
Node.js, the runtime underneath most JavaScript websites, is a good example. Node.js 20 reached end of life on April 30, 2026. Node.js 22 is supported until April 30, 2027, and Node.js 24 moves into its maintenance phase on October 20, 2026. The Node.js project's own guidance is that production applications should only use Active LTS or Maintenance LTS releases.
An end-of-life runtime is like an office building whose lock maker has gone out of business. The doors still close. Nobody is fixing the next flaw in the lock.
Three common traps
- One-click apps that never get updated. Installing a website, CMS or tool with one click on a server is easy. Updating it usually is not automatic. An app that was set up once and never touched again keeps running whatever version it shipped with, flaws included.
- Abandoned dependencies. A plugin or library that has not had a release in years will not get a fix when a flaw is found. Someone needs to notice and replace it.
- "It's behind a login, so it's fine." React2Shell and the August Next.js image flaw required no login at all. Anything reachable from the internet needs patching, even internal tools.

A simple maintenance routine
You don't need a security team to get the basics right. You need a routine and an owner.
- A monthly patch day. Pick a fixed day each month to apply updates to your website, server and plugins. Next.js now pre-announces its security releases roughly monthly, so a monthly rhythm lines up well.
- Same-day patching for critical flaws. When a critical, internet-facing flaw is announced, don't wait for patch day. React2Shell showed how little time there can be.
- Automated dependency scanning. Tools can check your project's building blocks against public vulnerability databases and alert you when something you use has a known flaw.
- Backups you have actually restored. Keep automatic backups stored away from the main server, and test a full restore at least every few months. A backup you have never restored is a hope, not a plan.
- Monitoring and alerts. Watch uptime, unusual CPU use (a classic sign of a cryptominer), and failed logins, and make sure alerts reach a person who will act.
- Multi-factor authentication everywhere. Turn on MFA for hosting, domain, email, code and admin accounts, so a stolen password alone is not enough to get in.
- Keep a simple inventory. Know what you run: which sites, which frameworks, which versions, which runtime, and when each reaches end of life.
What this means for you
Treat patching like insurance or bookkeeping: a recurring cost that protects the business. Decide who owns it, put patch day on the calendar, and budget for upgrades before software reaches end of life instead of after an incident. If you rely on an agency or freelancer, ask them directly: "Which framework and runtime versions are we on, and when were they last updated?"
If you'd rather not track advisories yourself, SEVA Systems offers managed hosting and maintenance with scheduled patching, monitoring and tested backups. Talk to us about keeping your site current.
Sources
- https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
- https://www.wiz.io/blog/critical-vulnerability-in-react-cve-2025-55182
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog
- https://nextjs.org/blog/next-security-release-program
- https://nextjs.org/blog/august-2026-security-release
- https://github.com/vercel/next.js/security/advisories/GHSA-2xp9-vwfh-vxw4
- https://nextjs.org/blog/nextjs-security-update-september-22-2026
- https://nextjs.org/blog/september-2026-security-release
- https://nextjs.org/blog/upcoming-nextjs-security-update-october-2026
- https://nextjs.org/support-policy
- https://nodejs.org/en/about/previous-releases
- https://github.com/nodejs/Release