Luka w bibliotece PharStreamWrapper, dotycząca Drupal, Joomla i Typo3

W bibliotece PharStreamWrapper, dostarczającej mechanizmy ochronne przed przeprowadzeniem atakami poprzez podstawienie plików w formacie „Phar”, wykryto luka (CVE-2019-11831), które umożliwia ominięcie ochrony przed deserializacją kodu poprzez podstawienie znaków „..” w ścieżce. Na przykład, atakujący może użyć do ataku URL w rodzaju „phar://path/bad.phar/../good.phar”, a biblioteka przy weryfikacji wskaże podstawową nazwę „/path/good.phar”, chociaż w dalszym przetwarzaniu podobnej ścieżki będzie użyty plik „/path/bad.phar”.

Biblioteka została opracowana przez twórców systemu CMS TYPO3, ale jest również stosowana w projektach Drupal i Joomla, co sprawia, że są one również narażone na tę lukę. Problem został rozwiązany w wydaniach PharStreamWrapper 2.1.1 oraz 3.1.1. Projekt Drupal naprawił problem w aktualizacjach 7.67, 8.6.16 i 8.7.1. W Joomla problem występuje od wersji 3.9.3 i został rozwiązany w wydaniu 3.9.6. Aby naprawić problem w TYPO3, należy zaktualizować bibliotekę PharStreamWapper.

Z praktycznego punktu widzenia luka w PharStreamWapper pozwala użytkownikowi Drupal Core, mającemu uprawnienia administratora motywów (‘Administer theme’), załadować złośliwy plik phar i uzyskać uruchomienie umieszczonego w nim kodu PHP pod postacią legitymnego archiwum phar. Przypomnijmy, że istota ataku „Phar deserialization” polega na tym, że podczas weryfikacji załadowanych plików funkcja PHP file_exists() automatycznie wykonuje deserializację metadanych z plików Phar (PHP Archive) podczas przetwarzania ścieżek rozpoczynających się od „phar://”. Przekazanie pliku phar jest możliwe pod postacią obrazu, ponieważ funkcja file_exists() określa typ MIME na podstawie zawartości, a nie na podstawie rozszerzenia.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster