Уязвимост Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° 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, трябва Π΄Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π½Π° PharStreamWapper.

ΠžΡ‚ практичСска страна, уязвимостта Π² PharStreamWapper позволява Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π½Π° Drupal Core с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° β€žΠΠ΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Π΅ΠΌΠ°Ρ‚Π°β€œ Π΄Π° ΠΊΠ°Ρ‡ΠΈ Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ phar Ρ„Π°ΠΉΠ» ΠΈ Π΄Π° Π½Π°ΠΊΠ°Ρ€Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈΡ сС Π² Π½Π΅Π³ΠΎ PHP ΠΊΠΎΠ΄ Π΄Π° бъдС изпълнСн ΠΏΠΎΠ΄ ΠΏΡ€ΠΈΠΊΡ€ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π»Π΅Π³ΠΈΡ‚ΠΈΠΌΠ΅Π½ phar Π°Ρ€Ρ…ΠΈΠ². Π‘ΠΏΠΎΠΌΠ½Π΅Ρ‚Π΅ си, Ρ‡Π΅ ΡΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Π°Ρ‚Π°ΠΊΠ°Ρ‚Π° β€žPhar Π΄Π΅ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡβ€œ Π΅, Ρ‡Π΅ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π·Π°Ρ€Π΅Π΄Π΅Π½ΠΈΡ‚Π΅ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° PHP функцията file_exists(), Ρ‚Π°Π·ΠΈ функция Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ дСсСриализира ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Phar Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ (PHP Π°Ρ€Ρ…ΠΈΠ²), ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΏΡŠΡ‚ΠΈΡ‰Π°, Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‰ΠΈ с β€žphar://β€œ . Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΠΈΡ‚Π΅ phar Ρ„Π°ΠΉΠ» ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ функцията file_exists() опрСдСля Ρ‚ΠΈΠΏΠ° MIME ΠΏΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅, Π° Π½Π΅ ΠΏΠΎ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅.

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€