6 січня 2011 року вийшов PHP 5.3.5, у якому усунуто критичну вразливість, що викликала зависання інтерпретатора під час перетворення рядка на число на 32-бітних системах.
PHP 5.3.5: усунення зависання при перетворенні типів
Причиною проблеми була некоректна взаємодія інтерпретатора з регістрами x87 FPU (Floating Point Unit) при виконанні певних математичних операцій. У певних умовах, коли рядок містив специфічні числові значення, процесор потрапляв у стан, що блокував подальше виконання потоку PHP. Це виправляло поведінку внутрішніх функцій перетворення типів, забезпечуючи стабільну роботу на архітектурах, що використовують x87 для обчислень з рухомою комою.
Адміністраторам серверів, що працюють на 32-бітних архітектурах x86, наполегливо рекомендується оновитися до версії 5.3.5 або вище. Після оновлення тестового середовища розробникам слід провести регресійне тестування, зокрема перевірити коректність перетворення контрольних рядків на числа, особливо тих, що містять граничні значення або специфічні формати, які раніше могли викликати нестабільність інтерпретатора.
Усунення зависань інтерпретатора на 32-бітних системах
Раптові зависання серверного ПЗ можуть призвести до відмови в обслуговуванні (DoS), що негативно позначається на репутації компанії та доступності сервісів для клієнтів. Стабільність інтерпретатора є фундаментом для надійної роботи веб-додатків.
Практичний крок: Перевірте стабільність роботи ваших серверних додатків та актуальність версій програмного забезпечення. Замовте у Softline технічний аудит серверної інфраструктури для виявлення потенційних вузьких місць та забезпечення стабільної роботи ваших сервісів.
Використані джерела
- php.net (php.net)