2026 жылдың 21 қазанында PHP экожүйесінде қауіптілік деңгейі ең жоғары CVSS 9.2 болатын екі қауіпті осалдық анықталды: CVE-2026-109618 және CVE-2026-109619. Екеуі де Zend Engine ядросының жадты басқару бұзылысына байланысты және қашықтан ерікті кодты орындауға (RCE) әкеледі.
Киберқауіпсіздік мамандарының ресми кеңесі қарапайым: «Шұғыл түрде ресми патчтары бар PHP 8.2+ немесе PHP 8.3+ нұсқаларына жаңартыңыз».
Алайда, көптеген корпоративтік B2B-порталдар, электрондық сауда платформалары және өндірістік жүйелер үшін PHP 5.6 нұсқасынан бір күнде көшу мүмкін емес. PHP 5.6 нұсқасын ресми қолдау 2018 жылдың соңында аяқталған (EOL), және оған арналған ресми патчтар шығарылмайды. Төменде аудиттің, мәселені оқшаулаудың және меншікті бэкпорт-патчты жасаудың тәжірибесі сипатталған.
CVE-2026-109619 шабуыл векторы session.upload_progress механизміндегі (ext/session/session.c файлы) жадты босату қатесіне негізделген:
PHP_SESSION_UPLOAD_PROGRESS өрісі бар multipart/form-data формасын жіберу кезінде ядро жедел жадта қадағалау құрылымын бөледі және оның мекенжайын PS(rfc1867_progress) жаһандық айнымалысында сақтайды.memory_limit асуы) немесе байланыс үзілісі орын алса, қозғалтқыш стандартты аяқтауды айналып өтіп, шұғыл zend_bailout() орындайды.Екі осалдықтың да толыққанды шешімі — жобаны қолдау көрсетілетін PHP 8.2 немесе 8.3 нұсқаларына жоспарлы түрде көшіру.
Жаңарту мүмкін емес серверлер үшін біз PHP 5.6 бастапқы кодына арналған C-патч әзірлеп, сынақтан өткіздік. Патч әрбір жаңа сұраныстың (RINIT) басында PS(rfc1867_progress) = NULL; көрсеткішін мәжбүрлі түрде нөлдейді және ақау орын алғанда (RSHUTDOWN) құрылымдарды дұрыс босатады.
Егер сізде серверде root құқықтары болмаса, веб-сервер конфигурациясында осал механизмді өшіріңіз:
# Осал механизмді өшіру
<IfModule mod_php5.c>
php_flag session.upload_progress.enabled off
</IfModule>
# WAF: шабуыл белгілерін блоктау
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{THE_REQUEST} (PHP_SESSION_UPLOAD_PROGRESS|upload_progress) [NC,OR]
RewriteCond %{QUERY_STRING} (PHP_SESSION_UPLOAD_PROGRESS|upload_progress) [NC]
RewriteRule .* - [F,L]
</IfModule>
Маңызды:session.upload_progressөшіру CVE-2026-109619 векторын бұғаттайды, бірақ ядроның жалпы OOM ақауын (CVE-2026-109618) түзетпейді. Тауар суреттері мен прайс-парақтарды$_FILESарқылы жүктеу қалыпты түрде жұмыс істей береді.
Барлық әзірлемелер — C-патч, дайын .deb пакеттер, қайта өндіруге болатын құрастыруға арналған Dockerfile және егжей-тегжейлі нұсқаулық — GitHub репозиторийінде ашық лицензиямен жарияланған:
GitHub репозиторийі: checkfoxe/php56-session-uaf-patch →
Авторы: Виктор Зарбашев (@checkfoxe)