
21 жовтня 2026 року проект PHP усунув дві критичні уразливості безпеки PHP, які стали відомі під назвою PHP2Shell. Для власників веб-сайтів цього дня все зводилося до одного питання: чи можна встановити оновлення, чи ні? Ті, хто раніше регулярно інвестував у оновлення власного додатка, могли відповісти «так». Для наших клієнтів, які обрали цей шлях, інвестиції того дня окупилися: вони могли зітхнути з полегшенням, адже про все інше ми подбали самі. Усім іншим залишився лише вибір між відключенням сервера та залишковим ризиком.
Що сталося
PHP — це мова програмування, на якій працює значна частина всіх веб-сайтів, зокрема такі системи, як Pimcore, Shopware та WordPress. У найгіршому випадку через ці дві уразливості можна без авторизації виконати сторонній код на сервері. Той, хто цим скористається, потенційно отримає повний доступ до додатка та його даних, аж до конфіденційних даних клієнтів та платіжних даних. Через ці інтерфейси зловмисники також можуть потенційно отримати доступ до підключених систем, наприклад, до системи управління товарами або платіжних сервісів. За даними компанії з кібербезпеки Wiz, яка виявила ці уразливості, вони стосуються всіх версій PHP за останні 10 років.
20 жовтня команда PHP оголосила про випуск оновлення безпеки наступного дня о 16:00, не надавши деталей. Ще того ж дня з’явилася перша неофіційна інформація. Федеральне відомство з інформаційної безпеки (BSI) оголосило другий за рівнем небезпеки рівень тривоги та порадило у разі сумнівів тимчасово відключити системи від мережі. У зв’язку з цим деякі державні органи, вищі навчальні заклади та клініки тимчасово відключили свої веб-сайти. Також багато інших сайтів були тимчасово недоступні.
До вечора 21 жовтня успішні атаки публічно не підтверджувалися. Однак компанії, що займаються безпекою, повідомили про перші спроби атак.
Як ми діяли
Перше повідомлення, як це зазвичай буває в таких випадках, не містило жодних деталей. Було зрозуміло лише одне: існує критична вразливість, і оновлення, яке вийде наступного дня, її усуне. Як саме виглядає ця вразливість і чи існують до того часу інші ефективні заходи захисту, залишалося невідомим.
Згідно з неофіційною інформацією, використання цієї уразливості можна було запобігти або принаймні ускладнити шляхом зміни конфігурації системи. Ми вжили цієї зміни в усіх системах клієнтів як запобіжний захід. Пізніше з’ясувалося, що це, хоч і зменшило ризик, але не усунуло уразливість повністю.
Завдяки офіційному оновленню ми забезпечили безпеку всіх систем, що використовують PHP 8.2 або новішу версію. Для цих веб-сайтів проблема була вирішена, і вони продовжували працювати без перебоїв.
Інакше справи йдуть із системами зі старими версіями PHP, для яких проект PHP офіційно більше не надає оновлень. Зазвичай у такому випадку правильним рішенням був би перехід на новішу, безпечнішу версію PHP. Однак якщо застаріла програма її не підтримує, залишається лише один вихід: профілактичне відключення. Ми поінформували наших клієнтів про цей крок електронною поштою та телефоном.
Однак, з огляду на серйозність вразливостей, команда PHP, зробивши виняток, все ж випустила екстрене виправлення для деяких старих версій. Це справжній щасливий випадок: без нього допомогло б лише оновлення всього додатка разом із версією PHP. Це неможливо зробити за кілька годин, тому ураженим сайтам загрожувало б відключення на невизначений час.
Чому оновлення не є самоціллю
Між першим оголошенням та офіційним оновленням минув приблизно один день. Для сучасної системи цього достатньо, адже оновлення — це рутинна задача. Для застарілої системи цього недостатньо. Нова версія PHP передбачає, що додаток також її підтримує. Якщо додаток занадто старий, спочатку потрібно оновити Pimcore, Shopware або власну розробку: це окремий проєкт із плануванням, адаптацією та тестуванням. У екстреній ситуації це занадто масштабне завдання, щоб встигнути вчасно відреагувати.
Оновлення мають проблему з помітністю: вони не завжди додають нових функцій, і після них веб-сайт часто виглядає так само, як і раніше. Тому цілком зрозуміло, що в повсякденній роботі пріоритет часто віддають новим функціям. Їхня цінність стає очевидною лише в такий день, як 21 жовтня: можливість усунути вразливість у найкоротший термін, замість того щоб відключати веб-сайт. А доглянута платформа — це та, яку ви можете далі розвивати, замість того щоб вирішувати надзвичайні ситуації.
Регулярне обслуговування у нас складається з двох частин. Невеликі оновлення ми встановлюємо постійно, використовуючи щомісячний ліміт годин на технічне обслуговування та оновлення в рамках угоди про надання послуг агентства. Великі переходи на нові версії, наприклад, на нову версію Pimcore Platform, ми плануємо разом з вами як окремий проєкт. Вчасно, до того, як стара версія втратить підтримку. Більше про нашу роботу з розробки ви можете прочитати в розділі Build.
Наступна дата вже визначена: з 31 грудня 2026 року PHP 8.2 більше не отримуватиме оновлень безпеки. Системи, які 21 жовтня ще без проблем отримували оновлення, опиняться в тому ж становищі, в якому на той день перебували старі системи. У тих, хто планує це зараз, є ще добрі два місяці.
Чому багато наших клієнтів залишилися в мережі
Платформи Pimcore та Shopware наших клієнтів хостингу працюють на нашій власній інфраструктурі — кластері Kubernetes у європейських дата-центрах. Ми повністю відповідаємо за їхнє функціонування, включаючи оновлення безпеки для PHP. Тому у разі появи уразливості, такої як PHP2Shell, нашим клієнтам не потрібно вживати заходів самостійно. Ми надаємо виправлені версії та встановлюємо їх, не відключаючи веб-сайт від мережі. Завдяки цьому 21 жовтня багато веб-сайтів, які ми хостимо, працювали без перебоїв, тоді як в інших місцях сайти були відключені в якості запобіжного заходу.
Обмеження виникають лише в тих випадках, коли сама програма занадто застаріла. Тоді навіть найкращому оператору залишається лише відключити сайт. Тому для нас експлуатація та технічне обслуговування — це єдине ціле. Про те, як ми експлуатуємо платформи, читайте в розділі «Run».
Наскільки актуальна ваша платформа?
Якщо ви хочете дізнатися, у якому стані перебуває ваша система після 21 жовтня, ми з радістю поспілкуємося з вами. Під час бесіди ми разом розглянемо стан оновлень вашої платформи. Ми з’ясуємо, що потрібно зробити до закінчення підтримки PHP 8.2, та обговоримо, як може виглядати поточне обслуговування у вашому випадку.
Поширені запитання про PHP2Shell
Тоді спочатку потрібно оновити сам застосунок. До того часу захисні заходи зменшують ризик, але не усувають його. Ми допоможемо вам привести застосунок до актуального стану та разом сплануємо, як підтримувати його таким і надалі.
