کشف آسیب‌پذیری در چارچوب NodeJS

کشف آسیب‌پذیری در چارچوب NodeJS

تاریخ ایجاد

Nest فریم‌ورکی برای ساخت برنامه‌های سمت سرور مقیاس‌پذیر با استفاده از Node.js است. در نسخه‌های 0.2.0 و قبل از آن، یک آسیب‌پذیری بحرانی از نوع اجرای کد از راه دور در بسته‌ی @nestjs/devtools-integration کشف شد.
وقتی این بسته فعال باشد، یک سرور HTTP محلی برای توسعه ایجاد می‌کند که دارای یک نقطه دسترسی است و از یک محیط ایزوله‌ی جاوااسکریپت شبیه safe-eval استفاده می‌کند. به دلیل ایزوله‌سازی نادرست و نبود حفاظت‌های لازم در برابر درخواست‌های بین‌مبدأ (CORS)، هر وب‌سایت مخربی که توسط توسعه‌دهنده بازدید شود، می‌تواند کد دلخواهی را روی سیستم محلی او اجرا کند.

این بسته نقاط دسترسی HTTP را به سرور در حال اجرای NestJS اضافه می‌کند. یکی از این نقاط دسترسی، یعنی inspector/graph/interact/، ورودی JSON را که شامل فیلدی به نام code است، می‌پذیرد و آن را در یک محیط ایزوله vm.runInNewContext در Node.js اجرا می‌کند.

قرار دادن وب‌سایت مخرب در فرم HTML:

pic1

وقتی توسعه‌دهنده از صفحه بازدید کرده و فرم را ارسال می‌کند، سرور devtools محلی NestJS کد تزریق‌شده را اجرا می‌کند؛ در این مثال، برنامه‌ی Calculator در macOS اجرا می‌شود.

به‌طور جایگزین، همین پیلود می‌تواند از طریق یک درخواست XHR ساده با نوع محتوای text/plain نیز ارسال شود.

pic2

 

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

  • نسخه‌های 0.2.0 و قبل از آن

 

توصیه‌های امنیتی

  • به کاربران توصیه می‌شود در صورت استفاده از این چارچوب، آن را به نسخه‌ی 0.2.1 به‌روزرسانی نمایند.

 

منابع خبر:

[1]https://nvd.nist.gov/vuln/detail/CVE-2025-54782

[2]https://github.com/nestjs/nest/security/advisories/GHSA-85cg-cmq5-qjm7