خانه » CVE-2025-55182

CVE-2025-55182

React Server Components Pre-Authentication Remote Code Execution via Unsafe Deserialization in react-server-dom-parcel and Related Packages

توسط Vulnerbyte Alerts
240 بازدید
هشدار سایبری CVE-2025-55182

چکیده

آسیب‌پذیری بحرانی اجرای کد از راه دور بدون نیاز به احراز هویت در کامپوننت های React Server نسخه‌های 19.0.0 تا 19.2.0 شناسایی شده است. این ضعف به دلیل سریال‌زدایی ناامن پیلودهای ارسال‌شده به اندپوینت‌های Server Function ایجاد می‌شود و به مهاجم اجازه می‌دهد با ارسال یک درخواست HTTP ساختگی، بدون نیاز به احراز هویت یا تعامل کاربر، کد دلخواه خود را روی سرور اجرا کند.

توضیحات

آسیب‌پذیری CVE-2025-55182 یک ضعف بحرانی در کامپوننت های React Server نسخه‌های 19.0.0 تا 19.2.0 و بسته‌های وابسته شامل react-server-dom-parcel، react-server-dom-turbopack و react-server-dom-webpack است که امکان اجرای کد از راه دور بدون نیاز به احراز هویت را فراهم می‌کند. این ضعف ناشی از سریال‌زدایی ناامن پیلودهای ارسال‌شده از طریق درخواست‌های HTTP به اندپوینت‌های Server Function است. در این نسخه‌ها، داده‌های ورودی بدون اعتبارسنجی صحیح پردازش می‌شوند و مهاجم می‌تواند با ارسال پیلودهای مخرب، جریان اجرای سرور را کنترل کند.

در معماری React Server Function، کلاینت می‌تواند مقادیر و دستورات را در قالب chunks به سرور ارسال کند تا توابع سرور اجرا شوند. آسیب‌پذیری زمانی رخ می‌دهد که فرآیند سریال‌زدایی این داده‌ها بررسی لازم روی پروتوتایپ‌ها و ارجاعات داخلی انجام نمی‌دهد. این ضعف به مهاجم اجازه می‌دهد ارجاعات را دستکاری کرده و به Function constructor دسترسی یابد و در نتیجه کد دلخواه خود را روی سرور اجرا کند. مهم‌تر اینکه این حمله بدون احراز هویت و بدون تعامل کاربر قابل انجام است و از طریق هر اندپوینت فعال Server Function قابل بهره‌برداری می‌باشد.

نمونه‌های کد اثبات مفهومی (PoC) منتشر شده‌‌اندکه نشان می‌دهند چگونه می‌توان با تزریق پیلودهای JSON ویژه و دستکاری فیلدهای then و _response، توابع سرور را فراخوانی و کد دلخواه اجرا کرد. این نمونه‌ها توضیح می‌دهند که آسیب‌پذیری دقیقاً در هنگام سریال‌زدایی و قبل از هرگونه اعتبارسنجی واقعی رخ می‌دهد و به همین دلیل می‌تواند بدون هیچ محدودیت اولیه یا احراز هویتی بهره‌برداری شود. همچنین برای این آسیب پذیری بهره برداری فعال گزارش شده و در فهرست KEV سازمان CISA ثبت شده است.

پیامدهای این آسیب‌پذیری بسیار جدی هستند. مهاجم می‌تواند با اجرای کد دلخواه روی سرور، کنترل کامل سیستم را به دست آورد، به داده‌های حساس دسترسی پیدا کند، فایل‌ها را تغییر دهد یا سرویس را مختل نماید. تیم React این آسیب پذیری را در نسخه های 19.0.1، 19.1.2 و 19.2.1 به طور کامل پچ کرده است. هر محیطی که ازکامپوننت های React Server استفاده می‌کند، باید فوراً نسخه‌های پچ‌شده را نصب کنند. حتی اگر اپلیکیشن مستقیماً از سرور یا اندپوینت‌های Server Function استفاده نکند، صرف فعال بودن پشتیبانی از React Server Components می‌تواند باعث بروز این آسیب‌پذیری شود.

CVSS

Score Severity Version Vector String
10.0 CRITICAL 3.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

لیست محصولات آسیب پذیر

Versions Product
affected from 19.0.0 through 19.2.0 react-server-dom-webpack
affected from 19.0.0 through 19.2.0 react-server-dom-turbopack
affected from 19.0.0 through 19.2.0 react-server-dom-parcel

لیست محصولات بروز شده

Versions Product
19.0.1, 19.1.2, 19.2.1 react-server-dom-webpack
19.0.1, 19.1.2, 19.2.1 react-server-dom-turbopack
19.0.1, 19.1.2, 19.2.1 react-server-dom-parcel

استفاده محصول در ایران

در این جدول، تعداد صفحات ایندکس‌شده در گوگل با دامنه .ir که Meta React را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.

Approx. Usage in .ir Domain via Google

(Total Pages)

Search Query (Dork) Product
113,000 site:.ir “Meta” “React” Meta React

نتیجه گیری

این آسیب‌پذیری با شدت بحرانی در کامپوننت‌های React Server ناشی از سریال‌زدایی ناامن است و به مهاجم اجازه می‌دهد بدون نیاز به احراز هویت، از طریق درخواست‌های HTTP، کد از راه دور (RCE) اجرا کند. مهاجم با ارسال پیلودهای دستکاری‌شده می‌تواند به ساختارهای داخلی سریال‌زدایی دسترسی پیدا کند و از طریق Server Function کد دلخواه را روی سرور اجرا کند؛ موضوعی که کنترل کامل سیستم را در اختیار او قرار می‌دهد. با توجه به انتشار پچ رسمی تیم React، اجرای فوری اقدامات زیر برای رفع آسیب‌پذیری و کاهش ریسک ضروری است:

  • به‌روزرسانی فوری: نسخه‌های React Server و بسته‌های وابسته مانند react-server-dom-webpack، react-server-dom-parcel و react-server-dom-turbopack را به نسخه‌های 19.0.1، 19.1.2 یا 19.2.1 ارتقا دهید. این اقدام، مؤثرترین و قطعی‌ترین راهکار برای رفع آسیب‌پذیری است و باید در اولویت قرار گیرد. سایر اقدامات نقش مکمل را دارند و می‌توانند به کاهش ریسک این آسیب پذیری و مقابله با حملات مشابه کمک کنند.
  • اعتبارسنجی ورودی‌ها: تمامی درخواست‌های ارسال‌شده به اندپوینت‌های Server Function را بررسی و ساختار JSON و فیلدهای حساس مانند then و _response را محدود کنید.
  • ایزوله‌سازی محیط اجرا (Sandboxing): کدهای سرور را در محیط‌های ایزوله مانند Docker یا Firecracker VM اجرا کنید تا اجرای کد مخرب نتواند به کل سیستم آسیب بزند.
  • استفاده از فایروال اپلیکیشن وب (WAF): با استفاده از فایروال‌هایی مانند Cloudflare WAF یا ModSecurity، الگوهای غیرعادی JSON و درخواست‌های غیرمنتظره به مسیرهای Server Function را مسدود کنید.
  • نظارت امنیتی: از ابزارهای SIEM (مانند Splunk یا Elastic Security) برای تشخیص عملکردهای غیرعادی سرور، اجرای کد غیرمجاز و فراخوانی‌های مشکوک Server Function استفاده کنید.
  • تست امنیتی و Fuzzing: اندپوینت‌های React Server را با ابزارهایی مانند Burp Suite Intruder یا OWASP ZAP تست کنید و با Fuzzing، عملکرد سریال‌زدایی را بررسی نمایید.

اجرای این اقدامات، به‌ویژه به‌روزرسانی فوری و ایزوله‌سازی محیط اجرای سرور، ریسک بهره‌برداری از این آسیب‌پذیری را به حداقل می‌رساند و از اجرای کد غیرمجاز در سیستم جلوگیری می‌کند.

امکان استفاده در تاکتیک های Mitre Attack

Initial Access (TA0001)

مهاجم از هر اندپوینت فعال Server Function که به‌صورت عمومی در دسترس است بهره‌برداری می‌کند و بدون نیاز به احراز هویت، پیلودهای crafted را ارسال می‌نماید. نقطه ورود صرفاً یک درخواست HTTP معتبر است که در لایه سریال‌زدایی پردازش می‌شود.

Execution (TA0002)

در مرحله سریال‌زدایی، مهاجم با دستکاری ساختار داخلی JSON شامل فیلدهای حساس مانند then و _response باعث دستیابی جریان پردازش به Function constructor می‌شود. این مسیر اجرای بلاواسطه کد مهاجم را در محیط سرور فراهم می‌کند و عملاً RCE کامل قبل از هرگونه اعتبارسنجی رخ می‌دهد.

Privilege Escalation (TA0004)

به‌دلیل اینکه Server Functions با سطح دسترسی فرآیند NodeJS یا runtime اجرا می‌شوند، اجرای کد تزریق‌شده اغلب معادل دسترسی سطح اپلیکیشن یا حتی سیستم‌عامل است. مهاجم می‌تواند با استفاده از همین سطح اجرا، به دسترسی‌های بالاتر از حد انتظار توسعه‌دهنده برسد.

Defense Evasion (TA0005)

پیلودهای مخرب از مسیرهای معمول WAF و signature-based detection عبور می‌کنند زیرا رفتارشان مشابه یک درخواست JSON استاندارد است. مهاجم نیازی به بای‌پس پیچیده ندارد؛ exploit در قلب deserializer رخ می‌دهد و قبل از هر لایه کنترل امنیتی اجرا می‌شود.

Credential Access (TA0006)

در سناریوهای پس از RCE، مهاجم با اسکریپت‌های اجراشده روی سرور می‌تواند متغیرهای محیطی tokens, secrets، فایل‌های پیکربندی و credential های ذخیره‌شده در مسیرهای NodeJS runtime را استخراج کند.

Discovery (TA0007)

مهاجم پس از تثبیت RCE، با اجرای اسکریپت‌های ساده NodeJS یا دستورات سیستم‌عامل، ساختار فایل، سرویس‌ها، نسخه runtime، مسیرهای build و معماری پروژه را شناسایی می‌کند تا مسیر حرکت جانبی یا استخراج داده را برنامه‌ریزی کند.

Lateral Movement (TA0008)

در محیط‌هایی که React Server روی کانتینر یا VM بدون ایزولاسیون سخت اجرا می‌شود، مهاجم می‌تواند از طریق کانکشن‌های داخلی، شبکه سرویس‌ها، یا دسترسی به backend APIs حرکت جانبی انجام دهد و به سرویس‌های دیگر دسترسی پیدا کند.

Exfiltration (TA0010)

مهاجم می‌تواند داده‌های جمع‌آوری‌شده را از طریق HTTP POST، DNS tunneling یا هر کانال خروجی موجود در فرآیند NodeJS به خارج ارسال کند. محیط‌های بدون egress filtering بیشترین ریسک را دارند.

Impact (TA0040)

اجرای کد دلخواه امکان تخریب فایل‌ها، تغییر محتوای برنامه، تزریق backdoor، ایجاد persistent access و توقف سرویس را فراهم می‌کند. مهاجم می‌تواند برنامه را در سطح زیرساخت مختل کند یا به آن تسلط کامل پیدا نماید.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-55182
  2. https://www.cvedetails.com/cve/CVE-2025-55182/
  3. https://www.facebook.com/security/advisories/cve-2025-55182
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-55182
  5. https://vuldb.com/?id.334172
  6. https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
  7. http://www.openwall.com/lists/oss-security/2025/12/03/4
  8. https://news.ycombinator.com/item?id=46136026
  9. https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2025-55182
  10. https://github.com/msanft/CVE-2025-55182
  11. http://cwe.mitre.org/data/definitions/502.html

همچنین ممکن است دوست داشته باشید

پیام بگذارید