PT-2012-13: Межсайтовое выполнение сценариев в PHP

Уязвимое ПО

PHP
Версия: 5.4.6 и более ранняя

Ссылка:
http://php.net/

Рейтинг опасности

Уровень опасности: Низкий
Воздействие: Межсайтовое выполнение сценариев
Вектор атаки: Локальный

CVSS v2:
Base Score: 1.7
Vector: (AV:L/AC:L/Au:S/C:P/I:N/A:N)

CVE: отсутствует

Описание программы

PHP (Hypertext Preprocessor) — скриптовый язык программирования общего назначения, часто используемый для разработки веб-приложений.

Описание уязвимости

Эксперты исследовательского центра Positive Research компании Positive Technologies обнаружили уязвимость "Межсайтовое выполнение сценариев" в приложении PHP.

В результате выполнения PHP-функции phpinfo возможно межсайтовое выполнение сценариев из-за неправильной реализации функции php_info_print_stream_hash.

Уязвимость обнаружена в файле /ext/standard/info.c. Уязвимый фрагмент кода:

static void php_info_print_stream_hash(const char *name, HashTable *ht TSRMLS_DC) /* {{{ */ {
...
while (zend_hash_get_current_key_ex(ht, &key, &len, NULL, 0, &pos) == HASH_KEY_IS_STRING)
{
php_info_print(key);
...

Пример эксплуатации
Выполнение данного PHP-кода приведет к межсайтовому выполнению сценариев.
<?php
stream_filter_register("<script>alert('Positive')</script>","a");
phpinfo();
?>

Решение

Установите последнюю версию приложения.

Статус уведомления

22.06.2012 - Производитель уведомлен
22.06.2012 - Производителю отправлены детали уязвимости
14.09.2012 - Производитель выпустил исправление
04.02.2013 - Публикация уязвимости

Благодарности

Уязвимость обнаружил Сергей Бобров (Исследовательcкий центр Positive Research компании Positive Technologies)

Ссылки

http://www.securitylab.ru/lab/PT-2012-13
https://bugs.php.net/patch-display.php?bug_id=62964&patch=use_php_info_print_html_esc&revision=latest

Список отчетов о ранее обнаруженных уязвимостях Positive Research:

http://www.ptsecurity.ru/lab/advisory/
http://www.securitylab.ru/lab/