{"id":3878,"date":"2026-10-24T17:42:49","date_gmt":"2026-10-24T15:42:49","guid":{"rendered":"https:\/\/trustlab.upct.es\/?p=3878"},"modified":"2026-10-24T17:51:05","modified_gmt":"2026-10-24T15:51:05","slug":"php2shell-ai-didnt-find-the-bug-on-its-own","status":"publish","type":"post","link":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/","title":{"rendered":"php2shell: AI didn&#8217;t find the bug on its own"},"content":{"rendered":"<p data-lfile-container=\"e2604c9c-2dbc-4c8e-946b-dd7a7f06af07\" data-pm-slice=\"1 3 []\">On October 21, PHP released emergency patches for php2shell, two flaws that make it possible to run code on a web server without authenticating. Almost every headline summed it up the same way: AI has found a bug that puts 70% of the web at risk.<\/p>\n<p>That&#8217;s true, but it&#8217;s the least interesting part. If you read the reports from those who discovered it, the story is a different one: a flaw with roots in 2004, warned about several times, and a researcher who knew exactly what to ask the model.<\/p>\n<h2 id=\"what-php2shell-is-and-why-it-is-so-serious\">What php2shell is and why it is so serious<\/h2>\n<p>php2shell groups together two vulnerabilities in the PHP core, CVE-2026-109618 and CVE-2026-109619, both with a CVSS v4.0 score of 9.2. They allow an attacker without credentials to run code on the server or read the process&#8217;s memory, which may contain passwords, tokens, or API keys.<\/p>\n<p>What makes them exceptional is where they are: in the interpreter itself, not in the application. It doesn&#8217;t matter whether a WordPress site, a Drupal site, or a simple &#8220;Hello, world&#8221; is well written. It affects any installation that serves web requests (PHP-FPM, Apache with mod_php, php-cgi, FrankenPHP, LiteSpeed), with vulnerable versions going back to PHP 5.4.<\/p>\n<p>The cause, in one sentence: when PHP runs out of memory or another fatal error interrupts its native code, it abandons the operation halfway through without cleaning up. Internal state is left pointing to memory that has already been freed, and the next request handled by that same process reuses it.<\/p>\n<p>The reaction shows the scale of the problem: Finland, the Netherlands, France, and Canada took government websites offline as a precaution on the day of the patch.<\/p>\n<h2 id=\"a-22-year-story\">A 22-year story<\/h2>\n<p>The flaw didn&#8217;t come out of nowhere. Calif tells it as a genealogy, and that is the most valuable part of its report.<\/p>\n<ul>\n<li>2004. Stefan Esser, then the leading reference in PHP security, publishes the first remote vulnerability based on the memory limit (<code spellcheck=\"false\">memory_limit<\/code>). Those specific paths are fixed, but not the class of problem.<\/li>\n<li>2020. Bug #78876 is reported: very long variables in multipart forms exhaust memory and leave temporary files undeleted. It is treated as something minor.<\/li>\n<li>2024. During PHP&#8217;s first external audit, carried out by Quarkslab with OSTIF and funded by Germany&#8217;s Sovereign Tech Agency, signs of the problem appear again. It is not shown to be exploitable, and it is not fixed.<\/li>\n<li>2026. Two teams, separately and only a few weeks apart, turn that lead into remote code execution.<\/li>\n<\/ul>\n<p>The PHP Foundation acknowledges that in 2024 it had several proposed fixes on the table and spent months without making a decision. The Foundation itself calls it a structural failure, due to the way it made decisions and to a lack of resources.<\/p>\n<h2 id=\"how-it-was-found-in-2026\">How it was found in 2026<\/h2>\n<p>In July, OpenAI invited the company Calif to join its Patch the Planet initiative, which funds audits of open-source software using frontier models. Calif chose PHP without high expectations, because it had already been through many AI-assisted audits. Researcher Ryan Austin, who knew Esser&#8217;s work well, started from a hypothesis: perhaps relatives of that 2004 flaw were still alive.<\/p>\n<p>His method, as he describes it, was a guided conversation in four steps:<\/p>\n<ol>\n<li>Trigger the failure at will. He asked the model for ways to exhaust memory with a single request. The most elegant one uses empty file uploads with deeply nested field names: a request body of less than 8\u00a0MiB ends up taking more than the default 128\u00a0MiB of memory.<\/li>\n<li>Find where the interruption hurts. He asked the agent to review the memory manager, fatal errors, and request shutdown. The agent saw that a hash table function increments its counters before initializing the element. If memory runs out right at that point, the subsequent cleanup treats half-finished data as valid.<\/li>\n<li>Generalize the pattern. They asked the model to turn that finding into a reusable search rule: publish a state, do something that can fail, and only then commit. With it, another variant appeared, in session upload progress tracking.<\/li>\n<li>Take it to PHP-FPM. The first variants only worked against Apache with mod_php. For the most common setup today, they turned to PHP&#8217;s unserializer, an old acquaintance in the language&#8217;s security history, and to its shared state.<\/li>\n<\/ol>\n<p>Calif found the first paths to remote code execution on August 1, reported it on August 11, and sent a proof of concept on August 14. Wiz Research reached the same class of flaws on its own on August 19, using its Wiz Atlas system, Gemini 4 Argon, and GPT-5.6 Sol, and reported it on August 24. OpenAI&#8217;s security team added more attack vectors in September.<\/p>\n<h2 id=\"what-ai-contributed-and-what-it-didnt\">What AI contributed, and what it didn&#8217;t<\/h2>\n<p>This, for me, is the underlying lesson. Austin insists that he used no special environment and no models beyond the public&#8217;s reach. What made the difference was knowing the target and its vulnerability history, and starting from a theory. His advice fits in three words: <em>know your target<\/em>.<\/p>\n<p>He adds a very useful observation for anyone doing research with these tools. When looking for variants, models tend to start from the most recent and best-known bugs and move toward nearby code. They don&#8217;t usually start with obscure primitives from twenty years ago. Whoever knows that history can lead them there.<\/p>\n<p>Wiz puts the emphasis on the other half of the work: exploitation. Turning these flaws into a reliable exploit requires chaining bugs and adjusting to how each version and configuration organizes memory. Before, that meant a lot of manual debugging for each target. With the models, they adapted exploits to several applications in hours.<\/p>\n<p>According to their estimate, a single person did in one week what would previously have taken a top-tier team months.<\/p>\n<p>The two readings fit together. AI didn&#8217;t have the idea, but it made testing and exploiting it much, much cheaper. And that changes the math: a flaw too complex to be worth the effort is no longer protected by its complexity.<\/p>\n<h2 id=\"the-other-side-those-who-maintain-the-software\">The other side: those who maintain the software<\/h2>\n<p>The story has a less eye-catching and perhaps more important side. The security of PHP, which supports a large part of the web, depends on a small team funded by the PHP Foundation and some volunteer help.<\/p>\n<p>Since July, that team has published 15 CVEs and reviewed more than 100 reports that turned out to be invalid, duplicates, or impossible to reproduce. AI doesn&#8217;t only find real flaws: it also multiplies the noise that reaches maintainers.<\/p>\n<p>Coordinated disclosure didn&#8217;t fully hold up either:<\/p>\n<ul>\n<li>October 20, around 15:00 UTC. The CVE identifiers circulate with an incorrect score and date, without technical details. PHP moves up its advance notice and shifts the patch from the 22nd to the 21st.<\/li>\n<li>That same night. Calif mistakenly publishes a video of its proof of concept that reveals some details.<\/li>\n<li>October 21, 07:41 UTC. More than six hours before the agreed time, Chainguard publishes images with the patch and breaks the embargo.<\/li>\n<\/ul>\n<p>The Foundation has already changed the way it works. Among other things, its security decisions are moving from consensus to majority vote, and it is asking companies that use PHP to fund its security.<\/p>\n<h2 id=\"what-to-do-now\">What to do now<\/h2>\n<p>If you manage servers running PHP, the only complete solution is to update.<\/p>\n<ul>\n<li>Fixed versions: 8.5.12, 8.4.27, 8.3.36, and 8.2.35. Version 8.1 and earlier have no official release; PHP published minimal source code patches for 7.4, 8.0, and 8.1.<\/li>\n<li>Distribution packages: check your distribution&#8217;s security advisory. The version number may be different even if the patch is included.<\/li>\n<li>Restart the processes: PHP-FPM, Apache, and any long-running PHP process. A process that isn&#8217;t restarted keeps running the vulnerable code.<\/li>\n<li>Look for hidden PHP: products, appliances, and containers that include it, even if your main website doesn&#8217;t use it.<\/li>\n<li>Temporary mitigations: disabling <code spellcheck=\"false\">session.upload_progress<\/code> or removing the memory limit are partial measures with side effects. They help buy time; they don&#8217;t replace the patch.<\/li>\n<\/ul>\n<h2 id=\"what-it-leaves-us-with\">What it leaves us with<\/h2>\n<p>For those of us who work in network, system, and service security, and in secure communications, php2shell leaves three clear ideas:<\/p>\n<ul>\n<li>Domain knowledge is still the decisive advantage. Models amplify those who know what to ask; they don&#8217;t replace that intuition.<\/li>\n<li>Complexity is no longer a defense. A known but &#8220;hard to exploit&#8221; flaw should be treated as exploitable.<\/li>\n<li>The bottleneck has shifted to maintenance. Finding flaws keeps getting cheaper; fixing them, coordinating them, and deploying them still depends on small teams with few resources.<\/li>\n<\/ul>\n<p>We recommend reading the original reports, especially Calif&#8217;s: it is a practical lesson in vulnerability research with AI.<\/p>\n<h2 id=\"references\">References<\/h2>\n<ul>\n<li><a href=\"https:\/\/calif.io\/php2shell\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Calif \u2014 php2shell: A tale of two PHP remote vulnerabilities<\/a> (Ryan Austin)<\/li>\n<li><a href=\"https:\/\/www.wiz.io\/blog\/php2shell-php-rce\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Wiz Research \u2014 PHP2Shell: AI uncovers critical RCE vulnerabilities affecting 70% of the Internet<\/a><\/li>\n<li><a href=\"https:\/\/thephp.foundation\/blog\/2026\/10\/21\/todays-php-security-release-and-how-were-strengthening-php-security\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">PHP Foundation \u2014 Today&#8217;s PHP Security Release, and How We&#8217;re Strengthening PHP Security<\/a><\/li>\n<li><a href=\"http:\/\/openai.com\/index\/coordinated-disclosure-of-critical-vulnerabilities\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">OpenAI \u2014 Patch the Planet: coordinated disclosure of critical vulnerabilities<\/a><\/li>\n<li><a href=\"https:\/\/www.php.net\/archive\/2026.php#2026-10-21-5\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">PHP security advisory, October 21, 2026<\/a><\/li>\n<li><a href=\"https:\/\/marc.info\/?l=bugtraq&amp;m=108981780109154&amp;w=2\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Stefan Esser&#8217;s 2004 Bugtraq advisory<\/a><\/li>\n<li><a href=\"https:\/\/bugs.php.net\/bug.php?id=78876\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">PHP bug #78876<\/a><\/li>\n<li>Coverage: <a href=\"https:\/\/simonwillison.net\/2026\/Oct\/21\/php-security-release\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Simon Willison<\/a>, <a href=\"https:\/\/thenextweb.com\/news\/php-foundation-structural-failure-2024-flaw-leak\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">The Next Web<\/a>, <a href=\"https:\/\/socket.dev\/blog\/php-embargo-dispute\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Socket<\/a>, <a href=\"https:\/\/www.unite.ai\/?p=492046\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Unite.AI<\/a>, <a href=\"https:\/\/decrypt.co\/381567\/who-found-php-bug-governments-unplug-websites-chatgpt\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Decrypt<\/a>, <a href=\"https:\/\/letsdatascience.com\/news\/canada-pulls-government-websites-after-ai-found-php-flaws-4e373485\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Let&#8217;s Data Science<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>On October 21, PHP released emergency patches for php2shell, two flaws that make it possible to run code on a web server without authenticating. Almost every headline summed it up the same way: AI has found a bug that puts 70% of the web at risk. That&#8217;s true, but it&#8217;s the least interesting part. If [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":3880,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34],"tags":[],"class_list":["post-3878","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tips"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"On October 21, PHP released emergency patches for php2shell, two flaws that make it possible to run code on a web server without authenticating. Almost every headline summed it up the same way: AI has found a bug that puts 70% of the web at risk. That&#039;s true, but it&#039;s the least interesting part. If\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"mdcano\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"TRUST Lab - Sitio dedicado a la investigaci\u00f3n, desarrollo y formaci\u00f3n en ciberseguridad y tecnolog\u00edas digitales avanzadas.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"php2shell: AI didn\u2019t find the bug on its own - TRUST Lab\" \/>\n\t\t<meta property=\"og:description\" content=\"On October 21, PHP released emergency patches for php2shell, two flaws that make it possible to run code on a web server without authenticating. Almost every headline summed it up the same way: AI has found a bug that puts 70% of the web at risk. That&#039;s true, but it&#039;s the least interesting part. If\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/trustlab.upct.es\/wp-content\/uploads\/2024\/05\/TL-logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/trustlab.upct.es\/wp-content\/uploads\/2024\/05\/TL-logo.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-10-24T15:42:49+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-10-24T15:51:05+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"php2shell: AI didn\u2019t find the bug on its own - TRUST Lab\" \/>\n\t\t<meta name=\"twitter:description\" content=\"On October 21, PHP released emergency patches for php2shell, two flaws that make it possible to run code on a web server without authenticating. Almost every headline summed it up the same way: AI has found a bug that puts 70% of the web at risk. That&#039;s true, but it&#039;s the least interesting part. If\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/trustlab.upct.es\/wp-content\/uploads\/2024\/05\/TL-logo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/2026\\\/10\\\/24\\\/php2shell-ai-didnt-find-the-bug-on-its-own\\\/#blogposting\",\"name\":\"php2shell: AI didn\\u2019t find the bug on its own - TRUST Lab\",\"headline\":\"php2shell: AI didn&#8217;t find the bug on its own\",\"author\":{\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/author\\\/mdcano\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/trustlab.upct.es\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/EN-\\u00b7-Web-image-\\u00b7-1200\\u00d7627@1x.jpg\",\"width\":1200,\"height\":627},\"datePublished\":\"2026-10-24T17:42:49+02:00\",\"dateModified\":\"2026-10-24T17:51:05+02:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/2026\\\/10\\\/24\\\/php2shell-ai-didnt-find-the-bug-on-its-own\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/2026\\\/10\\\/24\\\/php2shell-ai-didnt-find-the-bug-on-its-own\\\/#webpage\"},\"articleSection\":\"Tips\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/2026\\\/10\\\/24\\\/php2shell-ai-didnt-find-the-bug-on-its-own\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/#listItem\",\"position\":1,\"name\":\"Hogar\",\"item\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/category\\\/tips\\\/#listItem\",\"name\":\"Tips\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/category\\\/tips\\\/#listItem\",\"position\":2,\"name\":\"Tips\",\"item\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/category\\\/tips\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/2026\\\/10\\\/24\\\/php2shell-ai-didnt-find-the-bug-on-its-own\\\/#listItem\",\"name\":\"php2shell: AI didn&#8217;t find the bug on its own\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/#listItem\",\"name\":\"Hogar\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/2026\\\/10\\\/24\\\/php2shell-ai-didnt-find-the-bug-on-its-own\\\/#listItem\",\"position\":3,\"name\":\"php2shell: AI didn&#8217;t find the bug on its own\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/category\\\/tips\\\/#listItem\",\"name\":\"Tips\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/#organization\",\"name\":\"TRUST Lab\",\"description\":\"Sitio dedicado a la investigaci\\u00f3n, desarrollo y formaci\\u00f3n en ciberseguridad y tecnolog\\u00edas digitales avanzadas.\",\"url\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/trustlab.upct.es\\\/wp-content\\\/uploads\\\/2024\\\/05\\\/TL-logo.png\",\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/2026\\\/10\\\/24\\\/php2shell-ai-didnt-find-the-bug-on-its-own\\\/#organizationLogo\",\"width\":201,\"height\":44},\"image\":{\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/2026\\\/10\\\/24\\\/php2shell-ai-didnt-find-the-bug-on-its-own\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/author\\\/mdcano\\\/#author\",\"url\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/author\\\/mdcano\\\/\",\"name\":\"mdcano\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/2026\\\/10\\\/24\\\/php2shell-ai-didnt-find-the-bug-on-its-own\\\/#authorImage\",\"url\":\"https:\\\/\\\/trustlab.upct.es\\\/wp-content\\\/litespeed\\\/avatar\\\/6076032dbef8947839897d816a8acab1.jpg?ver=1792497635\",\"width\":96,\"height\":96,\"caption\":\"mdcano\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/2026\\\/10\\\/24\\\/php2shell-ai-didnt-find-the-bug-on-its-own\\\/#webpage\",\"url\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/2026\\\/10\\\/24\\\/php2shell-ai-didnt-find-the-bug-on-its-own\\\/\",\"name\":\"php2shell: AI didn\\u2019t find the bug on its own - TRUST Lab\",\"description\":\"On October 21, PHP released emergency patches for php2shell, two flaws that make it possible to run code on a web server without authenticating. Almost every headline summed it up the same way: AI has found a bug that puts 70% of the web at risk. That's true, but it's the least interesting part. If\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/2026\\\/10\\\/24\\\/php2shell-ai-didnt-find-the-bug-on-its-own\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/author\\\/mdcano\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/author\\\/mdcano\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/trustlab.upct.es\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/EN-\\u00b7-Web-image-\\u00b7-1200\\u00d7627@1x.jpg\",\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/2026\\\/10\\\/24\\\/php2shell-ai-didnt-find-the-bug-on-its-own\\\/#mainImage\",\"width\":1200,\"height\":627},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/2026\\\/10\\\/24\\\/php2shell-ai-didnt-find-the-bug-on-its-own\\\/#mainImage\"},\"datePublished\":\"2026-10-24T17:42:49+02:00\",\"dateModified\":\"2026-10-24T17:51:05+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/\",\"name\":\"TRUST Lab\",\"description\":\"Sitio dedicado a la investigaci\\u00f3n, desarrollo y formaci\\u00f3n en ciberseguridad y tecnolog\\u00edas digitales avanzadas.\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/trustlab.upct.es\\\/en\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"php2shell: AI didn\u2019t find the bug on its own - TRUST Lab","description":"On October 21, PHP released emergency patches for php2shell, two flaws that make it possible to run code on a web server without authenticating. Almost every headline summed it up the same way: AI has found a bug that puts 70% of the web at risk. That's true, but it's the least interesting part. If","canonical_url":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/#blogposting","name":"php2shell: AI didn\u2019t find the bug on its own - TRUST Lab","headline":"php2shell: AI didn&#8217;t find the bug on its own","author":{"@id":"https:\/\/trustlab.upct.es\/en\/author\/mdcano\/#author"},"publisher":{"@id":"https:\/\/trustlab.upct.es\/en\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/trustlab.upct.es\/wp-content\/uploads\/2026\/10\/EN-\u00b7-Web-image-\u00b7-1200\u00d7627@1x.jpg","width":1200,"height":627},"datePublished":"2026-10-24T17:42:49+02:00","dateModified":"2026-10-24T17:51:05+02:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/#webpage"},"isPartOf":{"@id":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/#webpage"},"articleSection":"Tips"},{"@type":"BreadcrumbList","@id":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/trustlab.upct.es\/en\/#listItem","position":1,"name":"Hogar","item":"https:\/\/trustlab.upct.es\/en\/","nextItem":{"@type":"ListItem","@id":"https:\/\/trustlab.upct.es\/en\/category\/tips\/#listItem","name":"Tips"}},{"@type":"ListItem","@id":"https:\/\/trustlab.upct.es\/en\/category\/tips\/#listItem","position":2,"name":"Tips","item":"https:\/\/trustlab.upct.es\/en\/category\/tips\/","nextItem":{"@type":"ListItem","@id":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/#listItem","name":"php2shell: AI didn&#8217;t find the bug on its own"},"previousItem":{"@type":"ListItem","@id":"https:\/\/trustlab.upct.es\/en\/#listItem","name":"Hogar"}},{"@type":"ListItem","@id":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/#listItem","position":3,"name":"php2shell: AI didn&#8217;t find the bug on its own","previousItem":{"@type":"ListItem","@id":"https:\/\/trustlab.upct.es\/en\/category\/tips\/#listItem","name":"Tips"}}]},{"@type":"Organization","@id":"https:\/\/trustlab.upct.es\/en\/#organization","name":"TRUST Lab","description":"Sitio dedicado a la investigaci\u00f3n, desarrollo y formaci\u00f3n en ciberseguridad y tecnolog\u00edas digitales avanzadas.","url":"https:\/\/trustlab.upct.es\/en\/","logo":{"@type":"ImageObject","url":"https:\/\/trustlab.upct.es\/wp-content\/uploads\/2024\/05\/TL-logo.png","@id":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/#organizationLogo","width":201,"height":44},"image":{"@id":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/trustlab.upct.es\/en\/author\/mdcano\/#author","url":"https:\/\/trustlab.upct.es\/en\/author\/mdcano\/","name":"mdcano","image":{"@type":"ImageObject","@id":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/#authorImage","url":"https:\/\/trustlab.upct.es\/wp-content\/litespeed\/avatar\/6076032dbef8947839897d816a8acab1.jpg?ver=1792497635","width":96,"height":96,"caption":"mdcano"}},{"@type":"WebPage","@id":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/#webpage","url":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/","name":"php2shell: AI didn\u2019t find the bug on its own - TRUST Lab","description":"On October 21, PHP released emergency patches for php2shell, two flaws that make it possible to run code on a web server without authenticating. Almost every headline summed it up the same way: AI has found a bug that puts 70% of the web at risk. That's true, but it's the least interesting part. If","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/trustlab.upct.es\/en\/#website"},"breadcrumb":{"@id":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/#breadcrumblist"},"author":{"@id":"https:\/\/trustlab.upct.es\/en\/author\/mdcano\/#author"},"creator":{"@id":"https:\/\/trustlab.upct.es\/en\/author\/mdcano\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/trustlab.upct.es\/wp-content\/uploads\/2026\/10\/EN-\u00b7-Web-image-\u00b7-1200\u00d7627@1x.jpg","@id":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/#mainImage","width":1200,"height":627},"primaryImageOfPage":{"@id":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/#mainImage"},"datePublished":"2026-10-24T17:42:49+02:00","dateModified":"2026-10-24T17:51:05+02:00"},{"@type":"WebSite","@id":"https:\/\/trustlab.upct.es\/en\/#website","url":"https:\/\/trustlab.upct.es\/en\/","name":"TRUST Lab","description":"Sitio dedicado a la investigaci\u00f3n, desarrollo y formaci\u00f3n en ciberseguridad y tecnolog\u00edas digitales avanzadas.","inLanguage":"en-US","publisher":{"@id":"https:\/\/trustlab.upct.es\/en\/#organization"}}]},"og:locale":"en_US","og:site_name":"TRUST Lab - Sitio dedicado a la investigaci\u00f3n, desarrollo y formaci\u00f3n en ciberseguridad y tecnolog\u00edas digitales avanzadas.","og:type":"article","og:title":"php2shell: AI didn\u2019t find the bug on its own - TRUST Lab","og:description":"On October 21, PHP released emergency patches for php2shell, two flaws that make it possible to run code on a web server without authenticating. Almost every headline summed it up the same way: AI has found a bug that puts 70% of the web at risk. That's true, but it's the least interesting part. If","og:url":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/","og:image":"https:\/\/trustlab.upct.es\/wp-content\/uploads\/2024\/05\/TL-logo.png","og:image:secure_url":"https:\/\/trustlab.upct.es\/wp-content\/uploads\/2024\/05\/TL-logo.png","article:published_time":"2026-10-24T15:42:49+00:00","article:modified_time":"2026-10-24T15:51:05+00:00","twitter:card":"summary_large_image","twitter:title":"php2shell: AI didn\u2019t find the bug on its own - TRUST Lab","twitter:description":"On October 21, PHP released emergency patches for php2shell, two flaws that make it possible to run code on a web server without authenticating. Almost every headline summed it up the same way: AI has found a bug that puts 70% of the web at risk. That's true, but it's the least interesting part. If","twitter:image":"https:\/\/trustlab.upct.es\/wp-content\/uploads\/2024\/05\/TL-logo.png"},"aioseo_meta_data":{"post_id":"3878","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2026-10-24 15:50:58","updated":"2026-10-24 15:51:06","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/trustlab.upct.es\/en\/\" title=\"Hogar\">Hogar<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/trustlab.upct.es\/en\/category\/tips\/\" title=\"Tips\">Tips<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tphp2shell: AI didn\u2019t find the bug on its own\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Hogar","link":"https:\/\/trustlab.upct.es\/en\/"},{"label":"Tips","link":"https:\/\/trustlab.upct.es\/en\/category\/tips\/"},{"label":"php2shell: AI didn&#8217;t find the bug on its own","link":"https:\/\/trustlab.upct.es\/en\/2026\/10\/24\/php2shell-ai-didnt-find-the-bug-on-its-own\/"}],"_links":{"self":[{"href":"https:\/\/trustlab.upct.es\/en\/wp-json\/wp\/v2\/posts\/3878","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trustlab.upct.es\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/trustlab.upct.es\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/trustlab.upct.es\/en\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/trustlab.upct.es\/en\/wp-json\/wp\/v2\/comments?post=3878"}],"version-history":[{"count":1,"href":"https:\/\/trustlab.upct.es\/en\/wp-json\/wp\/v2\/posts\/3878\/revisions"}],"predecessor-version":[{"id":3881,"href":"https:\/\/trustlab.upct.es\/en\/wp-json\/wp\/v2\/posts\/3878\/revisions\/3881"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/trustlab.upct.es\/en\/wp-json\/wp\/v2\/media\/3880"}],"wp:attachment":[{"href":"https:\/\/trustlab.upct.es\/en\/wp-json\/wp\/v2\/media?parent=3878"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/trustlab.upct.es\/en\/wp-json\/wp\/v2\/categories?post=3878"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/trustlab.upct.es\/en\/wp-json\/wp\/v2\/tags?post=3878"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}