Уязвимост Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° PharStreamWrapper, засягаща Drupal, Joomla ΠΈ Typo3

Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° PharStreamWrapper, прСдоставяща ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Π°Ρ‚Π°ΠΊΠΈ Ρ‡Ρ€Π΅Π· подмяна Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ 'Phar', ΠΎΡ‚ΠΊΡ€ΠΈΡ‚Π° Π΅ уязвимост (CVE-2019-11831), позволяваща заобикалянС Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° срСщу дСсСриализация Π½Π° ΠΊΠΎΠ΄ Ρ‡Ρ€Π΅Π· подмяна Π½Π° символи '..' Π² ΠΏΡŠΡ‚Ρ. НапримСр, нападатСлят ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π°Ρ‚Π°ΠΊΠ° URL ΠΎΡ‚ Π²ΠΈΠ΄Π° 'phar:///path/bad.phar/../good.phar' ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Ρ‰Π΅ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° основното ΠΈΠΌΠ΅ '/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 Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΠΎΠ±Π½ΠΎΠ²ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° PharStreamWrapper.

ΠžΡ‚ практичСска Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°, уязвимостта Π² PharStreamWrapper позволява Π½Π° потрСбитСля Π½Π° Drupal Core, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌΠ° ΠΏΡ€Π°Π²Π° Π½Π° администратор Π½Π° Ρ‚Π΅ΠΌΠΈ ('Administer theme'), Π΄Π° ΠΊΠ°Ρ‡ΠΈ Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ phar Ρ„Π°ΠΉΠ» ΠΈ Π΄Π° ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° разполоТСния Π² Π½Π΅Π³ΠΎ PHP ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ ΠΏΡ€Π΅Π΄Π»ΠΎΠ³ Π½Π° Π»Π΅Π³ΠΈΡ‚ΠΈΠΌΠ΅Π½ phar Π°Ρ€Ρ…ΠΈΠ². НапомнямС, Ρ‡Π΅ ΡΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Π°Ρ‚Π°ΠΊΠ°Ρ‚Π° 'Phar дСсСриализация' Π΅, Ρ‡Π΅ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΊΠ°Ρ‡Π΅Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° PHP функцията file_exists(), Ρ‚Π°Π·ΠΈ функция Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° дСсСриализация Π½Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Phar (PHP Archive) ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΡŠΡ‚ΠΈΡ‰Π°, Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‰ΠΈ с 'phar:///'. ΠŸΡ€Π΅Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° phar Ρ„Π°ΠΉΠ» Π΅ възмоТно ΠΏΠΎΠ΄ ΠΏΡ€Π΅Π΄Π»ΠΎΠ³ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ функцията file_exists() опрСдСля MIME Ρ‚ΠΈΠΏΠ° ΠΏΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ, Π° Π½Π΅ ΠΏΠΎ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅Ρ‚ΠΎ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster