در نسخههای پیش از 0.40.8 از ابزار nvm (Node Version Manager)، یک نقص امنیتی در نحوه مدیریت نام فایلها و Aliasها شناسایی شده است که منجر به بروز آسیبپذیری Path Traversal میشود.
تحلیل فنی نقص امنیتی
این مشکل در تابع nvm_alias() ریشه دارد. در نسخههای آسیبپذیر، این تابع هنگام جستجو برای یک نسخه یا Alias در مسیر $NVM_DIR/alias، ورودی کاربر را بدون بررسیهای لازم (Containment Check) به مسیر دایرکتوری متصل میکرد. این امر به مهاجم اجازه میدهد تا با استفاده از توالیهای .. (Dot-Dot-Slash)، از محدوده دایرکتوری Alias خارج شده و به فایلهای دیگر در سیستم دسترسی پیدا کند.
تاثیر و پیامدها
به عنوان مثال، در چیدمان پیشفرض، یک Alias مانند ../../.npmrc میتواند منجر به خواندن فایل پیکربندی .npmrc در دایرکتوری Home کاربر شود. در ادامه، تابع nvm_print_alias_file() تمامی خطوط غیرخالی و غیرکامنت فایل باز شده را نمایش میدهد که میتواند منجر به افشای اطلاعات حساس (Information Disclosure) شود.
راهکار اصلاحی
برای رفع این مشکل، توصیه میشود تمامی کاربران nvm سریعاً به نسخه 0.40.8 یا نسخههای جدیدتر بهروزرسانی کنند تا مکانیزمهای کنترل مسیر در توابع مربوطه فعال گردند.