Luka w bibliotece PharStreamWrapper wpływająca na Drupal, Joomla i Typo3

W bibliotece Opakowanie PharStream, który zapewnia programom obsługi ochronę przed z ataki poprzez podstawienie plików w formacie „Phar”, zidentyfikowane słaby punkt (CVE-2019-11831), co pozwala ominąć ochronę deserializacji kodu, podstawiając w ścieżce znaki „..” Na przykład osoba atakująca może użyć adresu URL takiego jak „phar:///path/bad.phar/../good.phar” do ataku, a biblioteka podświetli nazwę bazową „/path/good.phar”, gdy sprawdzenie, chociaż podczas dalszego przetwarzania takiej ścieżki zostanie użyty plik „/path/bad.phar”.

Biblioteka została opracowana przez twórców CMS TYPO3, ale jest również wykorzystywana w projektach Drupal i Joomla, co czyni je również podatnymi na luki. Problem rozwiązany w wersjach PharStreamWrapper 2.1.1 i 3.1.1. Projekt Drupal rozwiązał problem w aktualizacjach 7.67, 8.6.16 i 8.7.1. W Joomla problem pojawia się od wersji 3.9.3 i został naprawiony w wersji 3.9.6. Aby rozwiązać problem w TYPO3, musisz zaktualizować bibliotekę PharStreamWapper.

Z praktycznego punktu widzenia, luka w PharStreamWapper pozwala użytkownikowi Drupala Core z uprawnieniami „Administruj motywem” na przesłanie złośliwego pliku phar i spowodowanie, że zawarty w nim kod PHP zostanie wykonany pod przykrywką legalnego archiwum phar. Przypomnijmy, że istotą ataku „deserializacja Phar” jest to, że podczas sprawdzania załadowanych plików pomocy funkcji PHP file_exists(), funkcja ta automatycznie deserializuje metadane z plików Phar (Archiwum PHP) podczas przetwarzania ścieżek rozpoczynających się od „phar://” . Możliwe jest przesłanie pliku phar jako obrazu, ponieważ funkcja file_exists() określa typ MIME na podstawie zawartości, a nie rozszerzenia.

Źródło: opennet.ru

Dodaj komentarz