Në bibliotekë , ofrueshtë mbështetje për mbrojtje nga përmes zëvendësimit të skedarëve në formatin «Phar», (), që lejon rrethimin e mbrojtjes nga deserializimi i kodit përmes zëvendësimit të karaktereve «..» në rrugë. Për shembull, një sulmues mund të përdorë një URL si «phar:///path/bad.phar/../good.phar» dhe biblioteka do të nxjerrë gjatë kontrollit emrin bazë «/path/good.phar», megjithëse gjatë përpunimit të mëtejshëm të këtij rrugë do të përdoret skedari «/path/bad.phar».
Biblioteka është zhvilluar nga krijuesit e CMS TYPO3, por po ashtu përdoret në projekte Drupal dhe Joomla, duke i bërë ata gjithashtu të ndjeshëm ndaj kësaj dobësie. Problemi është zgjidhur në lëshimet . Projekti Drupal e ka zgjidhur problemin në përditësimet 7.67, 8.6.16 dhe 8.7.1. Në Joomla, problemi shfaqet që nga versi 3.9.3 dhe është zgjidhur në lëshimin 3.9.6. Për të zgjidhur problemin në TYPO3, është e nevojshme të përditësoni bibliotekën PharStreamWrapper.
Nga ana praktike, dobësia në PharStreamWapper lejon përdoruesin e Drupal Core me privilegje të administratës së temave (‘Administer theme’) të ngarkojë një skedar phar të dëmshëm dhe të arrijë të ekzekutojë kodin PHP të vendosur brenda tij nën petkun e një arkivi phar legjitim. Kujtojmë se thelbi i sulmit të ‘Phar deserialization’ është se gjatë verifikimit të skedarëve të ngarkuar nga funksioni PHP file_exists(), ky funksion automatikisht ekzekuton deserializimin e të dhënave nga skedarët Phar (PHP Archive) gjatë përpunimit të rrugëve që fillojnë me “phar://”. Transferimi i skedarit phar është i mundshëm nën petkun e një imazhi, pasi funksioni file_exists() përcakton MIME-tipin sipas përmbajtjes dhe jo sipas zgjatjes.
Burimi: opennet.ru
