آسیب‌پذیری در کتابخانه PharStreamWrapper که دروپال، جوملا و تایپو3 را تحت تأثیر قرار می‌دهد.

در کتابخانه PharStreamWrapper، که کنترل کننده هایی را برای محافظت در برابر فراهم می کند از حملات از طریق جایگزینی فایل در قالب "Phar"، شناخته شده است آسیب پذیری (CVE-2019-11831) که به شما امکان می دهد با جایگزین کردن کاراکترهای ".." در مسیر، حفاظت از سریال سازی کد را دور بزنید. به عنوان مثال، یک مهاجم می‌تواند از URL مانند «phar:///path/bad.phar/../good.phar» برای حمله استفاده کند، و کتابخانه نام پایه «/path/good.phar» را برجسته می‌کند. چک کردن، اگرچه در طول پردازش بیشتر چنین مسیری از فایل "/path/bad.phar" استفاده خواهد شد.

این کتابخانه توسط سازندگان CMS TYPO3 توسعه داده شده است، اما در پروژه های دروپال و جوملا نیز استفاده می شود، که آنها را نیز در معرض آسیب پذیری قرار می دهد. مشکل در نسخه ها رفع شد PharStreamWrapper 2.1.1 و 3.1.1. پروژه دروپال این مشکل را در به‌روزرسانی‌های 7.67، 8.6.16 و 8.7.1 برطرف کرد. در جوملا مشکل از نسخه 3.9.3 ظاهر می شود و در نسخه 3.9.6 برطرف شده است. برای رفع مشکل در TYPO3، باید کتابخانه PharStreamWapper را به روز کنید.

از جنبه عملی، یک آسیب‌پذیری در PharStreamWapper به کاربر Drupal Core با مجوزهای «Administer theme» اجازه می‌دهد تا یک فایل Phar مخرب را آپلود کند و باعث شود کد PHP موجود در آن تحت پوشش یک بایگانی قانونی phar اجرا شود. به یاد بیاورید که ماهیت حمله "Phar deserialization" این است که هنگام بررسی فایل های راهنمای بارگذاری شده تابع PHP file_exists()، این تابع هنگام پردازش مسیرهایی که با "phar://" شروع می شوند، به طور خودکار ابرداده ها را از فایل های Phar (آرشیو PHP) deserialize می کند. . انتقال یک فایل phar به عنوان تصویر امکان پذیر است، زیرا تابع file_exists() نوع MIME را بر اساس محتوا و نه با پسوند تعیین می کند.

منبع: opennet.ru

اضافه کردن نظر