آسیب‌پذیری در موتور قالب Twig

آسیب‌پذیری در موتور قالب Twig 1-آسیب‌پذیری CVE-2022-23614 درموتور قالب͏ نویسی PHP Twig یک موتور قالب¬نویسی (Template Engine) برای زبان PHP است. بسیاری از پروژه‌های بزرگی از قبیل Symfony، Drupal8، phpBB، OroCRM، Matomo و eZPublish از موتور Twig استفاده می‌کنند و فریم‌ورک‌هایی مانند Laravel، Yii، Slim و Codeigniter نیز از این موتور پشتیبانی می‌کنند.

این موتور  برای ارزیابی کدهای تمپلیت، یک حالت جعبه شنی (Sandbox) دارد که یک آسیب‌پذیری بحرانی (9.8 از10) در نسخه­های 2.0.0 تا 2.14.10  و نسخه­های 3.0.0 تا 3.3.7 در این حالت سندباکس Twig وجود دارد. فیلتر sort در که در موتور Twig برای مرتب­سازی آرایه استفاده می­شود، حاوی تابع arrow (<=) است که به دلیل اینکه به شکل کلوژر یا بستار (closure) تعریف و بکارگیری نشده است، این امکان را به مهاجمان فراهم­ساخته تا بتوانند توابع PHP دلخواه خود را از طریق بهره­برداری از این آسیب­پذیری اجرا کنند.

 

جدول 1. مشخصات آسیب‌پذیری CVE-2022-23614

ردیف

عنوان

مقدار

1

تاریخ انتشار آسیب‌پذیری

2022-02-04

2

تاریخ بروزسانی آسیب­پذیری

2022-04-18

2

شدت آسیب­پذیری (طبقcvss  نسخه 3)

بحرانی (9.8 از 10)

4

نسخه‌ آسیب‌پذیر

از نسخه 2.0.0 تا نسخه 2.14.10

از نسخه 3.0.0 تا نسخه 3.3.7

5

نوع ضعف

Injection

 

برای رفع این آسیب­پذیری، نسخه­های آسیب­پذیر مطابق با اصلاحیه Twig به کامیت شماره 22b9dc3c03ee66d7e21d9ed2ca76052b134cb9e9 فایل­های src/Extension/CoreExtension.php و tests/Extension/SandboxTest.php بایستی همچون شکل‌های زیر تصحیح گردند.

 

 

  • 1- در فایل src/Extension/CoreExtension.php خطوط 240، 929، 938، 1609، 1623، 1637، 1650 بایستی اصلاح گردد.

 

شکل 1-  اصلاحیه Twig در فایل CoreExtensions.php خطوط 240, 929, 938

 

 

شکل 2- اصلاحیه Twig در فایل CoreExtension.php خطوط 1609.1623,1637

 

 

شکل 3- اصلاحیه Twig در فایل CoreExtension.php خط 1650

 

 

  • 2- در فایل فایل tests/Extension/SandboxTest.php خط 393 بایستی اصلاح گردد.

شکل 4- اصلاحیه Twig در فایل SandboxTest.php خط 393

 

 

     منابع