حفره امنیتی بحرانی در پکیجهای npm “@adonisjs/bodyparser” و jsPDF کاربران را به آپدیت فوری فرا میخواند
در هفته گذشته، تیم توسعهدهنده پکیج “@adonisjs/bodyparser”، وابسته به فریمورک Node.js و AdonisJS، کاربران را به فوریت بهروزرسانی این کتابخانه فراخواند. این هشدار پس از افشای یک آسیبپذیری بحرانی منتشر شد که میتواند در صورت سوءاستفاده موفق، مهاجم را قادر سازد فایلهایی را خارج از مسیرهای مجاز روی سرور ایجاد یا بازنویسی کند.
این آسیبپذیری با شناسه CVE-2026-21440 و نمره بحرانی ۹.۲ در سیستم امتیازدهی CVSS ثبت شده است. کارشناسان امنیت سایبری آن را به عنوان یک مشکل مسیرپیمایی (Path Traversal) توصیف کردهاند که مکانیسم پردازش فایل چندبخشی (Multipart) در “@adonisjs/bodyparser” را تحت تاثیر قرار میدهد.
جزئیات فنی آسیبپذیری
پکیج “@adonisjs/bodyparser” برای پردازش بدنه درخواستهای HTTP در فریمورک AdonisJS طراحی شده است. هسته مشکل، در تابع MultipartFile.move(location, options) قرار دارد. این تابع امکان انتقال فایل آپلود شده به مسیر مشخص شده را فراهم میکند و پارامتر options شامل نام فایل و یک فلگ overwrite است که تعیین میکند آیا فایل مقصد در صورت وجود بازنویسی شود یا خیر.
در شرایط عادی، اگر پارامتر نام فایل به صورت صریح وارد نشود، برنامه از نام فایل ارائه شده توسط کلاینت بدون هیچگونه تصفیه یا پاکسازی استفاده میکند. این رفتار، در ترکیب با مسیرپیمایی، مهاجم را قادر میسازد فایلهای دلخواه را در مکانهای خارج از مسیر آپلود استاندارد قرار دهد. اگر فلگ overwrite فعال باشد، امکان بازنویسی فایلهای حساس سیستم یا برنامه نیز وجود دارد.
توسعهدهندگان AdonisJS در توصیهنامهای رسمی بیان کردهاند: «اگر مهاجم بتواند فایلهای کد برنامه، اسکریپتهای راهاندازی یا فایلهای پیکربندی که بعداً بارگذاری یا اجرا میشوند را بازنویسی کند، امکان اجرای کد از راه دور (RCE) فراهم میشود.» با این حال، آنها تاکید کردهاند که موفقیت در اجرای RCE به مجوزهای سیستم فایل، معماری استقرار و رفتار برنامه/محیط اجرایی وابسته است و تضمینی برای موفقیت کامل وجود ندارد.
این آسیبپذیری توسط Hunter Wodzenski (@wodzen) شناسایی و گزارش شده است و نسخههای زیر را تحت تاثیر قرار میدهد:
-
نسخههای <= 10.1.1 (رفع شده در نسخه 10.1.2)
-
نسخههای <= 11.0.0-next.5 (رفع شده در نسخه 11.0.0-next.6)
آسیبپذیری مشابه در jsPDF
همزمان با انتشار این خبر، یک آسیبپذیری مسیرپیمایی دیگر در کتابخانه jsPDF نیز فاش شد. این مشکل با شناسه CVE-2025-68428 و نمره CVSS 9.2 ثبت شده و میتواند به مهاجم امکان دهد مسیرهای فایل را بدون تصفیه عبور دهد و محتویات فایلهای دلخواه را از سیستم محلی دریافت کند. این مشکل تنها در نسخههای Node.js کتابخانه، به ویژه فایلهای dist/jspdf.node.js و dist/jspdf.node.min.js وجود دارد و نسخه ۴.۰.۰ jsPDF که در ۳ ژانویه ۲۰۲۶ منتشر شد، این آسیبپذیری را رفع کرده است.
توسعهدهندگان jsPDF، موسسه Parallax، توصیه میکنند برای کاهش خطرات احتمالی از گزینه --permission برای محدود کردن دسترسی به سیستم فایل استفاده شود. پژوهشگر Kwangwoon Kim نیز بابت شناسایی این باگ مورد قدردانی قرار گرفته است.
پیامدهای امنیتی و مخاطرات
اگر مهاجم بتواند از آسیبپذیری “@adonisjs/bodyparser” سوءاستفاده کند، تهدیدات بالقوه شامل بازنویسی فایلهای اجرایی، تزریق کد و اجرای دستورات مخرب روی سرور است. در سناریوی بدبینانه، مهاجم میتواند کنترل جزئی یا کامل سرور را به دست گیرد. این خطر خصوصاً برای توسعهدهندگان API و وبسرویسهایی که به صورت عمومی قابل دسترسی هستند، جدی است.
در مورد jsPDF، مشکل کمتر به اجرای کد مستقیم مربوط میشود اما امکان استخراج اطلاعات حساس سیستم محلی وجود دارد. این مسئله میتواند برای توسعهدهندگان و سازمانهایی که فایلهای مهم را در مسیرهای محلی نگهداری میکنند، تهدیدی جدی محسوب شود.
توصیههای امنیتی
در این گزارش خبری در کارینا سکیوریتی، به توسعهدهندگان توصیه میشود:
-
هرچه سریعتر نسخههای آسیبپذیر “@adonisjs/bodyparser” و jsPDF را به آخرین نسخههای منتشر شده بهروزرسانی کنند.
-
در پروژههای AdonisJS، هنگام استفاده از
MultipartFile.move()همواره پارامتر نام فایل را صریح و پس از تصفیه مناسب تعیین کنند. -
دسترسیهای سیستم فایل را به حداقل ممکن محدود کرده و مسیرهای حساس را از مسیر آپلود جدا کنند.
-
در مورد jsPDF، از نسخه Node.js تصحیح شده استفاده کرده و در صورت نیاز، محدودیت دسترسی به فایل سیستم را از طریق گزینه
--permissionاعمال کنند. -
همیشه نقاط ورودی فایل را بررسی و تصفیه کنند و نظارت بر فعالیتهای مشکوک سرور را افزایش دهند.
جمعبندی
با توجه به گستردگی استفاده از پکیجهای npm در پروژههای مدرن وب و API، آسیبپذیریهایی مانند CVE-2026-21440 و CVE-2025-68428 نه تنها تهدیدی برای امنیت سرورهای فردی هستند، بلکه میتوانند زنجیره تأمین نرمافزار را به شدت تحت تاثیر قرار دهند. مهاجمانی که به این نقاط ضعف دسترسی پیدا کنند، میتوانند از طریق ترکیب نقاط آسیبپذیر، کنترل برنامهها و سرویسهای متصل را به دست گرفته و در مقیاس وسیعتری به دادههای حساس دسترسی پیدا کنند. این امر نشان میدهد که رعایت اصول امنیتی در سطح کتابخانهها و بستههای شخص ثالث، همعرض با پیادهسازی امنیت در کدهای اصلی پروژه، اهمیت حیاتی دارد و توسعهدهندگان نمیتوانند به صرف اعتماد به پکیجهای محبوب، امنیت پروژه را تضمین کنند. در نهایت، آموزش مستمر تیمهای توسعه و نظارت دقیق بر نسخههای بهروز شده کتابخانهها، تنها راه کاهش ریسکهای اینچنینی در پروژههای Node.js و AdonisJS است.
در نهایت، این گزارش خبری در کارینا سکیوریتی بر ضرورت بهروزرسانی فوری و اعمال بهترین شیوههای امنیتی برای توسعهدهندگان Node.js و AdonisJS تاکید دارد تا از سوءاستفاده احتمالی جلوگیری شود. رعایت این اقدامات میتواند از فاجعههای امنیتی احتمالی، سرقت دادهها و آسیب به سرویسهای آنلاین جلوگیری کند و اعتماد کاربران را حفظ نماید.
منبع: thehackernews.com