PHP2Shell: AI uncovers critical RCE in PHP

(wiz.io)

321 points | by danlark1 2 hours ago

24 comments

  • fwlr 7 minutes ago
    So from what I gather, it was found by OpenAI (via unspecified model?) and independently by Wiz (via Gemini Argon)… but before that it was found by Calif (via unspecified but consumer-available model)… but Calif credit LCFR_HAX before them with first discovery, disclosure, and remediation efforts.

    I guess either LCFR or Calif put it in the training data (by using a consumer-available frontier model in the process of discovery or remediation), and then OpenAI reproduced it from the training data, Navier-Stokes-scoop-style? Except I guess more plausibly unaware, and also late? They thought they had something novel, because they weren’t privy to the existing remediation effort? It’s all rather confusing, and then on top there’s a leak and a PR campaign and it just becomes impossible to untangle.

  • Topfi 1 hour ago
    Can anyone explain the two month window between reporting and disclosure? I do understand Responsible Disclosure as a concept, but looking at the timeline and severity, I struggle to understand the timing, especially the month that passed before an acknowledgment.

    Edit: Apparently this had been reported more than half a decade ago [0]. I am getting more confused the more I look into this, hopeful for a well written, factual post-mortem from someone who hasn't actively avoided PHP for the last decade.

    [0] https://news.ycombinator.com/item?id=50181395

    • kylestanfield 38 minutes ago
      How is a bug that was patched six years ago causing RCE today? Not sure your link is correct.
      • blantonl 18 minutes ago
        6 years ago it was deemed to be too complex to exploit and therefore not as high priority.
    • varispeed 38 minutes ago
      Many exploits are used by security services, so this gives time to wrap any investigations or surveillance or find another method of accessing target servers.
    • AtNightWeCode 29 minutes ago
      People should stop reading AI slop on X and other social media. The exploit is advanced and took some effort to fix. If there really was an open RCE in PHP for anyone to use the impact would be massive.
    • phoronixrly 1 hour ago
      Can anyone explain the lack of the irresponsible disclosure in the 'Responsible' disclosure timeline? The one that happened just before the coordinated release?
  • WJW 30 minutes ago
    From the related article on calif.io:

    > We therefore control where PHP places a pointer and its associated type information. This is application-dependent RCE under both Apache mod_php and PHP-FPM.

    Both articles describe how you can end up with freed memory that still has pointers into it. I can understand that this should never be possible, but it seems to me that both articles skip the very important step of how to actually turn this into RCE?

    From my (admittedly limited) understanding of these things you would not only need to write arbitrary memory, but also need to be able to jump to the relevant address to execute such things. Or do they overwrite the PHP (byte)code with their own and then just let the interpreter do its thing?

    • not_a9 12 minutes ago
      Plenty of function pointers to overwrite, presumably
  • airtnp 1 hour ago
    Ok, based on my reads on Wiz and Calif writeups, there are 5-6 issues mapped to 2 CVEs.

    Wiz (with GPT 5.6 Sol + Gemini 4 Argon) : Remote process-memory disclosure; OPcache type confusion; Fatal-error backtrace UAF. POC on Wordpress, Drupal and Joomla

    Calif (with LLM, no specific model, but model is accessible to all): Zend HashTable OOM. Targets PHP-FPM and mod_php.

    Both discovers the UAF on upload progress unserializer.

    Surprised to see the anime girl dancing with POC is really uploaded by Calif researchers.

    • airtnp 1 hour ago
      BTW, the backport fix seems to disable session upload entire in old version, not fixing the issue like new versions:

      https://github.com/php/php-src/commit/712e60f9edfd03f0960fc4...

    • chuckadams 1 hour ago
      Both of them memory safety issues. C is just not fit for purpose in this decade.
      • rbanffy 10 minutes ago
        C is not to blame for programmers using its features unwisely and, as a result, writing buggy code. Writing secure C code requires discipline, and, most likely, keeping yourself limited to a subset of the language.

        This is why languages like Rust have their place - their compilers impose the discipline and the restraint C doesn't. It's not impossible to write code with memory safety issues in Rust - it's just a lot harder. I remember saying the same about Java - it doesn't make writing the program any easier, but it makes writing some bugs difficult.

        • chuckadams 1 minute ago
          > C is not to blame for programmers using its features unwisely

          "Make no mistakes" works about as well for humans as it does for AI, and we have decades of lived experiences to draw on for that verdict.

        • Ar-Curunir 7 minutes ago
          [delayed]
    • processunknown 1 hour ago
      Whats the issue with the POC video? I dont understand why thats surprising
      • airtnp 1 hour ago
        Before the official fix someone published it, and it seems the person is not associated with Calif: https://x.com/k_firsov
        • echoangle 1 hour ago
          How did they get access to the script though? The output seems to be identical to the real PoC, so it looks like the same script.
          • nicce 52 minutes ago
            Which makes someone to think, whether Calif could not wait for the responsible disclosure. Or someone leaked the video for someone they should not have.
      • echoangle 1 hour ago
        Don't you think the style of video looks a bit unprofessional? It's like the next iPhone being presented by the Apple CEO but using a vTuber avatar with subway surfer gameplay in the background.
        • nicce 48 minutes ago
          In some circles it is a sign of credibility. Leaking it beforehand is very unprofessional, however.

          After all, furries run the internet.

          • owenmarshall 5 minutes ago
            > In some circles it is a sign of credibility.

            I was griping about my day being ruined over the breakfast table and my son was interested. I showed him the video and he asked why there was an anime girl on the screen?

            My response was "if you've worked with computers for any length of time, and you ever see a video of a terminal posted with an anime, catgirl, or furry overlay, you know something really bad is coming your way."

        • jareklupinski 44 minutes ago
          > the next iPhone being presented by the Apple CEO but using a vTuber avatar

          sounds like a good time

  • edh649 1 hour ago
    Seems to have been prompted from research by calif.io who started disclosure on August 11 vs Wiz on August 24th? A bit unclear on the participants and how they all interacted... https://calif.io/php2shell/
    • geerlingguy 1 hour ago
      One pattern of AI-assisted writing I hate is that technical articles now read as Atlantic journalistic tech-noir stories, which require scrolling through 20+ pages of content to get to the meat of a post.
      • himinlomax 1 hour ago
        You're supposed to ask your agent to summarize it for you, I guess.
      • jeffbee 39 minutes ago
        Didn't that start with Heartbleed or maybe Spectre?
        • chimeracoder 29 minutes ago
          No, those provided glitzy branding for the bug but the actual pages were pretty compact and information-centric.
      • pizzafeelsright 1 hour ago
        I generally click away when I see comic book style writing.
    • azizk121 45 minutes ago
      no it was discovered first by an independent researcher https://x.com/calif_io/status/2112914613297668583
  • rbanffy 19 minutes ago
    Maybe a silly question, but is there any full-featured CMS suitable for large-ish organizations that's been undefeated in terms of security? The only one that comes to mind is Plone (which is used extensively in the Brazilian government), but there has to be more.
    • jewel 5 minutes ago
      Anything that compiles to a static site will be nearly immune!
  • schleck8 20 minutes ago
    Looking at the technical deep dive further down the article, this is worse than Log4Shell if you need a point of reference. It's one of the two worst exploits that ever publicly surfaced, up there with EternalBlue.
  • pettijohn 2 hours ago
    Silly question, is PHP part of Project Glasswing? Crazy this has been dormant for a decade. And scary to wonder what else is lurking out there.
    • Maxious 2 hours ago
      The OpenAI post linked says Sol assisted https://openai.com/index/coordinated-disclosure-of-critical-... and they invite more open source projects to apply to their program https://patchtheplanet.org/
    • rs999gti 2 hours ago
      Lots of stuff is PHP e.g. most message boards. It was very popular pre-dynamic web.
      • whycome 1 hour ago
        It’s still popular af. Almost half of any cms site online is powered by Wordpress. Many sales sites use woocommerce (Wordpress plugin). Message boards for sure (phpbb!). Moodle and other similar learning management tools run on PHP. Other cms systems like drupal and joomla make up another big portion of cms installs. I think the custom Wikipedia (mediawiki?) is php.
        • nijave 41 minutes ago
          Yeah, I thought it was dying a bit but was looking for webmail software (Roundcube, etc) a couple days ago and all of it is PHP.
        • phplovesong 45 minutes ago
          PHP is ONLY popular because of mainly wordpress. Usage outside the big CMS are minimal at best, in 2026. I dont see much greenfield / PHP jobs that are not legacy software these days.
          • nijave 39 minutes ago
            I'm not sure that's true. It seems very popular in OSS in general but not much enterprise/commercial uptake.

            I guess node has taken some market share it seems like

      • apocalyptic0n3 1 hour ago
        It's still the most widely used server side language on the web thanks to WordPress, unless that has changed recently (it was dropping)
      • dd8601fn 1 hour ago
        I just got a nostalgia hit remembering all the phpBB type boards.

        But also I haven’t seen much of that style of bulletin boards in ages. Maybe the occasional EEVBlog or Ars kinda count?

        • bombcar 1 hour ago
          phpBB, vbulletin, and XenForo still power more than you might realize - often websites that still have comments are using one of those as a back-end, even if you can't access it directly.
          • rkozik1989 1 hour ago
            How dare your forget PHPnuke.
            • doublerabbit 3 minutes ago
              Ah the platform where exploits exploit themselves. It was so bug ridden.
            • timw4mail 42 minutes ago
              Ewww... I remember having to work with that trash.
      • StilesCrisis 56 minutes ago
        Facebook is developed on a reimplementation of PHP!
  • chasil 35 minutes ago
    Does active SELinux (as used in Red Hat derivatives) limit the damage at all?

    I built some rhel7 systems that are relaying user-provided LDAP credentials into a domain controller, and these are probably wide open with these flaws.

    I would hope that SELinux would prevent the launch of a shell, at least.

    Does PHP built with FORTIFY_SOURCE and other RedHat-recommended compiler flags help?

  • wildmXranat 1 hour ago
    Did anyone find a reputable source for code which can be used to validate fixes ?
  • tchalla 2 hours ago
    > We used Wiz Atlas, Gemini 4 Argon and GPT-5.6 Sol throughout this research. Notably, Gemini 4 Argon made an invaluable contribution to finding the vulnerability, exploit development, attack detection, and validation of the patch.
    • krelian 1 hour ago
      First the product they sell, then the product they got early access too...

      I know they waited two months with this but wouldn't it be wiser to wait just a little bit more than a few minutes after the fix released?

      • NoahZuniga 1 hour ago
        Wiz is a google company...
        • trollbridge 12 minutes ago
          Thanks - I've noted to avoid ever bothering trying to pay for Argon or Wiz from now on. I don't want to do business with people who act like this.
      • warkdarrior 30 minutes ago
        The fix is out. How much longer should they wait? 5 minutes after fix release? 5 days? 5 months?
    • evandena 1 hour ago
      a little self promotion there :P
  • ang_cire 36 minutes ago
    > PHP powers approximately 70% of websites,

    Well, that's my depressing statistic for the day...

    • abirch 12 minutes ago
      I'd love to see that number. Are those the parked domains or actual sites? I'm guessing Wordpress adds to those numbers.
    • sunaookami 28 minutes ago
      One billion devices run Java!
      • pjmlp 4 minutes ago
        Actually even more nowadays, given Android with 75% market share, even if it is a different brand of coffee, alongside all developers using JetBrains products even when not using Java as their programming language.
      • ang_cire 14 minutes ago
        If Oracle had never bought Sun, this would be downright inspirational. ;)
        • pjmlp 4 minutes ago
          No one else showed up. :)
    • basilikum 12 minutes ago
      are there really so few static web sites?
  • asbv-1qq 1 hour ago
    The flaw was in at least 20 year old code, which seems to be a common theme for AI discoveries.

    No compute costs for finding the issue or for writing the exploit are disclosed.

    But it is marketed as if it were the first RCE found in human history.

    • nope1000 1 hour ago
      I like to be AI sceptical as well but I think it's even more noticeable if the flaw is in 20 year old code which thousands of people have read and reviewed and not noticed, isn't it?
      • ashfg1 1 hour ago
        Hardly anyone reads and reviews in open source. It is a myth from ESR. Probably one person wrote it and another one said LGTM.
        • bitwize 59 minutes ago
          Today ESR would say "All bugs are really shallow this time, thanks to our robot friends!"
      • pizzafeelsright 1 hour ago
        The recent signed keys being '4' is an example.

        Looks good, validates, works, and then trust is assumed.

        • basilikum 6 minutes ago
          Private keys are not exactly open source. I mean in this case they kinda were, which is why they were found, but the point stands.
    • pizzafeelsright 1 hour ago
      I discovered a large security concern that has existed for a decade, since the code was originally written. I was working on an unrelated task when my AI agent discovered an oversight because the agent happen to examine that file.

      Everything was sound and every test passed for years along with every security scan because intent was not validated.

      I would expect an unending source of exploits in the future until AI rewrites everything.

      • zdragnar 20 minutes ago
        AI writing the code doesn't make it safer. It is prone to making all the same mistakes humans do.

        AI reviewing the code does help, though.

    • pixl97 1 hour ago
      Eh, it's an RCE that's been around forever and runs on a pretty large number of websites. Worse a lot of businesses have things like wordpress sites so one of those getting compromised is a foot in the door allowing movement into the more protected areas of the network.

      So yea, it's a big deal.

      • SoftTalker 1 hour ago
        Web servers should not be a foot in the door. They should be assumed hostile and stringently limited. PHP especially has been notorious for remotely exploitable bugs but that's probably more due to its popularity and wide use by beginners than it being strictly worse than any other stack in this regard.
        • trollbridge 11 minutes ago
          I treat my PHP servers like they're a hostile entity, going so far as to put them on their own VLANs, turning off optimisations for virtualisations to avoid container escaping, and so forth.

          It's a strategy that has so far paid off quite well. Thankfully in the era of AI it is gettig quite easy to refactor PHP into something else.

        • pixl97 40 minutes ago
          >Web servers should not be a foot in the door.

          shoobe < doobe

          PHP was a component in the LAMP stack which was known to be 'free' and easy to setup for new users at the time as you say. That builds an ecosystem. Ecosystems are very hard to move away from, especially when your users are not highly technical. Security is almost always a second or third rate consideration for this type of user.

          If you look at most applications configured in the enterprise, or practically any Microsoft web based application, they are not strongly security configured against write access to the machine.

    • zoeysmithe 51 minutes ago
      php RCE's are a big deal. So much of public facing stuff is drupal or wordpress and heaven knows all the places php is being used. Think embedded systems and appliances and in turn-key software.

      I don't know why php is impossible to harden, but its a security minefield, and if there is an RCE then its trivial to attack because so many of these systems are public facing. I veto any php based applications just over this.

    • chrisvenum 1 hour ago
      [dead]
  • jongjong 1 hour ago
    Damn. I've been saying that writing correct software is almost impossible.

    I suspect it's a matter of time before all mainstream blockchain projects are cracked. Many of those projects are hundreds of thousands of lines of code. There's no way they don't have vulnerabilities given that AI is now uncovering so many vulnerabilities in such high exposure projects.

    I was a code minimalist before, now I'm a radical minimalist. We need to get the lines of code down to the absolute minimum.

    Attack surfaces need to be clearly defined, enumerable and testable under all possible conditions.

    • wat10000 1 hour ago
      That's why so much emphasis is now placed on trying to make incorrect software either fail to build or fail at runtime in a way that doesn't let people take over the computer. C makes it extremely likely that a random correctness issue will be a security issue. Newer languages much less so. They're far from perfect but it's a lot better.
      • nijave 38 minutes ago
        Also sandboxing and strong permission boundaries ie when things fail, contain the damage
  • sehw 2 hours ago
    Ye, no humans but "AI".
    • dewey 1 hour ago
      Grinding through abandoned source code in hopes of finding a vulnerability isn't exactly the most fulfilling work for many, perfect use case for AI which doesn't sleep.
    • dspillett 1 hour ago
      Apparently both bugs had been reported previously, pre-AI, if so some important questions need to be asked about how those reports slipped through without a fix.
      • dwohnitmok 23 minutes ago
        I'm very confused about what's going on. In fact as far as I can tell those specific bugs were fixed.

        https://bugs.php.net/bug.php?id=78876 marks the OOM bug as closed and fixed in 2020.

        It seems the AI exploration was able to find variants of those bugs that were not fixed rather than exactly those bugs themselves?

        • amiga386 0 minutes ago
          That report describes sending a 2^31 length filename, which is cast to a negative number, which leads to asking erealloc() to allocate a very large buffer, which fails, which leads to the symptoms of the bug we're discussing today (mid-request allocation failure becomes a partially initialised request)

          The fix at the time wasn't to do proper cleanup on eralloc() failure, it was merely to avoid filename length being cast to a negative number.

        • dspillett 11 minutes ago
          Or perhaps the fixes were not complete, and only addressed a specific test case instead of resolving the wider issue.
      • thway15269037 47 minutes ago
        "Looks minor, hard to reproduce, little affected area. Throw it into backlog for 2095 release cycle."
    • 743947630229 2 hours ago
      [dead]
  • mg794613 1 hour ago
    I'm so tired of some of these "research setups", do you really need a logo, a brand and everything setup so you can cash in? Was this truely a problem or artificially created?

    Especially after fumbling it like this.

    "Buy our product, because we found a bug", yeah and you leaked it too.

  • NooneAtAll3 1 hour ago
    Ai fumbles responsible disclosure*
  • eptcyka 58 minutes ago
    I guess I should update my nextcloud.

    No, scratch that. I should replace it with something that is not a trash fire.

    • foxrider 56 minutes ago
      OpenCloud had been great for me lately
  • simonw 1 hour ago
    Timeline from that article:

    August 19, 2026: Wiz Research discovers the first PHP vulnerability using Wiz Atlas, Gemini 4 Argon, and GPT-5.6 Sol.

    August 20, 2026: Unauthenticated RCE is confirmed against Drupal.

    August 21, 2026: Unauthenticated RCE is confirmed against WordPress.

    August 24, 2026: Wiz Research reports the vulnerabilities to the PHP security team.

    September 21, 2026: PHP acknowledges the reports and begins developing a coordinated fix.

    October 21, 2026: Patched PHP releases become available.

    October 21, 2026: Public disclosure.

    I want to understand how it leaked. I guess a whole lot of people were looped in between September 21 and October 21?

    • mjr00 1 hour ago
      > I want to understand how it leaked. I guess a whole lot of people were looped in between September 21 and October 21?

      Yes. I was at AWS when Spectre and Meltdown were discovered, and we received approximately a month of advance notice and put together teams to apply mitigations. The work of the team was on a need-to-know basis--even team members' managers only knew they were pulled onto a critical project, not what the specific project was. But there were still 30+ people in the company who knew, and that was just one company (I'm guessing Google/Azure/other cloud providers got similar advance notice).

      Now, this is a much wider scale vulnerability, in the sense that Spectre/Meltdown primarily impacted cloud providers, but this attack impacts literally anyone who runs PHP. Dozens, if not hundreds, of companies likely got advance notice that a patch needed to be installed. In those companies there are teams of people applying those patches. All it takes is one of them who wants 15 minutes of internet fame to leak the details.

      • geerlingguy 1 hour ago
        Even some smaller vulnerabilities are spread through hosting companies pretty quickly within a day or two prior to public release, to give teams time to make sure staff will be ready to patch immediately.

        The wider the pre-release news spreads, the more chance you get someone who will spill the beans (intentionally or not).

    • bombcar 1 hour ago
      Two months is way too long for this, and the people involved seem to not know the "way" to do this - it shouldn't have taken a month from "reports" to "PHP acknowledges" which smells like "we sent an email or filled out a web form" when the ACTUAL reporting mechanism is "we talked to our friends at <MAJOR DISTRO> or <WORDPRESS> who called the right people and a patch is being slipped in."
    • Good4boothee 1 hour ago
      > I want to understand how it leaked

      If I understand correctly someone showed off a video of exploit in action - just like the ones included in article - and the visible messages were enough for other LLM users to discover the exploited bug.

      • simonw 1 hour ago
        How did the person who shared the video hear about the exploit?

        Were they already looped in or was it circulating outside of the trusted group already?

        • cpncrunch 16 minutes ago
          From what I gather, https://x.com/J4ck3LSyN/status/2112703096443097263 figured it out after the disclosure by wiz.io and openai (which I think was 24h before the patch landed). So they then used AI models to analyze the php code and independently found the vulnerabilities.

          So, if that is correct then the problem was the 24h prior notice about the patches, which gave time for people to use AI to find the bugs.

        • olafmol 27 minutes ago
          that's the million-dollar question currently. The guy posting the movie on X is referring back to Calif.io and other person as the creators of the video. Also, it's not a working exploit, but a video of a PoC, including a dancing manga character, so I'm wondering why a company like Calif.io creates such a thing. Another "interesting" development: chainguard unilaterally decided to break embargo 6 hours before the official publishing, by releasing patched container images. Why???
    • jwilk 48 minutes ago
      > I want to understand how it leaked

      I'm confused. How do you know it leaked?

    • its606 1 hour ago
      It would have been nice if there had been time for downstream distributors to patch as well.
    • projektfu 1 hour ago
      Simon, it seems you spend too much time close to the AIs and your writing is getting flagged.
  • wren6991 1 hour ago
    Did an LLM do the write-up? Half of the "technical deep dive" was just re-stating earlier statements about scope and impact, and I left without a solid grasp of the mechanics of the exploits.
    • iaaan 22 minutes ago
      That's wiz.io for you. Blogspam
    • nananana9 56 minutes ago
      [flagged]
  • Jeeetendra 25 minutes ago
    [flagged]
  • chinathrow 1 hour ago
    [dead]
  • varispeed 38 minutes ago
    If AI "uncovered" it, that means it was already in the training data and likely exploited in the wild.
    • trollbridge 9 minutes ago
      That's... not how coding agents work.