PHP2Shell избухна: CVS 9.2, ден преди отварянето, и двете дупки бяха кодирани в продължение на 10 години.
Първо, заключението е, че:PHP произвежда неоторизиран отдалечен код за CVS 9.2, номера CVE-2026-109618 и CVE-2026-109619, с прякор PHP2Shell. На 20 октомври беше оповестено публично и на 21 октомври при 1400-те лепенки бяха освободени, докато кутиите за мед на Amazon бяха записани на 17 октомври . . . четири дни преди откриването.
По-лошото е, че тези две дупки първи стигат до PHP 5.4, което означава...Те са кодирани повече от десетилетие.Не знам. И през 2024 г., когато ядрото на разработчика откри пътя на ООМ, екипът се срещна, за да обсъди как да го поправи.Не се съгласихме и не го поправихме.Не знам. Причината е, че никой не мислеше, че може да се използва.
Тази фраза сега изглежда особено иронична. Причината да не можем да направим това не е, че дупката е незначителна, а че веригата е твърде сложна, за да премине отвъд физическия капацитет на човешките изследователи. Тогава Ал дойде и го написа.
Първо, махнете думата "многонационална спешна реакция" от пътя. Виж.
Любимата дума на партито е "глобална аларма." Този път не преувеличавам, но резултатът е ясен.
- PHP Official: На 20 октомври бе публикувано предварително известие, в което се посочва, че на 21 октомври от 14:00 часа UTC ще бъде пуснато в сигурна версия, ако информацията е била изтекла или поляна. В резултат на това, CVE номера е бил намушкан на Hacker News същия ден, и освобождаването, планирано за октомври 22 е бил принуден да ден по-рано.
- CERT-EU: освобождаване на консултации 2026-018 и включват и двете CVE.
- CloudflareНа 21 октомври CTO Dane Knecht директно заяви, че "ранното нападение е било видяно да се появява," а правилата на WAF са били освободени изцяло, включително и свободните потребители. Но той подчертал, че това е само временно и истинското решение е закърпване.
- Информация за заплахата на Amazon: MadPot мед кутии бяха хванати опитва на 17 октомври и друга партида е била уловена на 21 октомври, а полезен товар и инфраструктура посочи редица различни нападатели. php2shell "вече е широко използван."
- Watch Towr: И двете дупки се появяват отново, докато се наблюдават опити да се използват и двете.
Значи "нападението е намерено" не е предаване, а факт. И многонационалната спешна реакция не е удар - просто основните теми на реакцията са производители, CDNs и спешни организации, а не правителство в страната.
Две, две дупки, два напълно различни начина на умиране.
Много хора мислят, че е дупка с две числа. Това са два отделни пътя на атака, всеки CVS 9.2.
CVE-2026-109618: Бомба при изчерпване на паметта
Обработването на заявка се прекъсва, когато разпределението на паметта на PHP се провали. Проблемът е:На този етап вътрешните данни за искане може да са били само полуинициализирани и последващата логика за почистване би използвала този некорпоративен елемент от лоши данни като валидни данни.
Методът на задействане е прост: изграждане на мултичастна заявка за имплоуд на паметта. Странното е,Размерът на искането изглежда съвпада с тавана.Не става въпрос за размера на поста, а за декодирането и потреблението на вътрешна обработка.
Най-лошото е мод php. Mod php за Apache при заявка за стартиране неуспешноВсе още ще почисти., Така че тази верига може да бъде завършена преди всеки приложим код работи. Кодът ти е толкова чист, че няма вратичка.
PHP-FPM ще убие работника, когато не успее да започне, само за да отреже веригата, така че официално мод PHP е най-високият риск. Но внимавайте - това не означава, че ФМП е в безопасност.След успешно стартиранеВсе още има възможност за експлоатация.
CVE-2026-109619: Мръсно състояние между искания
Това е по-лошо. PHP ще използва повторно процеса на работа за обработка на множество искания. Последното искане за освобождаване на паметта, показалецът остава във вътрешното състояние; следващото искане идва,Прочетете празния адрес преди нормалната инициализация.Не знам.
Фатални грешки (изгубване на паметта, прекъсване на изпълнението) прекъсват държавното почистване. Дори по-лошо, някои несмъртоносни диагноза по време на изключване биха заменили грешното състояние.Оправи го.Не знам.
Официално потвърдените пътища включват: RCEs с фатална грешка, когато PHP 8.5 даде възможност за проследяване на фатална грешка (отваряне по подразбиране), както и цикъла на живот през сесията RCE на двигател php и FPM.session.upload_progress По подразбиране, можете да действате като ранен потребител в състояние на мръсотия.Няма нужда да се обаждаш.Не знам.
Тази дупка все още е прикрепена.Изтичане на паметтаНе знам. Какво течеше? е паролата, символ, API ключ, сертификат за други заявки в паметта на процеса. Wiz директно в сравнение с Heartbled, което не е много.
Времева линия, повече от заглавие.
| Време | Какво стана? |
|---|---|
| Година 2024 | PHP ядро разработчик одит намери OOM, че бъг, екипът не е имал консенсус за закона, го остави на изчакване. |
| 2026-08 | Райън Остин от Калиф идентифицира вратичките с OpenAI GPT-5.6 Sol; Wiz Independent Discovery |
| 2026-10-17 | Амазонка MadPot, медът може да запише опит, четири дни преди откриването. |
| 2026-10-20 | CVE номер изтече в Hacker News and Social Media, PHP |
| 2026-10-21 | 14:00 UTC публикация 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 |
17-ти октомври трябва да бъде избран.Обществен ден беше 20-ти, но атаката се състоя на 17-ти.Комисията отбелязва, че LuxOpCo и LuxOpCo не са били включени в извадката.
Що се отнася до това как нападателите са получили информацията предварително, Amazon каза "не е ясно." Не мога да навлизам в това, но трябва да приемеш реалността.Денят на разкриването никога не е бил деня на атаката, но денят, в който най-накрая разбра.
Четири, този път наистина е Ал.
В блога на Виз го има изречение, което съм чел два пъти: Тези основни недостатъци съществуват от десетилетия, но за да се докаже, че те могат да бъдат използвани, те се нуждаят от изключително сложна верига от стъпки, на границите на действителните възможности на човешките изследователи.Моделът на Frontline AI значително понижава този праг.Не знам.
Специфичен: Раян Остин, изследовател в Калиф, е намерен в проекта OpenAI "Patch the Planet" с GPT-5.6 Sol. Уиз откри същия проблем независимо. За да се възползваме от него, ни трябва верига от грешки и прицелване на всяка цел.Многократно калибриран макет на паметтаWiz казва, че моделът на предната линия им позволява да разработват използваеми приложения за различни приложения в рамките на часове.
Това не означава "Ай спечели отново."Въпросът е, че ровът от "комплекс" се проваля.
Много стари вратички не са били бити през последните две десетилетия, не защото те не са сериозни, а защото прагът на оползотворяване е твърде висок по няколко седмици на инвестиции от най-добрите изследователи и малко късмет. Слагаш ги в колоната "теоретично рисковано." Оградата я няма.
Тези десетгодишни дупки, които лежат в системата ви и се оценяват като "трудни и непреработени," трябва да бъдат преоценени.
Пет, при кого да отидеш?
| Клон | Засегната версия | Изхвърляне |
|---|---|---|
| PHP 8.5 | < 8.5.12 | Вдигане до 8.5.12. |
| PHP 8.4 | < 8.4.27 | Вдигам на 8.4.27. |
| PHP 8.3 | < 8.3.36 | Вдигам на 8.3.36. |
| PHP 8.2 | < 8.2.35 | Вдигам на 8.2.35. |
| PHP 7, 4 / 8, 0 / 8, 1 | Всички | Официално непубликуван, само на ниво източник |
| PHP 5.4 . . . . . | Всички | Правителството не го поправя. Бизнес |
Няколко напомняния в реалния живот:
- Linux Release и LTS VendorИмам предплата.Проверете консултацията на производителя с пакет за дистрибуция. Не бързай с изходния код.
- Използване
rpms.remirepo.netЗабележка: PHP официално заяви източника на 21 октомври.Няма актуализацияТака че можете да преминете към пакет за дистрибуция или да го направите от изходния код. - Двоичен Windows на PHP 8.5 също е на официалната страница за изтегляне.
- Не мисля, че е добре да се тича в контейнера -- версията на PHP на огледалото на контейнера трябва да се провери.
Шест, ако не можете да получите кръпка, направете тези четири първи.
Първа държава:Никой от тези долу няма да те направи в безопасност.Официалната фраза на PHP е "намаляване на излагането на конкретни пътища за атака, но не правят инсталациите по-безопасни." Тяхната стойност е да ви даде време да получите лепенки.
Ограничение на паметта до -1
Предназначение: За да извадите предсказуемата PHP капачка на паметта не успя, т.е. CVE-2026-109618 потвърди състоянието на спусъка, от което зависи.
Въпросът е,Как?: да се зададе на места, където заявлението не се променя, като FPM Pool php_admin_value или Апачи Конфигурация. Трябва да проверите, че няма попове, директории, настройки на приложението, за да добавите лимита обратно.Тогава рестартирай всеки работник.
Цената е ясна: вие сте извън собствената ограда памет на PHP, и долната повреда на дистрибуцията може все още да е на този опасен път. Значи трябва да е контейнер или група, за да ограничи прикритието, но това е само стратегия за "убиване на засегнати хора."Никога не използвайте RLIMIT AS или RLIMIT ДАННИТези двамата са точно от типа прекъсвания на разпределението, които създават вратичките.
Намаляване на размера на поста
Сайтове без файл 8M да файл 32M и гарантирано upload_max_filesize По-малко от това. В същото време към уеб сървъра или прокси слой се добавят граници - обемът на заявките разкодирани, броят на полетата, броят на мултичастните части, броят на главите, дълбочината на гнездата.Тези ограничения трябва да обхващат искания, които не са валидни за съдържаниетоИли ще заобиколим.
3. Изключване на процеса на сесия. качване
session.upload_progress.enabled = 0
Тя е написана в php.ini, FPM инструмент или сървър конфигурация.Тя трябва да бъде ефективна преди искането.Не знам. Използване ini_set() Или FPM. .user.ini Беше твърде късно - беше мръсно. Промяната също е да рестартирате всички работни места.
PHP 8.5 Още веднъж.
fatal_error_backtraces = 0
Този блок потвърди само фатална грешка назад, без други варианти. Също така се изискват настройки на ниво администратор + рестартиране на работника.
В допълнение, официалните споменават, че мнозина ще игнорират:Оправи фаталните грешки, които нападателите могат да задействат и да изпълнят тайм аут., включително архивиране, качване, обработка на вноса, пропуски в почистването. И...Изтриване на остарели или незаконни конфигурации, наложени на база искане по искане- Изплюли са диагностична информация преди да я инициализират и захранват изтичането.
Последното изречение е най-лесно неразбрано:Не работи, за да се скрие диагнозата с отчитане на грешки, показване на грешки или @.Няма да стане.
VII. Истинска поука от това
Не искам да завърша, като напиша "Затвори кръпката." Разбира се, че е. Днес е. Но някои решения трябва да се променят.
- Терминът "труден за използване" вече не е същият като "предписан."PHP веригата за достъп на тази дупка е достатъчно сложна, за да се нуждае от помощта на AI, която вече е помогнала. Старите дупки в списъка ви с активи, които обозначават "теоретичен риск," трябва да бъдат преоценени.
- Езикът тече в един момент.WordPress, Drupal, Joomla, Magento, MediaWiki всички работи на PHP, вашата проверка на кода за кандидатстване е чиста, и ядрото на PHP е в беда. Компенсаторен ритъм на инфраструктурните слоеве, с разделени приложни слоеве.
- "Кодът на приложението е разбит, без да работи." WAF може само да се забави.Самият Клаудфларе каза, че е спряло. Поставянето на WAF като решение се равнява на даване на живот, за да управлява покритието.
- Има много стари сайтове в страната, използвайки PHP.Тези станции, които се движат на PHP 5.6/7.0, които отдавна са били неоставени и обесени на клауд мейнфрейм, са изложени на 1.3 до 1.9 милиона. Те няма да получат предизвестие.
Калибрирането на данните се записва: W3Techs казва PHPs сметка за 69.3 процента от езиците, известни на услугата, и Wiz 70%; експозиция домакини, изследователят по сигурността Сайлъс Кътлър оценява над 1.3 милиона, а Henk Poley "S Shodan търсене е над 1.9 милиона. Тези числа са от различни калибъри и не ги използват като точни стойности, но скалата е същата -Милиони, глобално.
Още една подробност си струва да се запомни: когато CVE номера беше изтекла, CVS точки, които излязоха бяха 10.0, PHP беше официално потвърдено.Този резултат беше грешен.Всъщност е 9.2. Никой няма да знае нищо за този детайл, но винаги ще бъде в обръщение. Виждайки 10.0, знаеш каква вълна е.
10-годишна дупка, два месеца проучване, четири дни ранна употреба, еднодневен прозорец. Този времеви график е нормалното на всички основни софтуер, който следва.
Провери версията сега.php -vИли погледнете огледалата в контейнера. Не чакай до утре.