---
title: "První exploit ve věku AI agentů"
description: "Dvacet let platilo, že napsat funkční útok na chybu v paměti umí hrstka lidí na světě. Minulou středu to přestalo platit. Dvě zranitelnosti v jádru PHP ležely v kódu přes deset let, pak přišel jazykový model a zřetězil je za týden. A teď ten hotový skript koluje po internetu."
date: 2026-10-22
author: "Patrick Zandl"
url: https://www.vibecoding.cz/articles/ostatni/prvni-exploit-ve-veku-ai-agentu/
---

> Markdown verze článku z Vibecoding.cz. HTML verze: https://www.vibecoding.cz/articles/ostatni/prvni-exploit-ve-veku-ai-agentu/
> Přehled veškerého obsahu webu: https://www.vibecoding.cz/llms.txt

# První exploit ve věku AI agentů

# První exploit ve věku AI agentů

*Dvacet let platilo, že napsat funkční útok na chybu v paměti umí hrstka lidí na světě. Minulou středu to přestalo platit. Dvě zranitelnosti v jádru PHP ležely v kódu přes deset let, protože je sice někdo našel, ale nikdo je nedokázal proměnit v použitelný útok. Pak přišel jazykový model a zřetězil je za týden. A teď ten hotový skript koluje po internetu. A prakticky z čehokoliv umí stáhnout data. I vaše data.* 

Ve středu 21. října 2026 vydal projekt PHP mimořádné bezpečnostní opravy pro dvě kritické zranitelnosti v samotném interpretu jazyka, CVE-2026-109618 a CVE-2026-109619. Obě mají hodnocení 9.2 z 10 a dovolují neautentizovanému útočníkovi spustit vlastní kód na webovém serveru. Souhrnně se jim říká php2shell. PHP pohání podle W3Techs zhruba 70 procent webů, takže se to týká skoro každého, kdo provozuje něco složitějšího než statickou stránku.

To samo o sobě by byla velká zpráva, ale ne nová svého druhu. Kritické díry v PHP se objevují pravidelně. Nové je na tom něco jiného: jak tyhle chyby dostaly svůj exploit. Možnost, jak je zneužít. 

---

## Deset let latentní chyba

Obě zranitelnosti jsou chyby v práci s pamětí. Zjednodušeně řečeno: když PHP během zpracování požadavku narazí na fatální chybu, typicky dojde paměť, nedokáže po sobě bezpečně uklidit. CVE-2026-109618 nechá vnitřní data jen částečně připravená a následný úklid s nimi pracuje, jako by byla v pořádku. CVE-2026-109619 nechá viset odkazy na paměť, která už byla uvolněná, a další požadavek na stejném procesu se na ně může napojit. V žargonu jde o use-after-free a type confusion v OPcache.

Tyhle vzorce chyb jsou v PHP přítomné roky, u některých verzí přes dekádu, zpátky až k PHP 5.4. Proč je tedy nikdo nezneužil dřív? Protože samotná existence chyby v paměti je půl práce. Druhá půlka, ta těžší, je proměnit ji ve spolehlivý útok. To znamená zřetězit několik chyb za sebou, porozumět tomu, jak konkrétní verze PHP rozmisťuje a recykluje paměť, a celé to odladit pro každý cíl zvlášť. Jiná verze, jiná konfigurace, jiné chování aplikace, a předpoklady, na kterých útok stojí, se sesypou.

Tohle byla historicky doména několika desítek specialistů na světě. Práce na měsíce, na hranici toho, co lidský výzkumník prakticky zvládne.

## Co udělala AI

Chybu našla a exploit sestavila umělá inteligence, a to nezávisle dva týmy.

Bezpečnostní firma Calif (vede ji Thai Duong, nález připisuje Ryanu Austinovi) prošla kód PHP modelem GPT-5.6 Sol od OpenAI v rámci iniciativy, kterou OpenAI pojmenovalo Patch the Planet. První díru nahlásili vývojářům PHP už 11. srpna. Druhá firma, Wiz (koupil ji loni Google), došla ke stejným chybám sama, pomocí vlastního mnohaagentového systému Wiz Atlas doplněného modely Gemini 4 Argon a opět GPT-5.6 Sol.

Wiz to shrnul větou, u které stojí za to se zastavit: jeden výzkumník za týden udělal práci, na kterou by špičkový tým dřív potřeboval měsíce. Modely podle nich zvládly přesně tu otravnou, zdlouhavou část, adaptaci útoku na různé verze a rozložení paměti pomocí opakovaného testování a ladění. Wiz proto srovnává php2shell s Heartbleedem z roku 2014 a mluví o zlomovém bodě.

Nechci to ale malovat jako kouzlo. Sám Calif přidává střízlivou poznámku, kterou většina nadšených titulků vynechala: žádný model prostě neumí jedním promptem vylovit „všechny chyby". Člověk tam pořád je, vede výzkum, klade otázky, ověřuje. AI nenahradila odborníka, zrychlila ho. Jenže v bezpečnosti je zrychlení samo o sobě změnou kategorie nebezpečnosti.

## Kde se laťka opravdu snížila

Teď k tvrzení, že „dnes to replikuje každý IT nadšenec". Je to pravda, ale jen zčásti, a stojí za to rozlišit kde platí a neplatí.

Napsat takový exploit od nuly pořád nedokáže kdokoli. To, co předvedl Calif a Wiz, vyžadovalo špičkové lidi s modely a nástroji. Co se ale změnilo zásadně, jsou dvě jiná místa.

**Zaprvé: první funkční exploit vůbec vznikl.** Dřív tyhle chyby zůstávaly teoretické, protože se nikomu nevyplatilo investovat měsíce práce do nejistého výsledku. AI tu rovnici obrátila. Zranitelnost, která byla „nepraktická", je najednou v dosahu.

**Zadruhé, a to je pro masu to nebezpečné: jakmile hotový skript php2shell uniknul, adaptace na konkrétní cíl je přesně ta úloha, kterou AI zvládá nejlíp.** Máte server s PHP 8.3 v nějaké konkrétní konfiguraci? Vezmete veřejný skript, předhodíte ho modelu, necháte ho doladit na vaše prostředí. Tohle už opravdu zvládne leckdo. Ne proto, že by rozuměl use-after-free, ale proto, že rozumět nemusí.

A přesně tak to dopadlo. Celý koordinovaný proces, který měl dát obráncům čas, se zhroutil, když někdo 20. října vysypal detaily na Hacker News ještě před vydáním oprav. Firma Sansec čekala masové zneužití do patnácti minut od vydání záplaty. watchTowr, Aikido i Patchstack během pár hodin hlásily první útoky v reálném provozu.

## Jak reaguje bezpečnostní průmysl

Reakce byla neobvykle rychlá a sama o sobě ukazuje, kam se věci posouvají.

**Cloudflare** nasadil ochranná pravidla do svého WAF (web application firewall, filtr před webovým serverem) už v 03:02 UTC, zhruba devět hodin před oficiálním zveřejněním, a to i pro zákazníky na bezplatném tarifu. Kvůli téhle chybě dokonce spustil novou schopnost, kterou nazývá full transaction detection: kontroluje nejen příchozí požadavek, ale i odpověď serveru, aby poznal, jestli útok uspěl. To je technicky zajímavé a prakticky užitečné.

Má to ovšem háček, vlastně několik, a je férové je říct. Všechna čísla o útocích pocházejí od Cloudflare, který tu ochranu prodává, a žádná konkrétní čísla nezveřejnil. U placených tarifů sám žádá zákazníky, aby si ověřili, že pravidla běží v režimu blokování, což napovídá, že u některých neběží. A hlavně: server dostupný přímo přes IP adresu mimo Cloudflare dostává požadavky, které přes ten filtr vůbec neprojdou. WAF je druhá vrstva obrany, ne oprava. Opravit se to dá jen aktualizací PHP na serveru.

**OpenAI** k tomu vydalo iniciativu Patch the Planet a na GitHubu nástroj php2shell-checker, kterým si ověříte, jestli vám běží zranitelná verze. Zajímavější je rámec, který k tomu přidali: mluví o „Defender's Window", tedy okně, kdy frontier AI najde chybu dřív než útočníci a dá obráncům náskok. Je to hezká myšlenka. Jen u php2shell to okno zavřel jeden leak na fóru dřív, než stačilo posloužit.

Ozvaly se i státní agentury, americká CISA, NSA a evropský CERT-EU, s naléhavými výzvami k okamžité aktualizaci. To je rutina. Rutina není to, co přijde dál.

A celé to stejně skončilo nepříjemně. Měsíce tiché, koordinované práce měly vyústit ve chvíli, kdy vyjde záplata a teprve pak se svět dozví detaily. Místo toho někdo 20. října vysypal identifikátory chyb na Hacker News, watchTowr během hodin potvrdil, že jsou skutečné, a PHP muselo vydání o den uspíšit a nakonec ho stihnout ještě dřív. Náskok, o kterém OpenAI mluvilo jako o „Defender's Window", se zavřel rychleji, než měl. Obránci dostali hodiny tam, kde počítali se dny.

## Co se bude muset změnit

Z téhle události plyne pár věcí, které si myslím, že budou platit i mimo jednu díru v PHP.

**Okno na záplatování se smrsklo na minuty.** Dokud vznik exploitu trval měsíce, měli obránci rezervu. Když ho AI dodá za týden a adaptaci za hodiny, platí stará rada dvojnásob: defense-in-depth, tedy několik vrstev obrany, přestává být luxus. Kdo spoléhá jen na to, že „to doteď prošlo", prohraje.

**Runtime napsaný v céčku je tikající zdroj těchhle chyb.** PHP, a nejen PHP, stojí na základech, kde chyba v paměti znamená spuštění cizího kódu. Dekádu latentní díra v jádru ukazuje, že revize bezpečnějšími jazyky nebo tvrdšími zárukami runtime nebude akademické cvičení. Bude to nutnost, až modely projdou i zbytek té kódové základny.

**Tohle byl první případ, ne poslední.** Dnes měly špičkové modely jen dva výzkumné týmy. Za rok je bude mít dvacet obranných firem a stejně tak dvacet skupin na druhé straně. Každý další model, který se přiblíží téhle úrovni, otevře další vlnu slabin, které byly roky popsané v teorii, ale nevyplatilo se je zneužívat. Z „technicky možného, prakticky ne" se stává prostě „možného". OpenAI samo počítá s prudkým nárůstem takových nálezů v příštích měsících a nemám důvod jim nevěřit. Otázka nezní jestli, ale jak rychle za sebou.

**Koordinované zveřejnění je křehké.** Celý proces Patch the Planet, měsíce tiché práce, embargo, synchronizované vydání, rozbil jeden anonymní příspěvek. Modely, které chyby chrlí rychleji, zároveň rozšiřují okruh lidí, kterým informace proteče mezi prsty. Proces, který fungoval pro hrstku zasvěcených, bude pod tlakem.

**Symetrie útočníka a obránce se rozpadá na otázku, kdo nasadí AI dřív.** Tentýž model, který obránci najde díru, ji najde i útočníkovi. Náskok se měří na hodiny. Kdo má lepší nástroje a nasadí je agresivněji, vyhrává okno. A to platí pro obě strany.

## Co s tím u nás

Pro živnostníka nebo malou firmu v Česku je praktický závěr prostý. Pokud vám web běží na sdíleném hostingu (Wedos, Forpsi a podobně), zjistěte, jestli a kdy poskytovatel aktualizoval PHP. Je to jeho práce a slušní hostingové ji odvedli během dne. Pokud provozujete vlastní PHP na VPS, aktualizujte okamžitě na 8.5.12, 8.4.27, 8.3.36 nebo 8.2.35. A pokud vám běží PHP 8.1 nebo starší, pro které oficiální oprava nevyjde, máte problém. Dlouhodobě ho vyřeší jen migrace na novější větev.

A hero internetu je Ondřej Surý, který přenesl opravy i na staré verze PHP. Těch přitom běží mraky a jejich admini by si dneska šli hodit mašli. Balíčky pro Debian a Ubuntu najdete v jeho repozitáři na [packages.sury.org/php/pool/main/](https://packages.sury.org/php/pool/main/). Berte to ale jako záplatu, která vám koupí čas na migraci, ne jako důvod na starém PHP zůstat. A pokud nemáte ani tohle, zbývá stáhnout web z internetu, dokud migraci nestihnete.

Jedna poznámka na konec, ať je jasné, co sem nepatří. Téhož dne, 21. října, zveřejnila platforma Railway vlastní bezpečnostní incident, únik proměnných prostředí s klíči k API. S php2shell nesouvisí, je to jiná vlna útoků mířená na poskytovatele AI inference. Ironie je v tom kontrastu: php2shell je exploit, který AI pomohla vyrobit. Railway je útok, který na AI míří. Obojí ve stejný den, a oboje je předzvěst toho, jak bude vypadat bezpečnost příštích let.

A druhá poznámka na konec: chtěl bych teď jít po probdělé noci spát. Musel jsem přerolovat všechny secrets v Railway a projít všechny servery. I s AI Agentem Dijkstrou to dalo dost práce. Ale jedu školit AI… Pamatujte, Make no Mistaikes!

---

*Zdroje: [Wiz Research](https://www.wiz.io/blog/php2shell-php-rce), [Calif](https://calif.io/php2shell/), [OpenAI Patch the Planet](https://cyberscoop.com/php-emergency-patches-php2shell-vulnerabilities/), [Cloudflare](https://blog.cloudflare.com/php-vulnerabilities-waf-protection), [CISA](https://www.cisa.gov/news-events/alerts/2026/10/21/critical-vulnerabilities-php-require-immediate-patching), [Sansec](https://sansec.io/research/php2shell), [SecurityWeek](https://www.securityweek.com/php2shell-patches-land-as-first-exploitation-attempts-hit-sensors/), [CNN](https://www.cnn.com/2026/10/21/tech/php2shell-vulnerability-ai). Platí k 22. říjnu 2026, situace se vyvíjí po hodinách.*
