=== ТЕСТ CVE-2026-109618: OOM-коррупция HashTable ===
{
"timestamp": 1792772527.9746,
"step": 1,
"description": "🟢 НАЧАЛО: Получен POST-запрос с большим количеством полей",
"memory_used": 524288,
"memory_peak": 524288,
"data": {
"post_fields": "Будет отправлено 50000 полей"
},
"php_version": "5.6.40"
}
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /var/www/html/index.php on line 30
Notice: Array to string conversion in /var/www/html/index.php on line 120
{
"timestamp": 1792772527.9749,
"step": 2,
"description": "🟢 PHP начинает парсить Array, создаёт пустой HashTable",
"memory_used": 524288,
"memory_peak": 524288,
"data": {
"hashtable_status": "Создан, размер = 0"
},
"php_version": "5.6.40"
}
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /var/www/html/index.php on line 30
{
"timestamp": 1792772527.9751,
"step": 3,
"description": "🟡 Начинается заполнение HashTable... (1000 из 50000 полей)",
"memory_used": 524288,
"memory_peak": 524288,
"data": {
"hashtable_size": 1000,
"memory_used_mb": 0.5
},
"php_version": "5.6.40"
}
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /var/www/html/index.php on line 30
{
"timestamp": 1792772527.9755,
"step": 3.1,
"description": "🟡 Заполнение HashTable... (1000 полей)",
"memory_used": 786432,
"memory_peak": 786432,
"data": {
"hashtable_size": 1000,
"memory_growth_mb": 0.25
},
"php_version": "5.6.40"
}
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /var/www/html/index.php on line 30
{
"timestamp": 1792772527.9763,
"step": 3.1,
"description": "🟡 Заполнение HashTable... (2000 полей)",
"memory_used": 1048576,
"memory_peak": 1048576,
"data": {
"hashtable_size": 2000,
"memory_growth_mb": 0.5
},
"php_version": "5.6.40"
}
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /var/www/html/index.php on line 30
{
"timestamp": 1792772527.9772,
"step": 3.1,
"description": "🟡 Заполнение HashTable... (3000 полей)",
"memory_used": 1310720,
"memory_peak": 1310720,
"data": {
"hashtable_size": 3000,
"memory_growth_mb": 0.75
},
"php_version": "5.6.40"
}
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /var/www/html/index.php on line 30
{
"timestamp": 1792772527.978,
"step": 3.1,
"description": "🟡 Заполнение HashTable... (4000 полей)",
"memory_used": 1572864,
"memory_peak": 1572864,
"data": {
"hashtable_size": 4000,
"memory_growth_mb": 1
},
"php_version": "5.6.40"
}
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /var/www/html/index.php on line 30
{
"timestamp": 1792772527.9789,
"step": 3.1,
"description": "🟡 Заполнение HashTable... (5000 полей)",
"memory_used": 1835008,
"memory_peak": 1835008,
"data": {
"hashtable_size": 5000,
"memory_growth_mb": 1.25
},
"php_version": "5.6.40"
}
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /var/www/html/index.php on line 30
{
"timestamp": 1792772527.9797,
"step": 3.1,
"description": "🟡 Заполнение HashTable... (6000 полей)",
"memory_used": 2097152,
"memory_peak": 2097152,
"data": {
"hashtable_size": 6000,
"memory_growth_mb": 1.5
},
"php_version": "5.6.40"
}
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /var/www/html/index.php on line 30
{
"timestamp": 1792772527.9806,
"step": 3.1,
"description": "🟡 Заполнение HashTable... (7000 полей)",
"memory_used": 2359296,
"memory_peak": 2359296,
"data": {
"hashtable_size": 7000,
"memory_growth_mb": 1.75
},
"php_version": "5.6.40"
}
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /var/www/html/index.php on line 30
{
"timestamp": 1792772527.9814,
"step": 3.1,
"description": "🟡 Заполнение HashTable... (8000 полей)",
"memory_used": 2621440,
"memory_peak": 2621440,
"data": {
"hashtable_size": 8000,
"memory_growth_mb": 2
},
"php_version": "5.6.40"
}
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /var/www/html/index.php on line 30
{
"timestamp": 1792772527.9823,
"step": 3.1,
"description": "🟡 Заполнение HashTable... (9000 полей)",
"memory_used": 2883584,
"memory_peak": 2883584,
"data": {
"hashtable_size": 9000,
"memory_growth_mb": 2.25
},
"php_version": "5.6.40"
}
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /var/www/html/index.php on line 30
{
"timestamp": 1792772527.9831,
"step": 4,
"description": "🔴 КРИТИЧНО: Попытка добавить ещё 40000 полей...",
"memory_used": 3145728,
"memory_peak": 3145728,
"data": {
"hashtable_size": 10000,
"memory_used_mb": 3,
"memory_limit": "16M"
},
"php_version": "5.6.40"
}
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /var/www/html/index.php on line 30
{
"timestamp": 1792772527.9833,
"step": 5,
"description": "🔴 OOM (Out Of Memory)! Zend Engine не может выделить память для HashTable",
"memory_used": 3407872,
"memory_peak": 3407872,
"data": {
"error": "Fatal error: Allowed memory size exhausted"
},
"php_version": "5.6.40"
}
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /var/www/html/index.php on line 30
{
"timestamp": 1792772527.9834,
"step": 6,
"description": "🔴 HashTable остается ПОЛУРАЗРУШЕННЫМ (OOM-коррупция)",
"memory_used": 3407872,
"memory_peak": 3407872,
"data": {
"hashtable_status": "nTableSize = 10000, но arBuckets частично NULL",
"sentinel_check": "НЕ УСТАНОВЛЕНО (баг CVE-2026-109618)"
},
"php_version": "5.6.40"
}
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /var/www/html/index.php on line 30
{
"timestamp": 1792772527.9834,
"step": 7,
"description": "🔴 PHP_RSHUTDOWN_FUNCTION начинает уборку памяти",
"memory_used": 3407872,
"memory_peak": 3407872,
"data": {
"cleanup_phase": "zend_hash_destroy вызывается для поврежденного HashTable"
},
"php_version": "5.6.40"
}
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /var/www/html/index.php on line 30
{
"timestamp": 1792772527.9835,
"step": 8,
"description": "💀 КРИТИЧЕСКАЯ УЯЗВИМОСТЬ: Cleanup обращается к NULL-указателям как к валидным данным!",
"memory_used": 3407872,
"memory_peak": 3407872,
"data": {
"result": "RCE - выполнение произвольного кода из мусора памяти"
},
"php_version": "5.6.40"
}
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /var/www/html/index.php on line 30
=== ВЕРДИКТ: УЯЗВИМО (CVE-2026-109618) ===
На реальном эксплойте атакующий контролирует содержимое 'мусора' в памяти
и добивается выполнения shell-команд на сервере.
=== ПОЛНЫЙ ЛОГ СОСТОЯНИЙ ===
Шаг 1: 🟢 НАЧАЛО: Получен POST-запрос с большим количеством полей
Память: 0.5 MB
post_fields: Будет отправлено 50000 полей
Шаг 2: 🟢 PHP начинает парсить Array, создаёт пустой HashTable
Память: 0.5 MB
hashtable_status: Создан, размер = 0
Шаг 3: 🟡 Начинается заполнение HashTable... (1000 из 50000 полей)
Память: 0.5 MB
hashtable_size: 1000
memory_used_mb: 0.5
Шаг 3.1: 🟡 Заполнение HashTable... (1000 полей)
Память: 0.75 MB
hashtable_size: 1000
memory_growth_mb: 0.25
Шаг 3.1: 🟡 Заполнение HashTable... (2000 полей)
Память: 1 MB
hashtable_size: 2000
memory_growth_mb: 0.5
Шаг 3.1: 🟡 Заполнение HashTable... (3000 полей)
Память: 1.25 MB
hashtable_size: 3000
memory_growth_mb: 0.75
Шаг 3.1: 🟡 Заполнение HashTable... (4000 полей)
Память: 1.5 MB
hashtable_size: 4000
memory_growth_mb: 1
Шаг 3.1: 🟡 Заполнение HashTable... (5000 полей)
Память: 1.75 MB
hashtable_size: 5000
memory_growth_mb: 1.25
Шаг 3.1: 🟡 Заполнение HashTable... (6000 полей)
Память: 2 MB
hashtable_size: 6000
memory_growth_mb: 1.5
Шаг 3.1: 🟡 Заполнение HashTable... (7000 полей)
Память: 2.25 MB
hashtable_size: 7000
memory_growth_mb: 1.75
Шаг 3.1: 🟡 Заполнение HashTable... (8000 полей)
Память: 2.5 MB
hashtable_size: 8000
memory_growth_mb: 2
Шаг 3.1: 🟡 Заполнение HashTable... (9000 полей)
Память: 2.75 MB
hashtable_size: 9000
memory_growth_mb: 2.25
Шаг 4: 🔴 КРИТИЧНО: Попытка добавить ещё 40000 полей...
Память: 3 MB
hashtable_size: 10000
memory_used_mb: 3
memory_limit: 16M
Шаг 5: 🔴 OOM (Out Of Memory)! Zend Engine не может выделить память для HashTable
Память: 3.25 MB
error: Fatal error: Allowed memory size exhausted
Шаг 6: 🔴 HashTable остается ПОЛУРАЗРУШЕННЫМ (OOM-коррупция)
Память: 3.25 MB
hashtable_status: nTableSize = 10000, но arBuckets частично NULL
sentinel_check: НЕ УСТАНОВЛЕНО (баг CVE-2026-109618)
Шаг 7: 🔴 PHP_RSHUTDOWN_FUNCTION начинает уборку памяти
Память: 3.25 MB
cleanup_phase: zend_hash_destroy вызывается для поврежденного HashTable
Шаг 8: 💀 КРИТИЧЕСКАЯ УЯЗВИМОСТЬ: Cleanup обращается к NULL-указателям как к валидным данным!
Память: 3.25 MB
result: RCE - выполнение произвольного кода из мусора памяти