FlawOpen

flawopen.com/Teardowns/cve-2025-55182-react-server-components-rce

● CVE-2025-55182 · CVSS 10.0[1] · अति गंभीर
सुरक्षा अनुसंधान · FlawOpen

CVE-2025-55182: React2Shell RSC में रिमोट कोड निष्पादन

CVE-2025-55182, React Server Components (RSC) payload decoding में unauthenticated remote code execution है। React ने decoder flaw की पुष्टि की; Google Threat Intelligence ने downloader, backdoor और miner campaigns दर्ज किए।[1], [4], [5]

💡 आसान भाषा में (ELI5)

स्वीकृत सेवाओं की सूची जाँचने वाले रिसेप्शनिस्ट की कल्पना करें। गलत lookup सूची के template से विरासत में मिले नाम को ऐसे मानता है मानो सूची के मालिक ने उसे दर्ज किया हो। React का patch जाँचता है कि माँगा गया module export उसी module की अपनी entry है; सार्वजनिक advisory पूरा exploit क्रम नहीं बताती। प्रभावित packages को upgrade करें।[1]

इस पेज के मुख्य शब्द

React Server Components (RSC)
React Server Components: server rendering और Flight data exchange के लिए React protocol और packages.[1]

फ्रेमवर्क मैपिंग

मूल कारण विश्लेषण (Root Cause)

React ने React Server Function endpoints के payload decode में flaw की पुष्टि की; केवल RSC support भी app को प्रभावित कर सकता था। शुरुआती advisory ने अधिक exploit detail रोकी। Public upstream patch requireModule() में own-property check जोड़ता और multipart errors संभालता है। यह ठोस सुधार है, पूरी vulnerability या chain का reproduction नहीं।[1], [2]

React2Shell के प्रभावित versions और deployment का दायरा

घटक या deploymentदायरे का आकलनसुधार की कार्रवाई
react-server-dom-webpack, react-server-dom-parcel, या react-server-dom-turbopack के 19.0, 19.1.0, 19.1.1, या 19.2.0 versions.Server-side RSC support किसी app को प्रभावित कर सकता है, भले ही उसमें Server Function endpoint घोषित न हो; server boundary तक पहुँचना संभव होना चाहिए।लागू package line को 19.0.1, 19.1.2, या 19.2.1 या बाद के संस्करण पर upgrade करें। Server artifact फिर से build और deploy करें।
प्रभावित 15.x/16.x releases या 14.3.0-canary.77 और बाद के canaries पर Next.js App Router.प्रभावित framework integrations में कमजोर RSC packages शामिल हैं। App द्वारा अपना Server Function endpoint घोषित न करने को सुरक्षा का प्रमाण न मानें।संबंधित patched line का उपयोग करें: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, या 16.0.7 या बाद का संस्करण। ये उद्धृत advisory में दर्ज न्यूनतम releases हैं; rollout से पहले vendor की वर्तमान branch जाँचें।
ऐसा client-only React app जिसमें server-side RSC support नहीं है।CVE के दर्ज दायरे से बाहर, क्योंकि इसमें server decoder boundary नहीं है।इस configuration को React2Shell server patch की आवश्यकता नहीं है। RSC या server components जुड़ें तो scope फिर जाँचें।
Deployment को patched बताया गया है।Manifest version यह साबित नहीं करता कि हर running region, preview service, worker या container fixed artifact चला रहा है।Production, preview और worker environments में image digests और resolved package versions सत्यापित करें; किसी पुराने exposed interval की जाँच करें।
React के 2026-01-26 अपडेट में Next.js शाखा-वार संस्करण मार्गदर्शनReact के बाद के निर्देशों में नए सुरक्षा संस्करण शामिल हैं; ये CVE-2025-66478 को पहली बार ठीक करने वाले न्यूनतम संस्करण नहीं हैं। संबंधित RSC advisories और समर्थित शाखाएँ upgrade लक्ष्य बदल सकती हैं।संबंधित RSC advisories CVE-2025-55183, CVE-2025-55184, CVE-2025-67779 और CVE-2026-23864 के लिए React ने 19.0.4, 19.1.5 और 19.2.4 को patched versions बताया। 2026-01-26 की Next.js सलाह थी: स्थिर 13.3.x–14.x के लिए 14.2.35; 15.0.x के लिए 15.0.8; 15.1.x के लिए 15.1.12; 15.2.x के लिए 15.2.9; 15.3.x के लिए 15.3.9; 15.4.x के लिए 15.4.11; 15.5.x के लिए 15.5.10; 16.0.x के लिए 16.0.11; और 16.1.x के लिए 16.1.5। यह संबंधित समस्याओं के लिए बाद का मार्गदर्शन है, CVE-2025-66478 ठीक करने वाले Next.js के न्यूनतम संस्करण नहीं। deployment से पहले नवीनतम vendor advisory और समर्थित branch जाँचें।
CVE-2026-23869 — RSC सेवा-अस्वीकार (2026-04-08)।React के अनुसार Server Function endpoints पर भेजे गए विशेष रूप से बनाए गए HTTP अनुरोध एक मिनट तक अत्यधिक CPU उपयोग कर सकते हैं, जिसके बाद पकड़ी जा सकने वाली त्रुटि आती है। प्रभावित react-server-dom-* पैकेज शाखाएँ 19.0.4, 19.1.5 और 19.2.4 तक हैं।React ने क्रमशः 19.0.5, 19.1.6 और 19.2.5 को ठीक किया हुआ बताया है।
CVE-2026-23870 — RSC सेवा-अस्वीकार (2026-05-06)।React के अनुसार विशेष रूप से बनाए गए HTTP अनुरोध memory से जुड़ी त्रुटियाँ या अत्यधिक CPU उपयोग करा सकते हैं। प्रभावित react-server-dom-* पैकेज शाखाएँ 19.0.5, 19.1.6 और 19.2.5 तक हैं।React ने क्रमशः 19.0.6, 19.1.7 और 19.2.6 को ठीक किया हुआ बताया है।
CVE-2026-44907 — Server Functions सेवा-अस्वीकार (2026-07-21)।React के अनुसार विशेष रूप से बनाए गए HTTP अनुरोध memory से जुड़ी त्रुटियाँ या अत्यधिक CPU उपयोग करा सकते हैं। प्रभावित react-server-dom-* पैकेज शाखाएँ 19.0.7, 19.1.8 और 19.2.7 तक हैं।React ने क्रमशः 19.0.8, 19.1.9 और 19.2.8 को ठीक किया हुआ बताया है।

हमले का चरण-दर-चरण प्रवाह

चरण 1

खुली RSC boundary unauthenticated request पाती है

React के अनुसार RSC support से app प्रभावित हो सकता था, भले अपना Server Function endpoint न हो। Server के बिना client-only apps इस CVE से प्रभावित नहीं हैं।[1], [4]

चरण 2

तैयार request vulnerable decoder तक पहुँचती है

Vendor इसे Server Function requests की असुरक्षित decoding बताता है। Advisory में पूरा exploit recipe नहीं है; undocumented mechanics का अनुमान न लगाएँ।[1], [2]

चरण 3

Code web process के अधिकार से चलता है

Advisory के अनुसार code प्रभावित server process के privileges से चलता है। असर account और reachable secrets व services पर निर्भर करता है।[1], [4]

चरण 4

Google GTIG ने tunneler, downloader, backdoor और miner campaigns देखे

GTIG ने tunneler, downloader, backdoor और miner campaigns देखे। यह वास्तविक exploitation की पुष्टि है, हर vulnerable host के compromise की नहीं।[5], [6]

सोर्स कोड: कमज़ोर बनाम सुरक्षित कार्यान्वयन

यह upstream patch अंश केवल module का अपना export लौटाता है; यह decoder flaw को पूरी तरह reproduce नहीं करता और अकेले fix भी नहीं है। प्रभावित React Server Components package या framework upgrade करें।[2], [1]

सोर्स अंश: React Parcel client का requireModule() method

कमज़ोर कार्यान्वयन
export function requireModule<T>(metadata: ClientReference<T>): T {
  const moduleExports = parcelRequire(metadata[ID /* module id */]);
  return moduleExports[metadata[NAME]];
}
सुरक्षित और सुदृढ़ फ़िक्स
export function requireModule<T>(metadata: ClientReference<T>): T {
  const moduleExports = parcelRequire(metadata[ID /* module id */]);
  if (hasOwnProperty.call(moduleExports, metadata[NAME])) {
    return moduleExports[metadata[NAME]];
  }
  return (undefined: any);
}

इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट

स्रोत