CVE‑۲۰۲۴‑۴۰۴۵۳ یک آسیبپذیری تزریق کد در Squirrelly v9.0.0 است که امکان اجرای RCE را بدون نیاز به تعامل کاربر فراهم میکند. نسخه ۹.۱.۰ این کتابخانه منتشر شده و توصیه میشود تمامی کاربران Node.js فورا نسخه خود را ارتقا دهند.
Squirrelly، یک موتور قالبسازی سبک برای Node.js، در نسخه ۹.۰.۰ دارای نقصی بود که از طریق پارامتر options.varName
رخ میداد. این پارامتر بدون هیچ محدودیتی مستقیماً وارد سازنده تابع (Function
) میشود و امکان تزریق کد جاوااسکریپت را فراهم میآورد، حتی بدون تعامل یا مجوز خاص .
با تحلیل دقیق کد، مشخص شد که در تابع compileString
، env.varName
مستقیماً بهعنوان پارامتر در new Function(...)
قرار میگیرد. این موضوع به مهاجم اجازه میدهد بدون معرفی پارامتر معتبر، با استفاده از قابلیت destructuring جاوا اسکریپت، اجرای کد مخرب را درون بدنه تابع پنهان کند.
مهاجمان میتوانند با ارسال مقدار خطرناک به options.varName
، مثلاً شامل console.log("x")
یا کد پیچیدهتر، از دیوار حفاظتی عبور کنند و دسترسی کامل به سرور داشته باشند. exploit اولیه از samuzora.com منتشر شد و تحلیلگران وصله را در نسخه ۹.۱.۰ ارائه کردند.
تمام پایگاههای داده آسیبپذیری معتبر، از جمله NVD و GitHub Advisory، نمره CVSS برابر ۹.۸ را برای این نقص ثبت کردهاند و آن را بحرانی ارزیابی کردهاند. توصیه میشود بهمحض امکان پروژهها به نسخه ۹.۱.۰ یا بالاتر بهروزرسانی شوند .
علاوه بر بهروزرسانی، آزمایش دقیق پارامترهای ورودی و محدودسازی ارزش پارامتر varName
ضروری است. ابزارهای اسکن شناختهشده مانند Tenable و INCIBE نیز این آسیبپذیری را بهصورت بحرانی میشناسند
دیدگاهتان را بنویسید