V knihovně , poskytující zpracovatele pro ochranu před pomocí substituce souborů ve formátu „Phar“ (), umožňující obejít ochranu proti deserializaci kódu prostřednictvím substituce znaků „..“ v cestě. Například útočník může k útoku použít URL formátu „phar:///path/bad.phar/../good.phar“ a knihovna při kontrole vybere základní jméno „/path/good.phar“, ačkoli při dalším zpracování podobné cesty bude použit soubor „/path/bad.phar“.
Knihovna byla vyvinuta tvůrci CMS TYPO3, ale také se používá v projektech Drupal a Joomla, což je dělá také zranitelnými. Problém byl vyřešen v verzích . Projekt Drupal vyřešil problém v aktualizacích 7.67, 8.6.16 a 8.7.1. V Joomla se problém projevuje od verze 3.9.3 a byl vyřešen ve verzi 3.9.6. Pro vyřešení problému v TYPO3 je nutné aktualizovat knihovnu PharStreamWapper.
Z praktického hlediska zranitelnost v PharStreamWapper umožňuje uživateli Drupal Core s oprávněním administrátora pro motivy („Administer theme“) nahrát škodlivý phar-soubor a dosáhnout vykonání umístěného v něm PHP kódu pod záminkou legálního phar archivu. Připomínáme, že podstata útoku „Phar deserialization“ spočívá v tom, že při kontrole nahraných souborů pomocí PHP funkce file_exists(), tato funkce automaticky provádí deserializaci metadat ze souborů Phar (PHP Archive) při zpracování cest začínajících na „phar:///“. Přenos phar-souboru je možný pod záminkou obrázku, protože funkce file_exists() určuje MIME typ na základě obsahu, nikoli názvu přípony.
Zdroj: opennet.ru
