Forgot your password?
typodupeerror
The Internet PHP Security

Zoe Kleinman: PHP Is the Cyber Equivalent of an Unexploded Bomb (bbc.com) 100

BBC technology editor Zoe Kleinman likens the recently discovered PHP security vulnerabilities to an unexploded bomb, writing, "The PHP story feels like the cyber equivalent of an unexploded bomb -- I have never seen such a dramatic, public and global response to a cyber event that hasn't happened yet." Although no successful attacks have been confirmed, the AI-assisted discovery of long-hidden flaws has triggered a worldwide security scramble, with websites taken offline as a precaution and administrators racing to deploy patches before attackers can exploit the vulnerabilities. From the report: The weaknesses found in the PHP programming language, which is used by millions of websites, had been quietly resting there for years and are not easy to exploit. One cyber security researcher told me he'd been up all night trying to do it as an experiment, but it was proving very difficult. [...] It was supposed to be kept quiet until everyone had a chance to fix their sites -- but the news was leaked. From that point the clock started ticking.

As I write this, there are no reports that anyone or anything has succeeded in using the flaws to attack a site. "There's a real dilemma," said Prof Alan Woodward from Surrey University. "How do you alert people they need to be ready, and then that a patch is urgently required, whilst not alerting attackers? Basically you're telling everyone about the problem at the same time and hoping the defenders aren't awake enough to act as soon as the patch is out."

But we do know from large web companies like Cloudflare and Palo Alto Networks that millions of attempts have been made. We probably won't know for a while whether it has worked for any criminals, because the companies affected might not be aware yet either. As far as we know the unexploded bomb remains intact for now, and for some experts this is a success.
"We've seen how a team of people supported by the large AI company have used AI to find the problem, work for months together to solve it and get everybody ready to be safe and secure," Gina Neff, Professor of Responsible AI at Queen Mary University, told the Today Program on BBC Radio 4. "We have enormous capability to handle these risks."

Zoe Kleinman: PHP Is the Cyber Equivalent of an Unexploded Bomb

Comments Filter:
  • PHP (Score:3, Insightful)

    by fluffernutter ( 1411889 ) on Thursday October 22, 2026 @02:14PM (#66388178)
    PHP always seemed like a bit of a hack language to me. I'm surprised so many high security places use it.
    • Why did it seem that way to you?

      • by fluffernutter ( 1411889 ) on Thursday October 22, 2026 @02:45PM (#66388250)
        Because it embeds into html, rather than rendering the html. It makes for very fragmented code.
        • Re: PHP (Score:5, Informative)

          by dgatwood ( 11270 ) on Thursday October 22, 2026 @04:18PM (#66388386) Homepage Journal

          Because it embeds into html, rather than rendering the html. It makes for very fragmented code.

          In my experience, most sufficiently advanced use of PHP involves rendering the HTML. You can do it either way.

          And most sufficiently complex PHP uses PHP as a full-fledged language, complete with classes, etc., and to the extent templates are used, the code in them consists of tiny partial-line-long fragments of code that call some method in some other file that is basically just code.

          In other words, very fragmented code isn't caused by PHP; it's caused by the way that the developer chose to use PHP.

        • by PCM2 ( 4486 )

          Because it embeds into html, rather than rendering the html. It makes for very fragmented code.

          Yeah, that's pretty old-fashioned. In my experience, it's barely done now. Kinda like how nobody writes JavaScript like it's Pascal anymore.

        • When was the last time you saw PHP code? 20 years ago?
      • Re: (Score:1, Troll)

        by Aighearach ( 97333 )

        The reason it seemed that way to me was that it was invented by an idiot who thought programmers were stupid and arrogant and programming could be made "easier" by somebody who just ignored (or didn't learn) traditional algorithms and best practices.

        Somebody who thought code architecture was lame and unnecessary.

        Of course bad things happen. Again. And again. And again. And are still happening decades later.

        • Re: PHP (Score:5, Informative)

          by idontusenumbers ( 1367883 ) on Thursday October 22, 2026 @05:13PM (#66388498)

          It sounds like you're talking about PHP 1.0 from 31 years ago. That's not at all like the current PHP.

          • How dare you infringe on my right to cement my opinions based on something I heard decades ago!

          • "We added cruft again and again, surely that's what programmers do to make a language better!"

            Yeah, you're right! It got even worse when they realized they did need those things, but didn't want to change the architecture to be like other languages. Why do other languages do it that way? Because they're stupid! We'll just tack it on in the least obtrusive way. Sure that's better than having architecture that's built around the algorithms everybody else knew we'd need....

            • The PHP team has been consistently improving the language, standard library, and runtime. Do you have any examples of recently added cruft?

    • Re:PHP (Score:4, Insightful)

      by Kisai ( 213879 ) on Thursday October 22, 2026 @02:33PM (#66388218)

      They're all like that though.
      Perl
      PHP
      Python
      Ruby
      Node.js

      The only thing that makes PHP the language of choice here is how it was originally easily integrated into apache httpd via mod_php. This exact same scenario could happen to all of those, because all of those are scripting languages that run inside the security box of the user account or the web server. mod_php runs as the web server unless it's configured as mpm_event/mpm_worker in which case the child processes can be run in a different one.

      The only case where this would never happen is if there is no scripting language. eg your web application is compiled (Which is the case with C/C++/Rust/Java) because there is no functionality within the application to execute something outside it's process.

      like one of the things I do on servers is remove eval() and system() and exec() to prevent running anything from the scripting language. But most stock installations do not do this. removing the ability to open remote files is even better, but unfortunately that breaks the auto-updates in several CMS systems.

      • by ucho ( 1458291 )

        > The only case where this would never happen is if there is no scripting language. eg your web application is compiled (Which is the case with C/C++/Rust/Java) because there is no functionality within the application to execute something outside it's process.

        That makes no sense at all. Compiled applications can have RCE bugs, it changes nothing. Well, maybe you need to make a few more requests, as you usually don't know the exact software & hardware platform of server, and have to try different shel

    • Re:PHP (Score:5, Insightful)

      by pla ( 258480 ) on Thursday October 22, 2026 @02:33PM (#66388220) Journal
      This story really isn't about PHP. It's about AI easily finding multiple severity-9+ externally-exploitable server-side vulnerabilities without even breaking a sweat.

      Over the next few months, this same story is going to repeat for Ruby, ASP, Python, Node (or JS in general), .Net, etc. And not all of them will be so easily fixed - Or for that matter, disclosed at all prior to a working exploit in the wild.

      Running a public-facing webserver is about to become the losing side of an inevitable arms race.
      • Re:PHP (Score:5, Interesting)

        by DarkOx ( 621550 ) on Thursday October 22, 2026 @03:15PM (#66388286) Journal

        These are also many of the most looked at, most often fuzzed, SAST scanned, valgrind'd things in the world.

        I really don't think it will be as bad as all that. We have not seen Apache, Nginx, etc pwnd like this, or OpenSSH, or Bind, or postfix ...

        I could go on. I think the actual posture and condition of most of these project is far better than you apparently expect. (I guess we are going to see who is right).

        What AI is finding is stuff the other scanners miss, which is stuff where there is a clear temporal component. We are going to see races, toc-tou, probably more stuff like these PHP issues which if I understand correctly is a use-after-free or something you could at least force into that taxonomy.

        So there are going to be new bugs found, even seriously impactful appearing ones, but the reach-ability and chances of successful exploitation outside laboratory conditions is going be low... Do they work when it is a VM on you lab server you can hammer away at with 1000 threads yes; when there is a AWS ELB in-front or a waf that has any impact on request ordering or pipe-lining, good luck..

        I am not saying people won't be spending more hours patching over the next year or so than they have been, they will but the sky probably also isn't falling

        • by PCM2 ( 4486 )

          Wow, BIND, though? Do a quick search on "history of BIND vulnerabilities." Sure, people run all these tests on it now, and in the past, and the history has been there's been a lot of causes of concern.

          • by gweihir ( 88907 )

            Bind has gotten better, but 10 years ago and longer it was utter crap with regards to security.

      • by gweihir ( 88907 )

        What the AI does is not impressive. Finding use-after-free requires you to be competent and wanting to find them. Approaches for finding and avoiding them are well established, the current slop-coders (with or without AI) just do not know or use them. AI is not needed in any way. AI is just the ElCheapo approach when you do not care about finding all of them (due to LLM unreliability).

      • by AmiMoJo ( 196126 )

        Probably not for .NET. Microsoft has been using AI to find bugs in its products for months now, hence the high number of patches through Windows Update. Doubtless they have already thrown it at .NET.

        The Linux kernel is in the middle of this at the moment.

    • Re:PHP (Score:5, Interesting)

      by DarkOx ( 621550 ) on Thursday October 22, 2026 @02:39PM (#66388236) Journal

      People say that but I think they say it without a lot of real understand of what the web was like when it was born, and second that PHP5(+) does not look much like PHP 4(-)

      Before PHP there were CGI scripts/programs, which were Perl, sh, or C or if you were on Windows classic-asp. If you wanted maintainability your wrote in Perl (yeah I am being serious) and if you wanted performance or needed to do something complicated you wrote it in C. Remember we are talking 1995-97 here there isn't even a C++ standard yet! These were you main choices for 'web development'.

      PHP let people do what demanded C in something that did not have to be compiled and did require understanding C style memory management. Here comes the big BUT though, all the really good, really useful library code out there was C. All those library authors did not talk to each other so everyone was different in terms of conventions, who allocates the the caller or the called, who frees, are we passing references or values for primitives, etc. All different and php did not attempt to hide any of that as it pulled in those libraries it wrapped them in its runtime and memory management without attempting make their use orthogonal and part of some consistent ecosystem.

      It wasn't a 'hack' it just was not a complete abstraction.

      That was 'fine' for people who came to PHP from writing C, and were using PHP because it let them make changes on the fly, saved writing a lot of boiler plate request life-cycle management stuff, etc. It all made sense, if you can at it not from C though it was confusing mine-filed of gotchas. It made web development possible for a whole lot of people who never got access to compiler. That was cool, but it also put a lot of power in the hands of people the way the Visual Basic "Declare" keyword did, and unsurprising they did hack-y things with it, cause themselves all sorts of problems..

      • So you can write a PHP program that renders code now? Having fragments throughout html was a bad idea from the start. Hard to read and easy to make a mistake. Hard to use for back end.
        • Having fragments throughout html was a bad idea from the start.

          Rust Rocket whistles innocently.

        • by Anonymous Coward

          >So you can write a PHP program that renders code now?
          This sounds disingenuous. You could always do this, you were never forced to embed php within html. The 'smarty' templating library was released 26 years ago to simplify html rendering. The embedding technique has died off long ago for web development and is not recommended or considered as a serious approach.
          PHP has come a long way since the 90s and is in active development despite all the handwavy dismissals of it.

    • by flink ( 18449 )

      It's popular for services that run on a shared hosting model because it can be run as either a cgi processor or via mod_php. It gives you access to backend scripting and all you need is a shell account. That's becoming less relevant in the age of containerization and VPSes, but it still has a lot of inertia.

    • I like hack languages. But many years ago, my friend setup PHP on my server (LAMP style) and it got hacked and defaced, so I updated it and tried to set it up correctly while also making sure the applications people wanted would work. (just a little hobby server). Got hacked again two years later, even though I was mostly just following the distro's updates. I kind of felt it was a bit of chore to keep PHP secure, more work than I could commit to.

      I ran AOLserver for a while (Tcl-based apps server) and it wa

      • It seems like most are now using php-fpm. It's convenient because it allows any number of PHP versions on one server.

        • FastCGI in general is an improvement over what I used to use, well I had mod_fcgid and some python stuff installed for a bit many years ago. And of course PHP-FPM is pretty battle tested, or so it seems. But I really do believe juggling multiple versions of PHP to be an anti-feature. Having to deal with more than one set of security forks multiplies the amount of work for the admin. You certainly don't have to use the feature, but I can't think of too many situations where going that road is going to help m

          • There are sadly just projects which depend on older versions still being used. It's pretty normal for an ISP to need to maintain at least a couple of versions. And since PHP changes important things in minor versions sometimes, you need at least a couple of minor versions of each as well. That's probably my least favorite thing about PHP.

  • by peterww ( 6558522 ) on Thursday October 22, 2026 @02:14PM (#66388180)

    A real, major vulnerability was discovered, its announcement was botched, the whole world rushed to protect people and systems, and we're sad that it wasn't a greater catastrophe. What a wonderful takeaway.

    • It reminds me of Y2K. The plebs say "It was a big nothing-burger." When they do, I say "You're welcome" as many of us spent time in the '90s making sure it would be a nothing-burger.

    • Only one of the exploit chains requires LFI, there's other paths of triggering the exploit

    • Re:Nothingburger (Score:5, Interesting)

      by Nuitari The Wiz ( 1123889 ) on Thursday October 22, 2026 @04:47PM (#66388444)

      I had my clanker (Qwen3.8-abliterated) try for over 10h to weaponize some of the best looking PoC with no results except crashing workers.
      ASLR was the first thing that blocked it, then it tried with it disabled for that process. It did manage to reliably crash a php-fpm or apache2 process with bad input.

      So yes there is a problem, bad stuff is happening in the memory management and there are bugs.

      ASLR is partly to thank for making exploiting this significantly harder.
      There's also a lot of things that might be tied to the specific version of glibc and other hardening aspects.

      • Mitigations work (Score:4, Interesting)

        by _merlin ( 160982 ) on Thursday October 22, 2026 @11:44PM (#66388838) Homepage Journal

        See, this is a case of mitigations working. ASLR makes the exploit substantially harder weaponise. There are plenty of other mitigations you can use to reduce the chance of a bug being successfully exploited. Examples include:

        • Ensure PHP (and mod_wsgi, and mod_lua, and whatever else) can't be invoked on servers and/or vhosts where it isn't necessary. You don't want stuff being inadvertently executed as scripts.
        • Don't allow PHP (or other server side scripting languages) to run from any directory the web server user has write access to. This protects you from a whole class of exploits that involve uploading a file and then tricking a vulnerable web application into making the web server treat it as as server side script. Yes, this prevents WordPress from auto-updating, but it protects you from most known WordPress exploit kits. Same applies to other CMS, wikis, etc.
        • Use at least a basic selinux policy to constrain the web server and associated processes. A separate out-of-band whitelist of what the web server is allowed to access can block successful exploitation of vulnerabilities.

        You need to be paranoid and assume the network is hostile.

    • by gweihir ( 88907 )

      I would be wary of that statement. It says "nowhere as easy as log4shell". Log4shell was so easy to attack that it is hard to imagine making it any easier. And second, while the author claims the published exploits do not work against "vanilla PHP", that is a really weak statement and there is no analysis given why they do not work and what is needed in addition.

  • Ahh... youth (Score:5, Insightful)

    by Local ID10T ( 790134 ) <ID10T.L.USER@gmail.com> on Thursday October 22, 2026 @02:36PM (#66388230) Homepage

    I have never seen such a dramatic, public and global response to a cyber event that hasn't happened yet.

    Somebody missed Y2K.

    • My friend filled up his bathtub with water on Dec 31st.

      About a week earlier he found a giant sale on Earth Sugardrink at the discount warehouse and bought a whole pallet. If society collapsed, the water might not be safe to drink for awhile.

      Fast forward two years, he had diabetes. I wish I was joking.

    • by Bahbus ( 1180627 )

      Y2K was completely overblown and exaggerated.

      • Re:Ahh... youth (Score:4, Insightful)

        by drinkypoo ( 153816 ) <drink@hyperlogos.org> on Friday October 23, 2026 @08:23AM (#66389256) Homepage Journal

        Y2K was completely overblown and exaggerated.

        That's often said by clueless posers who have no clue how much work went into addressing it.

        • by allo ( 1728082 )

          It was not. People did a lot of hard work to prevent the catastrophe and it paid off. Otherwise a lot of stuff would have collapsed.

        • by Bahbus ( 1180627 )

          Oh I'm absolutely aware and vividly remember it. While some work was absolutely necessary, the problems and fallout that could have happened really was never going to be as bad as anyone really made it out to be.

      • You're welcome. Yes, the media liked to overhype things like they always do, but many of us spent time in the mid '90s inspecting code and making changes where necessary to make sure it was a non-event. It was never going to be a case of planes falling from the sky and the world reverting to the stone age (sorry, Family Guy), but rather annoying things like not being able to run billing cycles or calculate interest correctly.

        People have already been working to resolve issues so that the Y2038 problem is a

        • by Bahbus ( 1180627 )

          annoying things like not being able to run billing cycles or calculate interest correctly.

          Oh no. So catastrophic. /s

  • All software has problems waiting to happen, nothing special about PHP in that regard.

  • That's why (Score:5, Funny)

    by Valgrus Thunderaxe ( 8769977 ) on Thursday October 22, 2026 @03:18PM (#66388292)
    I haven't updated from PHP 3. I work for a car dealership so I don't have any enemies that would want to attack us.
  • by Anonymous Coward on Thursday October 22, 2026 @03:37PM (#66388322)
    CVE-2026-109618: Out-of-memory handling and stale upload/session state. Can lead to remote code execution (RCE) and unauthenticated disclosure of PHP worker memory.

    CVE-2026-109619: Critical Use-after-free. Stale global state across requests. Can cause subsequent requests to access freed memory, potentially leading to memory corruption and RCE.

    The underlying bug: PHP enforces its memory_limit setting. When execution exceeds that limit, PHP can use the C runtime mechanism longjmp() to escape the current execution path and abort request processing.

    The problem is that this abrupt exit can interrupt internal PHP operations before their data structures have been fully initialised. Request cleanup may subsequently treat those incomplete structures as valid, potentially attempting to free or otherwise process invalid pointers.

    This creates a memory-safety failure during error handling: the error-handling path itself can corrupt memory.
  • ... cybersecurity: .Net C# and Java.

    *Dadum* *Crash* *Thud*

    Thank you, thank you, I'm here all week.

  • Zoe's own site is a bootstrap.js site. I thought it would be funny if her site was built one of the millions of PHP CMS systems. But it's not.

  • by Murdoch5 ( 1563847 ) on Thursday October 22, 2026 @04:42PM (#66388438) Homepage
    Okay PHP has a critical flaw, but, why is your PHP outdated, or so difficult to update? This is an issue I hear about frequently, usually in the form of: “Why are you updating X, didn't we just do that?”. Yes, we just updated X from 20 to 21, and 21 to 22, but, I do that, so I'm on the latest stable and safe release. I have seen this nonsense to often where someone refuses updates, then an issue emerges, and they can't update, since it would break everything. This is also the reason I argue against keeping everything locked on legacy. “It's works so don't touch it”, is the equivalent of, “It works now, until it's too dangerous to keep online, but then we can't update it.”.

    I just spent 3+ weeks updating a system, and was told multiple times it didn't need to be done, and I was wasting time and resources. This morning, that project released a major notification of a serious flaw, and we're already on the newer version which is safe. The real problem was never PHP, or Node.js, or X (not Twitter), it was the refusal to update and keep systems updated.
    • PHP is easy to update if you use FPM. Just install the new version and twiddle your config.

      • I agree, it's not difficult to update unless you're relying on some broken functionality in an older version. Which is why you need to keep systems updated.
    • They literally released the update yesterday you smug pinhead.

      If you aren't running updates every hour, you probably don't have it. Hell, if you don't have a distribution with the latest version yet, you don't have it.

      • I know but the fact major sites have to be pulled offline, and need multiple days to update is a major issue. They just released the updated, sure, but to apply it should be quick, fast, and nearly effortless. It doesn't just apply to PHP, there is a general stand-off nature to processing updates and keeping things updated. I've had this argument on Slashdot, where people swear you don't touch what isn't broken, you never redesign, you never process updates. All the arguments I'm still speaking out agai
  • or STFU about PHP.

  • There are options which reduce the risk of this whole category of attack.
    Two examples are (a) automatic zeroing of freed memory, and (b) inspecting and filtering suspicious HTTP requests.
    These are not foolproof, but they reduce the risk of being attacked by an exploit of the next vulnerability.

    The major reason they are not used is that they tend to come with a performance hit. But you'd think they might be useful as a temporary "switch on" option, when the alternative the company is considering is taking do

    • by gweihir ( 88907 )

      At this time, any kind of use after free vulnerability in production code musst be regarded as a sign of gross incompetence. This one seems to have been harder to find or nobody was looking. But still.

      Ways to find/avoid: Zeroing pointers on free, "gcc -f analyzer", tests with valgrind (test data needs to trigger at leat a read to free'ed memory), code review, some other tools and less less general ways. The first two are cheap and should be standard. Code review for this problem should be at well.

      Zeroing me

      • Little hint: language run-times are way harder to debug then the program's you write in them.
        They need to be able to jump across memory to handle interrupts and exceptions.
        And they have no way to know what kind of data there is in the objects THEY DID NOT MAKE.
  • And this is what it told me. This is the best the BBC could fine to explain PHP to its viewers? Someone whose main acquaintance with technology has probably been writing literary criticism (nowadays called reporting and jurnalism) in Microsoft Word?

    ____________________________________

    Zoe Kleinman is a British journalist and broadcaster who serves as the BBCâ(TM)s first-ever Technology Editor, a role she took up in 2021. Her background combines a university education in English literature with more th

  • When was PHP ever *not* a primed yet unexploded bomb? I mean, seriously, it's the drug-addled street bum of programming languages -- according to me, at least.

The rate at which a disease spreads through a corn field is a precise measurement of the speed of blight.

Working...