{"article":{"slug":"i-want-my-wednesday-back","title":"I want my Wednesday back","subtitle":null,"summary":"Freelance security consultant Lucas Luitjes digs into the public php2shell proof of concept and argues mass exploitation is far harder than vendors claimed: it needs four requests to the same PHP worker and the exact build, which means days of DoS-like brute forcing against real sites behind load balancers and WAFs. Patch fast, but the '15 minutes or die' hype was overblown.","content_type":"opinion","language":"en","canonical_url":"https://blog.luitjes.it/posts/i-want-my-wednesday-back/","author":{"name":"Lucas Luitjes","url":"https://www.luitjes.it/","person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Lucas Luitjes","url":"https://blog.luitjes.it/","listing_slug":null,"listing":null},"topics":[{"name":"Security","slug":"security","url":"https://listedarticles.com/topics/security"},{"name":"Software Engineering","slug":"software-engineering","url":"https://listedarticles.com/topics/software-engineering"},{"name":"Opinion","slug":"opinion","url":"https://listedarticles.com/topics/opinion"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":608,"reading_minutes":3,"published_at":"2026-10-23T00:00:00.000Z","added_at":"2026-10-24T11:10:25.562Z","updated_at":"2026-10-24T11:10:25.562Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/i-want-my-wednesday-back","markdown_url":"https://listedarticles.com/articles/i-want-my-wednesday-back.md","example":false,"citation":"Lucas Luitjes, Lucas Luitjes. \"I want my Wednesday back.\" 23 Oct 2026. https://blog.luitjes.it/posts/i-want-my-wednesday-back/ (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://blog.luitjes.it/posts/i-want-my-wednesday-back/"},"body_markdown":"# I want my Wednesday back\n\n23 Oct 2026\n\n*Or, why we’re not seeing mass-exploitation of php2shell yet.*\n\nI saw wildly varying opinions on whether php2shell is serious, or if they cried wolf. Got curious, started digging into the PoCs. I’m not an exploit dev and maybe there were other factors, so take with a grain of salt. Egg on my face if mass exploitation starts right as I hit publish.\n\nBest PoC of php2shell I’ve found: <https://github.com/9bie/php2shell-bypass-aslr-exp> (and a [fork with all docs translated to english](https://github.com/yanoshercohen/php2shell-bypass-aslr-exp-en))\n\nTo exploit, you need to do four consecutive requests to **the same php worker process**. And you need to know the exact php build (php version, OS version, architecture), or try exploits for every possible build.\n\nWhat this PoC does is take a docker image that uses the default mod\\_php number of workers, which is 150. Then it opens 149 connections that send half a request to keep the other workers busy, and does the four exploit requests against the 150th worker.\n\nEven a moderately popular production website will have multiple web VMs/containers running multiple php workers behind a load balancer and constant bot traffic. That means you would have to try a wide range of number of connections to open. On top of that you likely won’t know the exact build version, so you would have to try exploits for every combination out there.\n\nLet’s say you try this for the 50 most popular php/OS combinations, and any number of workers between 10 and 1010. That’s 50k attempts. But against constant background traffic, you would need to try each combination a number of times. Each of these attempts involves opening a whole lot of connections, so they each take some time. The PoC runs against localhost and takes 3-4 seconds, so let’s optimistically call it 10 seconds on the internet.\n\nYou can only do one attempt at a time, so that means multiple days of bruteforcing in a way that is essentially a DoS, since a large part of that range will exhaust the maximum number of connections. At this point the person running the site will likely notice, start blocking IP addresses or adding a WAF.\n\nMost high-traffic websites already run WAFs/rate-limiting to deal with bot traffic, so you would need to run this attack from a great many IPs, and preferably clean ones that are harder to come by. But running this from many IPs also increases the chances that your timing will be off, reducing the number of plausible attempts even further.\n\nThat’s assuming the WAF doesn’t block your attempts entirely, because the easiest ways to exploit these vulnerabilities were known at the time of the announcement.\n\nI’m sure people and agents will come up with clever techniques to reduce the required number of attempts eventually. But that has nothing to do with “this will get mass-exploited within 15 minutes.”\n\nAgainst very low-traffic websites that do not have any bot protection, leak information about their version, running close to stock configuration, you might get lucky.\n\nSo sure, it’s a critical vulnerability, deserves attention, should be patched ASAP. Maybe even put in the announcement that if you’re running low-traffic sites, be extra sure to patch fast.\n\nBut to the AI security vendors who promoted this as THE GATES OF HELL WILL OPEN YOU HAVE TO PATCH WITHIN 15 MINUTES OR DIE? I want my Wednesday back.\n\nOh and the claims of it being exploited in the wild? At time of writing, they’re referring to exploitation *attempts*. In fact, HoneyLabs [so far](https://infosec.exchange/@HoneyLabs/117483559117381472) hasn’t seen a single exploit attempt that could even run successfully.\n","body_html":"<h1 id=\"i-want-my-wednesday-back\">I want my Wednesday back</h1>\n<p>23 Oct 2026</p>\n<p><em>Or, why we’re not seeing mass-exploitation of php2shell yet.</em></p>\n<p>I saw wildly varying opinions on whether php2shell is serious, or if they cried wolf. Got curious, started digging into the PoCs. I’m not an exploit dev and maybe there were other factors, so take with a grain of salt. Egg on my face if mass exploitation starts right as I hit publish.</p>\n<p>Best PoC of php2shell I’ve found: <a href=\"https://github.com/9bie/php2shell-bypass-aslr-exp\" rel=\"nofollow ugc noopener\">https://github.com/9bie/php2shell-bypass-aslr-exp</a> (and a <a href=\"https://github.com/yanoshercohen/php2shell-bypass-aslr-exp-en\" rel=\"nofollow ugc noopener\">fork with all docs translated to english</a>)</p>\n<p>To exploit, you need to do four consecutive requests to <strong>the same php worker process</strong>. And you need to know the exact php build (php version, OS version, architecture), or try exploits for every possible build.</p>\n<p>What this PoC does is take a docker image that uses the default mod_php number of workers, which is 150. Then it opens 149 connections that send half a request to keep the other workers busy, and does the four exploit requests against the 150th worker.</p>\n<p>Even a moderately popular production website will have multiple web VMs/containers running multiple php workers behind a load balancer and constant bot traffic. That means you would have to try a wide range of number of connections to open. On top of that you likely won’t know the exact build version, so you would have to try exploits for every combination out there.</p>\n<p>Let’s say you try this for the 50 most popular php/OS combinations, and any number of workers between 10 and 1010. That’s 50k attempts. But against constant background traffic, you would need to try each combination a number of times. Each of these attempts involves opening a whole lot of connections, so they each take some time. The PoC runs against localhost and takes 3-4 seconds, so let’s optimistically call it 10 seconds on the internet.</p>\n<p>You can only do one attempt at a time, so that means multiple days of bruteforcing in a way that is essentially a DoS, since a large part of that range will exhaust the maximum number of connections. At this point the person running the site will likely notice, start blocking IP addresses or adding a WAF.</p>\n<p>Most high-traffic websites already run WAFs/rate-limiting to deal with bot traffic, so you would need to run this attack from a great many IPs, and preferably clean ones that are harder to come by. But running this from many IPs also increases the chances that your timing will be off, reducing the number of plausible attempts even further.</p>\n<p>That’s assuming the WAF doesn’t block your attempts entirely, because the easiest ways to exploit these vulnerabilities were known at the time of the announcement.</p>\n<p>I’m sure people and agents will come up with clever techniques to reduce the required number of attempts eventually. But that has nothing to do with “this will get mass-exploited within 15 minutes.”</p>\n<p>Against very low-traffic websites that do not have any bot protection, leak information about their version, running close to stock configuration, you might get lucky.</p>\n<p>So sure, it’s a critical vulnerability, deserves attention, should be patched ASAP. Maybe even put in the announcement that if you’re running low-traffic sites, be extra sure to patch fast.</p>\n<p>But to the AI security vendors who promoted this as THE GATES OF HELL WILL OPEN YOU HAVE TO PATCH WITHIN 15 MINUTES OR DIE? I want my Wednesday back.</p>\n<p>Oh and the claims of it being exploited in the wild? At time of writing, they’re referring to exploitation <em>attempts</em>. In fact, HoneyLabs <a href=\"https://infosec.exchange/@HoneyLabs/117483559117381472\" rel=\"nofollow ugc noopener\">so far</a> hasn’t seen a single exploit attempt that could even run successfully.</p>","headings":[{"level":1,"text":"I want my Wednesday back","id":"i-want-my-wednesday-back"}]}}