PHP до 7.0.5 ZIP Archive zend_string.h ZipArchive::getFromIndex повреждение памяти

CVSS Meta Temp ScoreТекущая цена эксплойта (≈)Балл интереса CTI
9.3$0-$5k0.00

СводкаИнформация

Уязвимость была найдена в PHP до 7.0.5. Она была оценена как критический. Неизвестная функция файла zend_string.h компонента ZIP Archive Handler поражена. Манипуляция приводит к повреждение памяти. Эта уязвимость обозначается как CVE-2016-3078. Атака может быть инициирована удаленно. Более того, существует эксплойт. Рекомендуется обновить затронутый компонент.

ПодробностиИнформация

Уязвимость была найдена в PHP до 7.0.5. Она была оценена как критический. Неизвестная функция файла zend_string.h компонента ZIP Archive Handler поражена. Манипуляция приводит к повреждение памяти. Использование CWE для описания проблемы приводит к CWE-190. Слабость была опубликована 28.04.2016 специалистом Hans Jerry Illikainen (Веб-сайт). Консультация доступна для загрузки на openwall.com. Продавец сотрудничал в координации публичного релиза.

Эта уязвимость обозначается как CVE-2016-3078. Назначение CVE произошло 10.03.2016. Атака может быть инициирована удаленно. Имеются технические подробности. Популярность этой уязвимости выше среднего. Более того, существует эксплойт. Эксплойт был раскрыт общественности и может быть использован. В настоящее время текущая цена эксплойта может составлять примерно USD $0-$5k. Данная уязвимость вызвана этим участком кода:

static zend_always_inline zend_string *zend_string_alloc(size_t len, int persistent)
{
   zend_string ret = (zend_string )pemalloc(ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(len)), persistent); // (4)
   ...
   ZSTR_LEN(ret) = len;                                                                                  // (5)
   return ret;
}
В уведомлении отмечается:
The `size' argument to the `pemalloc' macro is aligned/adjusted in (4) whilst the original value of `len' is stored as the size of the allocated buffer in (5). No boundary checking is done in (4) and it may thus wrap, which would lead to a heap overflow during the invocation of `zip_fread()' in (3) as the `toread' argument is `ZSTR_LEN(buffer).

Объявляется Доказательство концепции. Эксплойт доступен для загрузки на сайте exploit-db.com. В 0-дневный период предполагаемая подземная цена составляла около $25k-$100k. Код, используемый эксплойтом, следующий:

$zip = new ZipArchive();
if ($zip->open($_FILES["file"]["tmp_name"]) !== TRUE) {
   echo "cannot open archive\n";
} else {
   for ($i = 0; $i < $zip->numFiles; $i++) {
      $data = $zip->getFromIndex($i);
}
$zip->close();
В сканере Nessus имеется плагин с ID 91320. Он отнесён к семейству Ubuntu Local Security Checks. Плагин выполняется в контексте типа l. Коммерческий сканер уязвимостей Qualys способен проверить эту проблему с помощью плагина 196483 (Ubuntu Security Notification for Php5, Php7.0 Vulnerabilities (USN-2984-1)).

Обновление до 7.0.6 может устранить эту уязвимость. Рекомендуется обновить затронутый компонент. Возможное средство устранения было опубликовано через 4 недели после раскрытия уязвимости.

Данная уязвимость также присутствует в других базах данных уязвимостей: SecurityTracker (ID 1035701) и Tenable (91320).

ПродуктИнформация

Тип

Имя

Версия

Лицензия

Веб-сайт

CPE 2.3Информация

CPE 2.2Информация

CVSSv4Информация

VulDB Вектор: 🔍
VulDB Надёжность: 🔍

CVSSv3Информация

VulDB Meta Base Score: 9.8
VulDB Meta Temp Score: 9.3

VulDB Базовый балл: 9.8
VulDB Временная оценка: 8.8
VulDB Вектор: 🔍
VulDB Надёжность: 🔍

NVD Базовый балл: 9.8
NVD Вектор: 🔍

CVSSv2Информация

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
ВекторСложностьАутентификацияКонфиденциальностьЦелостностьДоступность
РазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокировать
РазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокировать
РазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокировать

VulDB Базовый балл: 🔍
VulDB Временная оценка: 🔍
VulDB Надёжность: 🔍

NVD Базовый балл: 🔍

ЭксплуатацияИнформация

Класс: повреждение памяти
CWE: CWE-190 / CWE-189
CAPEC: 🔍
ATT&CK: 🔍

Физический: Нет
Локальный: Нет
Удалённый: Да

Доступность: 🔍
Доступ: публичный
Статус: Доказательство концепции
Автор: Hans Jerry Illikainen
Язык программирования: 🔍
Скачать: 🔍

EPSS Score: 🔍
EPSS Percentile: 🔍

Прогноз цен: 🔍
Оценка текущей цены: 🔍

0-DayРазблокироватьРазблокироватьРазблокироватьРазблокировать
СегодняРазблокироватьРазблокироватьРазблокироватьРазблокировать

Nessus ID: 91320
Nessus Имя: Ubuntu 12.04 LTS / 14.04 LTS / 15.10 / 16.04 LTS : php5, php7.0 vulnerabilities (USN-2984-1)
Nessus Файл: 🔍
Nessus Риск: 🔍
Nessus Семейство: 🔍
Nessus Context: 🔍

OpenVAS ID: 803381
OpenVAS Имя: PHP Denial of Service Vulnerability - 01 - Aug16 (Linux)
OpenVAS Файл: 🔍
OpenVAS Семейство: 🔍

Qualys ID: 🔍
Qualys Имя: 🔍

Exploit-DB: 🔍

Разведка угрозИнформация

Интерес: 🔍
Активные акторы: 🔍
Активные группы APT: 🔍

КонтрмерыИнформация

Рекомендация: Обновление
Статус: 🔍

Время реакции: 🔍
0-дневное время: 🔍
Время экспозиции: 🔍
Задержка эксплуатации: 🔍

Обновление: PHP 7.0.6
Патч: github.com

ХронологияИнформация

10.03.2016 🔍
28.04.2016 +49 дни 🔍
28.04.2016 +0 дни 🔍
28.04.2016 +0 дни 🔍
02.05.2016 +4 дни 🔍
24.05.2016 +22 дни 🔍
25.05.2016 +1 дни 🔍
07.08.2016 +74 дни 🔍
11.06.2024 +2865 дни 🔍

ИсточникиИнформация

Продукт: php.org

Консультация: USN-2984-1
Исследователь: Hans Jerry Illikainen
Статус: Подтверждённый
Подтверждение: 🔍
Скоординированный: 🔍

CVE: CVE-2016-3078 (🔍)
GCVE (CVE): GCVE-0-2016-3078
GCVE (VulDB): GCVE-100-83075
SecurityTracker: 1035701

scip Labs: https://www.scip.ch/en/?labs.20161013
Смотрите также: 🔍

ВходИнформация

Создано: 02.05.2016 08:53
Обновлено: 11.06.2024 12:06
Изменения: 02.05.2016 08:53 (82), 22.03.2019 14:03 (12), 27.07.2022 14:54 (5), 27.07.2022 14:55 (1), 11.06.2024 12:06 (15)
Завершенный: 🔍
Cache ID: 216::103

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Обсуждение

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!