کمیته رکن چهارم – کد اثبات مفهوم یک آسیبپذیری اجرای کد از راه دور در کتابخانه پرکاربرد protobuf.js منتشر شده است. این نقص میتواند سرورهای Node.js را در معرض اجرای کد مخرب قرار دهد.

به گزارش کمیته رکن چهارم، این آسیبپذیری که با شناسه GHSA-xq3m-2v4x-88gg ثبت شده، ناشی از تولید ناامن کد پویا در این کتابخانه است. در این روش، کتابخانه با استفاده از دادههای schema اقدام به ساخت توابع JavaScript میکند، اما در فرآیند تولید این کد، اعتبارسنجی کافی روی ورودیها انجام نمیشود. در نتیجه، مهاجمان میتوانند با طراحی schemaهای دستکاریشده، کد دلخواه خود را در ساختار توابع تزریق کرده و هنگام پردازش دادهها آن را اجرا کنند.
این نقص امنیتی میتواند منجر به دسترسی غیرمجاز به منابع حساس از جمله متغیرهای محیطی، اطلاعات احراز هویت و پایگاههای داده شود. همچنین در برخی سناریوها امکان گسترش دسترسی در زیرساختهای شبکه نیز وجود دارد. با توجه به استفاده گسترده این کتابخانه در پروژههای مختلف، خطر بالقوه این آسیبپذیری قابل توجه ارزیابی شده است.
نسخههای قدیمی این کتابخانه تحت تأثیر قرار دارند و توسعهدهندگان نسخههای جدیدی را برای رفع مشکل منتشر کردهاند. در اصلاح انجامشده، تلاش شده با محدودسازی کاراکترهای ورودی، از تزریق کد جلوگیری شود، هرچند کارشناسان معتقدند حذف کامل روشهای تولید کد پویا راهکار ایمنتری خواهد بود.
پیشینه
کتابخانه protobuf.js یکی از ابزارهای رایج برای پیادهسازی Protocol Buffers در محیط JavaScript است و در بسیاری از سامانههای مبتنی بر Node.js برای تبادل داده بین سرویسها استفاده میشود. در سالهای اخیر، آسیبپذیریهای مرتبط با تولید کد پویا و استفاده از توابعی مانند Function() بهعنوان یکی از چالشهای امنیتی مهم در توسعه نرمافزار مطرح شدهاند.
منبع: BleepingComputer
