Խոցելիություն PharStreamWrapper գրադարանում, որն ազդում է Drupal-ի, Joomla-ի և Typo3-ի վրա

Գրադարանում PharStreamWrapper, որն ապահովում է մշակողներին պաշտպանվելու դեմ եւ գրոհներ «Phar» ձևաչափով ֆայլի փոխարինման միջոցով, բացահայտված խոցելիություն (CVE-2019-11831- ը), որը թույլ է տալիս շրջանցել կոդի ապասերիալիզացիայի պաշտպանությունը՝ փոխարինելով «..» նիշերը ճանապարհին: Օրինակ՝ հարձակվողը կարող է հարձակման համար օգտագործել «phar:///path/bad.phar/../good.phar»-ի նման URL, և գրադարանը կնշի «/path/good.phar» բազային անունը, երբ ստուգում, թեև նման ճանապարհի հետագա մշակման ժամանակ կօգտագործվի «/path/bad.phar» ֆայլը:

Գրադարանը մշակվել է CMS TYPO3-ի ստեղծողների կողմից, սակայն օգտագործվում է նաև Drupal և Joomla նախագծերում, ինչը նրանց նույնպես ենթարկում է խոցելիության: Խնդիրն ամրագրված է թողարկումներում PharStreamWrapper 2.1.1 և 3.1.1. Drupal նախագիծը շտկեց խնդիրը 7.67, 8.6.16 և 8.7.1 թարմացումներում: Joomla-ում խնդիրը հայտնվում է 3.9.3 տարբերակից և շտկվել է 3.9.6 թողարկումում: TYPO3-ում խնդիրը շտկելու համար հարկավոր է թարմացնել PharStreamWapper գրադարանը:

Գործնականում, PharStreamWapper-ի խոցելիությունը թույլ է տալիս Drupal Core օգտատիրոջը, որն ունի «Administer theme» թույլտվություն, վերբեռնել վնասակար phar ֆայլ և ստիպել դրանում պարունակվող PHP կոդը գործարկել օրինական դեղարխիվի քողի տակ: Հիշեցնենք, որ «Phar deserialization» հարձակման էությունն այն է, որ PHP ֆունկցիայի file_exists() բեռնված օգնության ֆայլերը ստուգելիս այս ֆունկցիան ավտոմատ կերպով ապասերիալացնում է մետատվյալները Phar ֆայլերից (PHP Archive)՝ «phar://»-ով սկսվող ուղիները մշակելիս: . Հնարավոր է փոխանցել phar ֆայլը որպես պատկեր, քանի որ file_exists() ֆունկցիան որոշում է MIME-ի տեսակը ըստ բովանդակության, այլ ոչ թե ընդլայնման:

Source: opennet.ru

Добавить комментарий