PHP2Shell: дзве крытычныя памылкі PHP, эмбарга, якое прасачылася, і што насамрэч вядома аб эксплуатацыі
PHP выпусціў экстранныя выпраўленні для дзвюх крытычных уразлівасцяў аддаленага выканання кода, CVE-2026-109618 і CVE-2026-109619, названых PHP2Shell.
PHP выпусціў экстранныя выпраўленні для дзвюх крытычных уразлівасцяў аддаленага выканання кода, CVE-2026-109618 і CVE-2026-109619, названых PHP2Shell. Рэліз адбыўся 21 кастрычніка 2026 года. Эпізод простымі словамі тлумачыць дзве памылкі памяці, чаму падказка з аўдыту 2024 года чакала выпраўлення, як уцечка эмбарга і якія крыніцы кажуць пра эксплуатацыю. Ён таксама ахоплівае выпуск крытычнага патча GitLab у той жа дзень і прысуд Meta да штрафу ў 25 мільярдаў долараў у Нью-Мексіка.
Чытаць пісьмовае выданне (англійская) ↗
Што ахоплівае гэта відэа
- Абедзве памылкі ацэнены камандай PHP на 9.2 па CVSS v4.0. Выпраўленыя версіі: PHP 8.2.35, 8.3.36, 8.4.27 і 8.5.12; PHP 7.4, 8.0 і 8.1 атрымалі толькі выпраўленні зыходнага кода. PHP заяўляе, што абнаўленне з'яўляецца адзіным поўным сродкам ліквідацыі.
- Першая памылка ўзнікае з-за таго, што PHP пакідае запыт напалову пабудаваным, калі ў няправільны момант заканчваецца памяць. Другая ўзнікае з-за рэшткавага паказальніка на памяць аднаго запыту, які можа выкарыстаць наступны запыт у тым жа работніку. На Apache з mod_php першы шлях запускаецца перад кодам праграмы.
- Асноўны распрацоўшчык PHP выявіў першыя прыкметы праблемы з памяццю падчас аўдыту 2024 года. Фонд PHP заяўляе, што канкуруючыя выпраўленні мелі кампрамісы, і каманда бяспекі, якая прымае рашэнні на аснове кансенсусу, з цяжкасцю выбірала, што яны называюць структурнай няўдачай.
- Фонд заяўляе, што ідэнтыфікатары CVE прасачыліся 20 кастрычніка, Calif памылкова апублікаваў відэа з доказным канцэптам, а Chainguard апублікаваў гатовыя вобразы з выпраўленнем больш чым за шэсць гадзін да выпуску. Генеральны дырэктар Chainguard заяўляе, што людзі ўжо былі закрануты, і што ён знайшоў памылкі незалежна.
- Крыніцы разыходзяцца ў меркаваннях адносна эксплуатацыі. Amazon зафіксавала спробу 17 кастрычніка і пазней заявіла, што PHP2Shell шырока эксплуатуецца. watchTowr паведаміла аб эксплуатацыі ў дзікай прыродзе. CISA не назірала эксплуатацыі на момант публікацыі, а каманда PHP не знайшла функцыянальнага эксплойта на момант выпуску. Многія апублікаваныя сцэнарыі доказу канцэпцыі, як паведамляецца, не працуюць.
- Праверце кожнае месца, дзе працуе PHP, уключаючы копіі ўнутры іншага праграмнага забеспячэння, абнавіце, перазапусціце работнікаў і праглядзіце журналы да 17 кастрычніка.
Пытанні і адказы
Што такое дзве ўразлівасці PHP2Shell?
PHP2Shell называе дзве крытычныя памылкі PHP, CVE-2026-109618 і CVE-2026-109619, абедзве ацэнены PHP-камандай на 9.2. Першая пакідае запыт напалову пабудаваным, калі ў няправільны момант у PHP заканчваецца памяць, і ачыстка потым ёй давярае. Другая пакідае паказальнік на памяць аднаго запыту, які можа выкарыстаць пазнейшы запыт у тым жа работніку. Абедзве могуць прывесці да выканання кода без лагіна.
Якія версіі PHP маюць выпраўленне для PHP2Shell, і што з непадтрымоўванымі версіямі?
Праект PHP выпусціў выпраўленні ў версіях 8.2.35, 8.3.36, 8.4.27 і 8.5.12 21 кастрычніка. Для версій 7.4, 8.0 і 8.1 ён апублікаваў толькі выпраўленні зыходнага кода, і BleepingComputer паведамляе, што дыстрыбутывы і пастаўшчыкі доўгатэрміновай падтрымкі могуць пастаўляць выпраўленні з зваротнай сумяшчальнасцю. PHP заяўляе, што няма поўнага абыходнага шляху, таму абнаўленне або запыт у пастаўшчыка аб выпраўленым пакеце з'яўляецца адзіным бяспечным выбарам.
Чаму вядомая памылка памяці PHP чакала выпраўлення да кастрычніка 2026 года?
Фонд PHP заяўляе, што асноўны распрацоўшчык выявіў першыя прыкметы праблемы памяці падчас аўдыту бяспекі ў 2024 годзе, але шлях эксплуатацыі не быў вядомы, і кожны кандыдат на выпраўленне меў кампрамісы, такія як парушэнні сумяшчальнасці. Каманда бяспекі прымае рашэнні кансенсусам і з цяжкасцю выбірала, што Фонд называе структурнай няўдачай, выкліканай працэсам прыняцця рашэнняў і недахопам рэсурсаў.
Ці эксплуатуецца PHP2Shell, і наколькі лёгка яго эксплуатаваць?
Крыніцы разыходзяцца. Amazon зафіксавала спробу эксплуатацыі 17 кастрычніка і пазней заявіла, што PHP2Shell шырока эксплуатуецца, а watchTowr паведаміла аб эксплуатацыі ў дзікай прыродзе. CISA не назірала эксплуатацыі на момант публікацыі, а каманда PHP не бачыла функцыянальнага эксплойта на момант выпуску. watchTowr заяўляе, што большасць публічных сцэнарыяў эксплуатацыі выклікаюць збой або нічога не робяць, а VulnCheck выявіў, што выкананне кода працуе толькі ў некаторых наладах.
Які быў вердыкт The Daily Diff адносна PHP2Shell?
Вердыкт The Daily Diff быў SHIP IT: адпраўце абнаўленне PHP сёння ўвечары, таму што новая версія - адзінае поўнае выпраўленне. CISA рэкамендуе інвентарызаваць кожную сістэму, якая працуе на PHP, уключаючы копіі ўнутры іншага праграмнага забеспячэння, прымяніць патч і адключыць сістэмы PHP, калі іх нельга абнавіць. Amazon раіць праглядзець журналы да 17 кастрычніка, калі была зафіксавана першая спроба.
Перакладзеная стэнаграма
Перакладзена з арыгінальнай англійскай агучкі. Даступнае аўдыя і субтытры кантралююцца YouTube.
Хто спрабаваў PHP2Shell на чатыры дні раней?
0:00 Эмбарга на бяспеку павінна захоўваць памылку ў сакрэце, пакуль не будзе выпушчана выпраўленне. Amazon зафіксавала спробу супраць крытычнай памылкі PHP на чатыры дні раней. У гэтым відэа, хто гэта знайшоў? Як прасачылася эмбарга? І наколькі гэта дрэнна, насамрэч? І кампанія, якую абвінавацілі ў уцечцы, мае абарону, якую я не чакаў. Я дайду да гэтага. Чацвер, дваццаць другое кастрычніка, і гэта The Daily Diff.
0:21 PHP - гэта мова сцэнарыяў, якая стварае вэб-старонкі на серверы непасрэдна перад тым, як яны дасягнуць вас. Ёй больш за трыццаць гадоў і, па адной ацэнцы, яна працуе прыкладна на сямідзесяці працэнтах вэб-сайтаў, уключаючы WordPress і праграмнае забеспячэнне за Вікіпедыяй. Распрацоўшчыкі любяць кпіць з яе, звычайна са старонкі, якую ім падае PHP. Яе падтрымкай займаецца некамерцыйная арганізацыя з прыкладна трынаццаццю інжынерамі.
Што такое дзве памылкі PHP2Shell?
0:41 У сераду PHP выпусціла экстранныя выпраўленні для дзвюх крытычных памылак, якія дазваляюць чужому запусціць код на серверы без лагіна. Разам яны называюцца PHP2Shell, і яны існуюць з PHP пяць кропка чатыры. Вось першая памылка простымі словамі. PHP дае кожнаму запыту бюджэт памяці. Калі запыт дасягае гэтага ліміту ў дакладна няправільны момант, PHP спешна адмяняе яго і пакідае запыт напалову пабудаваным. Затым крок ачысткі давярае напалову пабудаванай рэчы.
1:07 Другая памылка - гэта рэшткавая. Фатальная памылка можа пакінуць запіс, які паказвае на памяць, якая належала апошняму запыту. Той жа работнік апрацоўвае наступны запыт і выконвае запіс. Да таго часу там ужо хтосьці іншы жыве. На Apache з mod PHP шкода адбываецца да таго, як запусціцца ваш уласны код, таму ваша старонка ўваходу ніколі не атрымлівае права голасу. Wiz кажа, што нават сцэнар "hello world" уразлівы. Выпраўленне выдаляе аварыйны выхад PHP пры недахопе памяці.
1:32 Замест таго, каб адмяняць запыт у сярэдзіне, PHP цяпер ветліва спыняецца ў наступным бяспечным пункце. Дзіўная частка - наколькі старая першая падказка.
Чаму вядомая памылка чакала два гады?
1:39 У 2024 годзе знешні аўдыт бяспекі прывёў асноўнага распрацоўшчыка PHP да першых прыкмет праблемы з памяццю. Эксплойт не быў вядомы, і кожнае выпраўленне нешта ламала. Каманда, якая прымае рашэнні кансенсусам, не магла выбраць, таму памылка чакала. Затым у жніўні знайшоўшыя з'явіліся на працягу некалькіх дзён.
Хто знайшоў PHP2Shell і як?
1:56 Даследчык Calif Раян Осцін знайшоў яе першага жніўня, працуючы па праграме OpenAI "Patch the Planet". OpenAI паведаміла пра тую ж першапрычыну незалежна. Wiz знайшоў варыянты праз некалькі тыдняў з мадэлямі Gemini і GPT. Осцін кажа, што ён выкарыстоўваў мадэлі, якія можа атрымаць кожны, плюс тэорыю пра тое, дзе хаваюцца старыя памылкі PHP. OpenAI кажа, што асноўным быў перадавы ІІ. Памылка хавалася больш за дзесяць гадоў. Выпуск быў запланаваны на чацвер.
Як прасачылася эмбарга PHP2Shell?
2:21 У аўторак два нумары CVE пачалі распаўсюджвацца ў інтэрнэце, з няправільным часам выпуску і няправільнай ацэнкай у дзесяць балаў. PHP перанес выпуск на дзень раней. У той вечар Calif выпадкова апублікаваў відэа свайго proof of concept, і копіі перажылі выдаленне. У сераду раніцай, больш чым за шэсць гадзін да выпуску, Chainguard апублікаваў гатовыя вобразы, якія змяшчаюць выпраўленне. PHP кажа, што любы нападнік мог вывучаць гэта выпраўленне, пакуль усе астатнія чакалі.
2:46 Выпраўленне - гэта таксама diff, і нападнікі чытаюць diffs.
Ці эксплуатуецца PHP2Shell і кім?
2:50 Дык каго насамрэч закранаюць? Мядовая пастка Amazon зафіксавала спробу 17 кастрычніка і пазней заявіла, што PHP2Shell шырока эксплуатуецца. watchTowr паведамляе пра эксплуатацыю ў дзікай прыродзе. Cisa заявіла, што не назірала ніякай эксплуатацыі на момант публікацыі, а каманда PHP не бачыла ніводнага працуючага эксплойта на момант выпуску. Генеральны дырэктар Cloudflare заявіў, што за дзесяць гадзін да аб'явы ён бачыў тысячы спроб, а да чацвярга раніцы - мільёны.
3:13 Amazon асцярожны ў адным пункце. Яна не ведае, ці спрацавалі б яе раннія спробы на рэальнай сістэме. Спроба - гэта толькі стук у дзверы. Дык наколькі гэта дрэнна, насамрэч? watchTowr кажа, што большасць публічных эксплойтаў, якія лётаюць вакол, пераважна выклікаюць збой або нічога не робяць. VulnCheck кажа, што выкананне кода працуе ў некаторых наладах, і ні адзін з публічных эксплойтаў не перамагае рандомізацыю памяці на стандартных серверах x86. Даследчык Эліяс Тэйлар кажа, што гэта далёка не так проста, як Log4Shell.
3:40 Усе ўсё яшчэ кажуць выправіць. Урады не чакалі вердыкту.
Што ўрады адключылі?
3:44 NSA параіла арганізацыям, якія не маглі выправіць, адключыць сістэмы PHP, і Нацыянальны цэнтр кібербяспекі Вялікабрытаніі даў аналагічную параду. Галандскія сайты, уключаючы нацыянальную службу лічбавай ідэнтычнасці, зніклі, разам з сайтам паліцыі Парыжа. Wikimedia адключыла некалькі сістэм у якасці меры засцярогі. Palo Alto Networks налічыла больш за дваццаць два мільёны ўразлівых выпадкаў. І аўстралійскі прафесар зрабіў самае дакладнае заўвагу. Трэба турбавацца пра тыя сайты, якія сёння не адключаны.
Якія версіі PHP атрымаюць выпраўленне?
4:11 Выпраўленні існуюць для PHP 8.2 па 8.5. Для 7.4, 8.0 і 8.1 PHP апублікаваў толькі выпраўленні зыходнага кода. Старыя версіі нічога не атрымліваюць ад праекта PHP, таму звярніцеся да свайго дыстрыбутыва. Абходныя шляхі памяншаюць верагоднасць, але PHP заяўляе, што абнаўленне - адзінае поўнае выпраўленне. Гэта той жа ўрок, што і ўчорашні эпізод eMudhra,
Што рабіць з PHP2Shell сёння ўвечары?
4:32 таму што існаванне выпраўлення - гэта не тое ж самае, што яго наяўнасць у запушчаным працэсе. Знайдзіце кожны PHP у вашым стэку, нават копіі, якія хаваюцца ўнутры іншага праграмнага забеспячэння. Абнавіце, перазапусціце работнікаў і праверце журналы да семнаццатага кастрычніка. У той жа дзень GitLab выпусціў крытычнае выпраўленне,
Што яшчэ сёння выпусціла крытычнае выпраўленне RCE?
4:47 дзевятнаццаць кропка пяць кропка адзін. Перапаўненне цэлага ліку ў яго кампілятары рэгулярных выразаў дазваляе неаўтэнтыфікаванаму карыстальніку выконваць код на серверы, і яно ацэньваецца ў дзесяць з дзесяці. GitLab.com ужо выпраўлены. Самастойна кіраваныя ўстаноўкі патрабуюць абнаўлення.
Чаму Meta было загадана заплаціць 25 мільярдаў долараў?
5:01 Між тым у Нью-Мексіка суддзя загадаў Meta заплаціць дваццаць пяць мільярдаў долараў штрафаў за Cambridge Analytica. Журы налічыла больш за сорак тры мільёны парушэнняў па пяць тысяч долараў кожнае, што склала каля двухсот дваццаці мільярдаў, перш чым суддзя скараціў яго. Meta заяўляе, што выйграе апеляцыю. Цяпер абяцаная мной абарона.
Якое апраўданне Chainguard для ранняга выпраўлення?
5:19 Генеральны дырэктар Chainguard распавёў The Register, што ён сам знайшоў тыя ж памылкі ў пятніцу вечарам, даведаўшыся, што нешта набліжаецца ў PHP, з дапамогай простага запыту знайсці дрэнныя ўразлівасці. Ён кажа, што выпусціў раней, таму што людзі ўжо былі закрануты. Калі вы аддаеце перавагу прачытаць гэта, чым пачуць ад мяне, diff трапляе ў вашу скрыню кожную раніцу, бясплатна на thedailydiff.dev, спасылка ніжэй. Такім чынам, сённяшні вердыкт - SHIP IT.
Што атрымлівае штамп SHIP IT?
5:39 Адпраўце абнаўленне PHP сёння ўвечары, таму што новы нумар версіі - адзінае поўнае выпраўленне. І гэта ўсё на сёння. Я Ніка з Axrisi. Аб'ядноўвайце адказна.
Крыніцы
- Today's PHP Security Release, and How We're Strengthening PHP SecurityThe PHP Foundation
- RCE via OOM corruption (GHSA-w8hw-w9fx-j79w)PHP security advisory
- RCE via stale global state (GHSA-6wmf-4rv5-p3rp)PHP security advisory
- Upcoming Critical PHP Security Releasephp.net
- php2shellCalif
- PHP2Shell: AI uncovers critical RCE vulnerabilities affecting 70% of the InternetWiz Research
- Amazon Threat Intelligence identifies PHP2Shell exploitation prior to public disclosure in MadPotAWS Security Blog
- Critical Vulnerabilities in PHP Require Immediate PatchingCISA
- Flaw in PHP computer language leads to shutdown of websites around worldThe Guardian
- What is PHP, and how bad is the computer language flaw causing website shutdowns globally?The Guardian
- PHP2Shell Exploitation Started Days Before PatchesSecurityWeek
- PHP2Shell: Responding to CVE-2026-109618 and CVE-2026-109619Tanium
- There isn't an easy exploit for this PHP vulnerabilityElias Taylor
- PHP blames supply chain security biz Chainguard for putting entire web at riskThe Register
- PHP2Shell: 22M exposed servers at risk as emergency patches releasedTechTarget
- PHP ships emergency patches for critical PHP2Shell flawsBleepingComputer
- GitLab Critical Patch Release: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, 18.11.13GitLab
- Meta ordered to pay $25 billion penalty in New Mexico Cambridge Analytica caseCNBC
- Tell HN: 2x PHP RCE CVEs with CVSS 10.0 IncomingHacker News



