PHP2Shell: dve kritični napaki PHP, razkrit embargo in kaj je dejansko znanega o izkoriščanju
PHP je poslal nujne popravke za dve kritični ranljivosti izvajanja oddaljene kode, CVE-2026-109618 in CVE-2026-109619, imenovani PHP2Shell.
PHP je poslal nujne popravke za dve kritični ranljivosti izvajanja oddaljene kode, CVE-2026-109618 in CVE-2026-109619, imenovani PHP2Shell. Izdaja je izšla 21. oktobra 2026. Epizoda pojasnjuje dve pomnilniški napaki z enostavnimi besedami, zakaj je namig iz revizije 2024 čakal na popravek, kako je embargo pricurljal v javnost in kateri viri kaj pravijo o izkoriščanju. Zajema tudi GitLabovo kritično izdajo popravka istega dne in odredbo o kazni v višini 25 milijard dolarjev za Meto v Novi Mehiki.
Preberi pisno izdajo (angleščina) ↗
Kaj zajema ta videoposnetek
- Obe napaki je ekipa PHP ocenila z 9.2 na CVSS v4.0. Popravljene izdaje so PHP 8.2.35, 8.3.36, 8.4.27 in 8.5.12; PHP 7.4, 8.0 in 8.1 so prejeli le popravke izvorne kode. PHP pravi, da je posodabljanje edina popolna ublažitev.
- Prva napaka izvira iz tega, da PHP pusti zahtevo na pol zgrajeno, ko mu v napačnem trenutku zmanjka pomnilnika. Druga izvira iz preostalega kazalca na pomnilnik ene zahteve, ki ga lahko kasnejša zahteva v istem delavcu uporabi. Na Apacheju z mod_php se prva pot izvede pred kodo aplikacije.
- Razvijalec jedra PHP je prve znake pomnilniškega problema odkril med revizijo leta 2024. PHP Foundation pravi, da so se konkurenčni popravki spopadali s kompromisi in da se je varnostna ekipa, ki odloča s soglasjem, trudila izbrati, kar imenujejo strukturna napaka.
- Fundacija pravi, da so se CVE ID-ji razkrili 20. oktobra, Calif je pomotoma objavil video dokaza koncepta, in Chainguard je objavil zgrajene slike s popravkom več kot šest ur pred objavo. Generalni direktor Chainguarda pravi, da so bili ljudje že prizadeti in da je napake odkril samostojno.
- Viri se ne strinjajo glede izkoriščanja. Amazon je 17. oktobra zabeležil poskus in kasneje dejal, da je bil PHP2Shell široko izkoriščen. watchTowr je poročal o izkoriščanju v divjini. CISA v času objave ni opazila izkoriščanja, ekipa PHP pa ob izdaji ni našla delujočega izkoriščanja. Mnogi javni skripti za dokazovanje koncepta naj bi ne delovali.
- Preverite vsa mesta, kjer se izvaja PHP, vključno s kopijami znotraj druge programske opreme, posodobite, znova zaženite delavce in preglejte dnevnike vse do 17. oktobra.
Vprašanja in odgovori
Katere so ranljivosti PHP2Shell?
PHP2Shell poimenuje dve kritični napaki PHP, CVE-2026-109618 in CVE-2026-109619, ki jih ekipa PHP ocenjuje z 9.2. Prva pusti zahtevo na pol zgrajeno, ko PHP v napačnem trenutku zmanjka pomnilnika, in čiščenje ji nato zaupa. Druga pusti kazalec na pomnilnik ene zahteve, ki ga lahko kasnejša zahteva v istem delavcu uporabi. Obe lahko vodita do izvajanja kode brez prijave.
Katere različice PHP imajo popravek za PHP2Shell in kaj pa nepodprte različice?
Projekt PHP je 21. oktobra izdal popravke v različicah 8.2.35, 8.3.36, 8.4.27 in 8.5.12. Za različice 7.4, 8.0 in 8.1 je objavil le izvorne popravke, BleepingComputer pa poroča, da lahko distribucije in prodajalci dolgoročne podpore zagotovijo prenesene popravke. PHP pravi, da ni popolne rešitve, zato je posodabljanje ali iskanje popravljenega paketa pri prodajalcu edina varna izbira.
Zakaj je znana napaka pomnilnika v PHP čakala na popravek do oktobra 2026?
PHP Foundation pravi, da je razvijalec jedra našel prve znake pomnilniškega problema med varnostno revizijo leta 2024, vendar ni bila znana nobena pot izkoriščanja in vsak kandidat za popravek je imel kompromise, kot so prekinitve združljivosti. Varnostna ekipa odloča s soglasjem in se je trudila izbrati, kar Fundacija imenuje strukturna napaka, ki jo povzroča njen postopek odločanja in pomanjkanje virov.
Ali je PHP2Shell izkoriščen in kako enostavno ga je izkoriščati?
Viri se ne strinjajo. Amazon je 17. oktobra zabeležil poskus izkoriščanja in kasneje dejal, da je bil PHP2Shell široko izkoriščen, watchTowr pa je poročal o izkoriščanju v divjini. CISA v času objave ni opazila izkoriščanja, ekipa PHP pa ob izdaji ni videla delujočega izkoriščanja. watchTowr pravi, da večina javnih izkoriščevalskih skriptov povzroči padec ali ne naredi ničesar, VulnCheck pa je ugotovil, da izvajanje kode deluje le v nekaterih nastavitvah.
Kakšna je bila sodba The Daily Diff o PHP2Shell?
Sodba The Daily Diff je bila SHIP IT: posodobite PHP nocoj, ker je nova različica edini popoln popravek. CISA pravi, naj se popiše vsak sistem, ki poganja PHP, vključno s kopijami znotraj druge programske opreme, uporabi popravek in izklopi PHP sisteme, če jih ni mogoče posodobiti. Amazon svetuje pregledovanje dnevnikov vse do 17. oktobra, ko je bil zabeležen prvi poskus.
Preveden prepis
Prevedeno iz izvirnega angleškega pripovedovanja. Razpoložljivi zvok in podnapisi so nadzorovani s strani YouTuba.
Kdo je poskusil PHP2Shell štiri dni prej?
0:00 Varnostni embargo naj bi napako ohranil tiho, dokler ni izdan popravek. Amazon je štiri dni prej zabeležil poskus proti kritični napaki PHP. V tem videu, kdo jo je našel? Kako je embargo bil razkrit? In kako resno je to, zares? In podjetje, ki je bilo obtoženo za razkritje, ima obrambo, ki je nisem pričakoval. Prideva do tega. Četrtek, dvaindvajseti oktober, in to je The Daily Diff.
0:21 PHP je skriptni jezik, ki gradi spletne strani na strežniku tik preden pridejo do vas. Star je več kot trideset let in po eni oceni poganja približno sedemdeset odstotkov spletnih strani, vključno z WordPressom in programsko opremo za Wikipedio. Razvijalci ga radi zasmehujejo, običajno s strani, ki jim jo postreže PHP. Njegovo vzdrževanje je neprofitna organizacija s približno trinajstimi inženirji.
Katere sta dve napaki PHP2Shell?
0:41 V sredo je PHP izdal nujne popravke za dve kritični napaki, ki omogočata tujcu izvajanje kode na strežniku brez prijave. Skupaj se imenujejo PHP2Shell in segajo nazaj v PHP pet pika štiri. Tukaj je prva napaka v preprostih besedah. PHP vsaki zahtevi dodeli proračun pomnilnika. Če zahteva doseže to mejo točno v napačnem trenutku, PHP se na hitro umakne in pusti zahtevo na pol zgrajeno. Nato korak čiščenja zaupa na pol zgrajeni stvari.
1:07 Druga napaka je ostanek. Fatalna napaka lahko pusti opombo, ki kaže na pomnilnik, ki je pripadal zadnji zahtevi. Isti delavec obdela naslednjo zahtevo in sledi opombi. Takrat že nekdo drug živi na tem naslovu. Na Apacheju z mod PHP se škoda zgodi, preden se izvede vaša lastna koda, tako da vaša prijavna stran nikoli ne dobi glasu. Wiz pravi, da je izpostavljen celo skript hello world. Popravek odstrani PHP-jev nujni izhod za pomanjkanje pomnilnika.
1:32 Namesto da se umakne sredi zahteve, se PHP zdaj vljudno ustavi na naslednji varni točki. Nenavaden del je, kako star je prvi namig.
Zakaj je znana napaka čakala dve leti?
1:39 Leta 2024 je zunanja varnostna revizija pripeljala razvijalca jedra PHP do prvih znakov pomnilniškega problema. Izkoristek ni bil znan, in vsak popravek je nekaj pokvaril. Ekipa, ki odloča s soglasjem, ni mogla izbrati, zato je napaka čakala. Nato so se avgusta iskalci pojavili v nekaj dneh.
Kdo je našel PHP2Shell in kako?
1:56 Raziskovalec Califa Ryan Austin jo je našel prvega avgusta, delo v programu OpenAI Patch the Planet. OpenAI je neodvisno poročal o istem osnovnem vzroku. Wiz je nekaj tednov kasneje z modeli Gemini in GPT našel variante. Austin pravi, da je uporabljal modele, ki so dostopni vsakomur, poleg teorije o tem, kje se skrivajo stare napake PHP-ja. OpenAI pravi, da je bila ključna AI na meji. Napaka se je skrivala več kot desetletje. Izdaja je bila načrtovana za četrtek.
Kako je embargo PHP2Shell bil razkrit?
2:21 V torek sta začeli krožiti dve številki CVE na spletu, z napačnim časom izdaje in napačno oceno deset. PHP je izdajo prestavil za en dan. Tistega večera je Calif pomotoma objavil video svojega dokaza koncepta delujočega, in kopije so preživele izbris. V sredo zjutraj, več kot šest ur pred objavo, je Chainguard objavil zgrajene slike, ki vsebujejo popravek. PHP pravi, da bi lahko vsak napadalec preučeval ta popravek, medtem ko so vsi drugi čakali.
2:46 Popravek je tudi diff, in napadalci berejo diffs.
Ali je PHP2Shell izkoriščen in kdo ga izkorišča?
2:50 Torej, kdo je dejansko prizadet? Amazonov medeni lonec je 17. oktobra zabeležil poskus in kasneje dejal, da je PHP2Shell široko izkoriščen. watchTowr poroča o izkoriščanju v divjini. Cisa je povedala, da ni opazila nobenega, ko je objavila, in PHP ekipa ni videla nobenega delujočega izkoriščanja ob izdaji. Generalni direktor Cloudflare je dejal, da je v desetih urah pred objavo videl na tisoče poskusov, in milijone do četrtkovega jutra.
3:13 Amazon je previden pri eni točki. Ne ve, ali bi njegovi najzgodnejši poskusi delovali na resničnem sistemu. Poskus je le trkanje na vrata. Torej, kako resno je to, zares? watchTowr pravi, da javni izkoriščanja, ki krožijo, večinoma povzročijo padec ali ne naredijo ničesar. VulnCheck pravi, da izvajanje kode deluje v nekaterih nastavitvah, in nobeden od javnih ne premaga naključne porazdelitve pomnilnika na standardnih x86 strežnikih. Raziskovalec Elias Taylor pravi, da ni niti približno tako enostavno kot Log4Shell.
3:40 Vsi še vedno pravijo popravek. Vlade niso čakale na sodbo.
Kaj so vlade dale brez povezave?
3:44 NSA je organizacijam, ki niso mogle popraviti, naročila, naj sisteme PHP izklopijo, in britanski Nacionalni center za kibernetsko varnost je dal podoben nasvet. Nizozemske spletne strani, vključno z nacionalno storitvijo digitalne identitete, so se izklopile, skupaj s spletno stranjo pariške policije. Wikimedia je preventivno izklopila več sistemov. Palo Alto Networks je preštel več kot dvaindvajset milijonov izpostavljenih instanc. In avstralski profesor je podal najostrejšo točko. Spletne strani, zaradi katerih je treba skrbeti, so tiste, ki danes niso izklopljene.
Katere različice PHP dobijo popravek?
4:11 Popravki obstajajo za PHP osem pika dve do osem pika pet. Za sedem pika štiri, osem pika oh in osem pika ena, PHP je objavil samo izvorne popravke. Starejše različice ne dobijo ničesar od projekta PHP, zato vprašajte svojo distribucijo. Rešitve zmanjšajo verjetnost, vendar PHP pravi, da je posodobitev edina popolna rešitev. To je ista lekcija kot včerajšnja epizoda eMudhra,
Kaj storiti glede PHP2Shell nocoj?
4:32 ker obstoj popravka ni isto kot da ga ima tekoči proces. Poiščite vsak PHP v svojem skladju, tudi kopije, ki se skrivajo znotraj druge programske opreme. Posodobite, znova zaženite delavce in preglejte dnevnike vse do sedemnajstega oktobra. Isti dan je GitLab izdal kritični popravek,
Kaj drugega je danes izdalo kritični RCE popravek?
4:47 devetnajst pika pet pika ena. Celotno prelivanje v njegovem prevajalniku regularnih izrazov omogoča neoverjenemu uporabniku zagon kode na strežniku, in dosega deset od desetih. GitLab dot com je že popravljen. Samoupravljene namestitve potrebujejo posodobitev.
Zakaj je bila Meti naložena kazen v višini 25 milijard dolarjev?
5:01 Medtem v Novi Mehiki je sodnik odredil Meti plačilo petindvajset milijard dolarjev kazni zaradi Cambridge Analytice. Žirija je naštela več kot triinštirideset milijonov kršitev po do pet tisoč dolarjev za vsako, kar je znašalo približno dvesto dvajset milijard, preden je sodnik to zmanjšal. Meta pravi, da bo zmagala na pritožbi. Zdaj obramba, ki sem jo obljubil.
Kakšna je obramba Chainguarda za zgodnji popravek?
5:19 Generalni direktor Chainguarda je za The Register povedal, da je sam našel iste napake v petek zvečer, potem ko je izvedel, da nekaj prihaja v PHP, z osnovnim pozivom za iskanje slabih ranljivosti. Pravi, da je izdal zgodaj, ker so bili ljudje že napadeni. Če raje to preberete, kot da me poslušate, se diff vsako jutro brezplačno pojavi v vaši e-pošti na the daily diff dot dev, povezava spodaj. Zato je današnja sodba SHIP IT.
Kaj dobi žig SHIP IT?
5:39 Posodobite PHP nocoj, ker je nova številka različice edini popoln popravek. In to je diff za danes. Sem Niko iz Axrisi. Združite odgovorno.
Viri
- 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



