Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. GPT-6 Sol and Luna(openai.com)
    439comments
  2. Claude Opus 5.5(anthropic.com)
    671comments
  3. 'We hacked the FBI:' Hackers say they have data on all FBI employees(404media.co)
    71comments
  4. OpenAI GPT–6 Astra breaks Enigma message that has resisted solution since 2005(cryptocellar.org)
    341comments
  5. SAML: A Fractal of Bad Design(trailofbits.com)
    31comments
  6. Claude Opus 5.5 Intelligence, Performance and Price Analysis (Max)(artificialanalysis.ai)
    50comments
  7. WordPress: Unauthenticated path traversal leading to conditional RCE(github.com/wordpress)
    59comments
  8. What California is learning from solar panels built over irrigation canals(kqed.org)
    23comments
  9. Native apps written in TypeScript and CSS(github.com/geastack)
    7comments
  10. Unreal Agent(unreallabs.ai)
    42comments
  11. OpenAI is well positioned to fast-follow Jev(arcturus-labs.com)
    167comments
  12. An update on how we confirm your age group on Discord(discord.com)
    9comments
  13. Markdown in /src(htmx.org)
    15comments
  14. Show HN: Training a model to identify AI web content from structure alone(arxiv.org)
    5comments
  15. Did OpenAI solve the wrong Navier-Stokes problem?(scientificamerican.com)
    19comments
  16. Rabbit Hole: Minimum L-seams(fractalkitty.com)
    5comments
  17. MUNI Heritage Weekend in San Francisco(lawrence.lu)
    31comments
  18. How did AMD Ryzen get 50% faster in two years?(lemire.me)
    27comments
  19. Show HN: JevBench, a reproducible benchmark for typed decision models(benchmarkheaven.com)
    1comments
  20. A Faster Shortest Path Algorithm(vals.ai)
    5comments
  21. 16-bit Intel 8088 chip (c. 1985)(allpoetry.com)
    12comments
  22. The UV index is not the warm sensation of sunlight on bare skin(asciitweezers.com)
    discuss
  23. No Sloptober(no-sloptober.com)
    discuss
  24. The JavaScript Midlife Crisis(maroun-baydoun.com)
    5comments
  25. George Lucas Returns to Earth, Bearing Gifts(commonedge.org)
    22comments
  26. Launch HN: Coverage Cat (YC S22) – Umbrella insurance via your personal agent(coveragecat.com)
    19comments
  27. Apple has added persistent 'ads' to iOS, and it's driving users crazy(techradar.com)
    392comments
  28. There's a high chance of devices being sold with GrapheneOS preinstalled in 2027(grapheneos.social)
    92comments
  29. Overreliance on AI contributed to missile strike on Iran school – Pentagon(bloomberg.com)
    124comments
  30. People hooked on vapes try a new way to quit: cigarettes(bloomberg.com)
    47comments

WordPress: Unauthenticated path traversal leading to conditional RCE

113 pointsby 4h agogithub.com
42 comments
4h agoHN ↗

pearcmd.php must exist, and register_argc_argv must be on, not common with hosting providers. But I am assuming the other themes and meeting conditions possibly affect a lot of WordPress sites.

3h agoHN ↗

As the article points out, one issue is that the official Docker container for PHP has this configuration.

However at least in principle all of the affected versions [0] could be automatically updated. Not sure if they have set it to auto-update as far back as 4.7 though.

[0] except 4.9.3 which has a bug in its automatic update mechanism.

3h agoHN ↗

pearcmd and register_argc_argv are just examples. get_page_template was unsanitized in some themes, that's the flaw, you could then combine it with one of a million unauthorized file upload in wordpress plugins to try and eval code. An attacker would like to use upload + this chain of requires (instead of just uploading a php) because of hardened configuration and the pwn can go unnoticed in the logs.

Also, with pearcmd (if you can get to that, there's no open_basedir) and containers a novice sysadmin will publish insecure sites.

4h agoHN ↗

hmm, this may be why i just saw an unexpected update to a very old theme.

2h agoHN ↗

It's not clear to me: do we need to both apply the patch _and_ check if our themes are vulnerable, or just apply the patch?

Edit: looking at the patch itself it looks like it fixes the root cause and so it shouldn't matter what themes are doing themselves. But possibly I'm reading it incorrectly.

3h agoHN ↗

Ironically, this 9 years old comment on the official documentation page of one of the affected functions perfectly describes both the nature and remediation of this major security flaw:

Paul Ryan 9 years ago

Note that locate_template() does not prevent directory traversal attacks, so if you’re passing a user-provided template name to the function, be sure to verify that it’s from one of the three appropriate locations (active theme directory, parent theme directory, or /wp-includes/theme-compat/ directory).

https://developer.wordpress.org/reference/functions/locate_t...

3h agoHN ↗

Ahahah I remember to have patched themes for clients by hand, years ago. A different time, where a core team would for whatever reason leave security holes around to be sure you need three frameworks around their pile of dung code.

38m agoHN ↗

It's a mystery how this exploit was found.

/sarc

31m agoHN ↗

I wonder if they'll add a `locate_template_safe()` function to "fix" it. :D

3h agoHN ↗

These are the reason, why every easily reachable web server will be spammed with /something/something.php?somearg=someval. If I had to guess, which software on the web has been the most exploitable over all of the web's history, WP would surely be among the top candidates. Maybe right after MS Teams or Sharepoint or some stuff like that.

2h agoHN ↗

WP would surely be among the top candidates

And its closely related cousin, Joomla.

2h agoHN ↗

TBF, some of it is structural: if you're the most popular anything on the internet, you'll be the most attacked and the most exploited, and hence the most exploitable.

1h agoHN ↗

That's not really true.

Edit: wow that's a lot of downvotes! I'm surprised people can't identify a trivial reasoning failure.

1h agoHN ↗

nginx serves a third of web traffic.

51m agoHN ↗

Nowhere near what WP has, and nowhere near the crap design allowing it, and the clusterfuck of bad decisions WP has that enables them...

2h agoHN ↗

The access log of public http servers is truly interesting to watch.

You know that the scripts doing it are optimized for success rate, so the types of requests they send give you an impression of what's actually out there.

It's clear to me that once we finally achieve rogue AGI, it is going to propagate through unpatched WordPress WooCommerce instances.

2h agoHN ↗

If I had to guess, which software on the web has been the most exploitable over all of the web's history, WP would surely be among the top candidates.

People on HN love to talk smack about WordPress. After all these years, it's as much a reflex as shouting "walled garden!" every time there's an Apple story.

Yet some of the biggest web sites on the internet run WordPress, and more importantly, some of the biggest hacking targets on the internet run WordPress.

Prime example: whitehouse.gov.

If you know what you're doing, WordPress fine. The same is true with every other piece of technology out there.

But people on HN like to lump the good in with the bad because everything is binary.

1h agoHN ↗

If you know what you're doing, WordPress fine.

Probably true, but for whatever reason Wordpress seems to attract an awful lot of people that do not know what they are doing

1h agoHN ↗

Anecdote: we contracted a web page, and the guy started saying "it would be a Wordpress. It has very bad press, but it's because it is widely used". Ok, we start developing in the latest version of php, and soon he say "we have to go down a couple phpversions, because x pluging don't work in the latest". Requested version had a dozen critical CVEs. Plugin in question did something really basic, like a preview card with OpenGraph data, or something like that. Something a junior could code in a day.

And that is insecure Wordpress: people lego-mounting sites without touching code, only with plugins.

17m agoHN ↗

And that is insecure Wordpress: people lego-mounting sites without touching code, only with plugins.

Works as intended, that's why WP has been so popular

1h agoHN ↗

If you know what you're doing, WordPress fine

If you know what you're doing, a loaded gun without a safety is fine, too. But you have the option, why not pick the unloaded one with a safety mechanism?

7m agoHN ↗

Manual safety or not is a real debate among people who carry pistols for self defense and law enforcement, and no manual safety is the majority position. The reasoning is that an extra step when the user needs the pistol in an emergency is problematic, a properly designed pistol can only fire if the trigger is pulled, and a properly designed holster makes pulling the trigger impossible until the pistol is drawn. Nobody seriously advocates carrying an unloaded pistol for those purposes, and only lunatics advocate having people who don't know what they're doing carry pistols.

It's not a great analogy to Wordpress, which attempts to provide as much capability as possible in a CMS while requiring as little expertise from the user as possible. Vanilla Wordpress, kept up to date is pretty safe. Plugins are just a click away though, and using plugins safely requires evaluating each plugin's risk profile and track record individually, which is real sysadmin work.

1h agoHN ↗

I think the problem is of another nature:

People who _don't_ know what they are doing are using WP for every project, that they touch, because it is all they know. Given WPs database design, the assumptions baked into that, and the complications resulting from that, make anything other than a posts and pages website a PITA.

This in turn requires one to install shitty plugins, or spend time developing a minimalistic solution to each new challenge. With every plugin the attack surface grows, and the vast majority of larger WP sites is this cobbled together mess of WP plugins, having some WP expert trying to make them all work together without stepping on each other's toes, while hopelessly falling behind on updates, because updates could, and _will_ break things.

People only knowing PHP and WP, try to use WP as a sledgehammer, not realizing that hammer actually being made out of glass. Very few plugins are actually minimalistic, no-bloat, safe, well-developed. Lots of those plugins are 80% marketing fluff and wanting to make a business out of worse than mediocre code bases. That's also due to many people in that community being exactly those, who don't know anything but WP.

Even normal core WP updates can break the legality of ones site. I have had that at some point, where after some WP update it started loading emojis from a friggin third party, to replace the unicode symbol I had used. I was furious, because this needs to be part of the data protection policies/statements. One does not simply load a third party shit, replacing what the dev actually put there, which was just a unicode symbol. That's an idiotic thing to do. If I wanted third-party emojis, I would have included them myself.

Finally, some big pages run on WP says not much, given the catastrophic state of many websites. whitehouse.gov is laughably badly made. Another complete failure. The first thing I see that it loads Google tags manager. A government site loading shit.

    fonts.googleapis.com
    googletagmanager.com
    gstatic.com
    parsely.com

All this crap. And this is only what is loaded right out of the box. I haven't even allowed their shitty scripts to run yet.

And the navigation font is tiiiny. What a horrendous design.

When I click on some navigation link, it wants to go to:

    https://www.whitehouse.gov/wp-content/uploads/2026/01/Wide_Site_Primary_02.mp4

lol. From nav directly to some mp4 video?? Not a URL of a page, which then would display the video, but a URL directly to a video? Good that my noscript blocked media on that domain!

If it is a prime example, then it is a prime example of a very shitty made website, by people, who don't know what they should be doing.

So all this shows is one can make a shitty site using WP. Great. I am sure one can also make a not shitty site using WP. Like you say, _"If you know what you are doing ..."_. Just that most WP people don't. They don't know how to not make a mess, or choose the short-term easy way out, and install tons of shitty plugins. Many of them just have to put things up once initially and are paid, or hold the hand open for some maintenance fee they extract, required only due to how badly made these WP sites are.

1h agoHN ↗

to be fair it is one of the top CMS's on the web (probably won't be in 2027) and its PHP / Mysql which in history have been very exploitable.

2h agoHN ↗

It's crazy to me that WP still doesn't make use of proper function type declarations, 11 years after they were added to PHP.

2h agoHN ↗

I am so happy that I asked Codex to rewrite our website as Hugo templates which allowed us to statically host it and get rid of Wordpress. So much stress gone!

2h agoHN ↗

To be clear, those are CVEs in the tooling, not in the generated static sites. Not great, but very different from this WordPress CVE

2h agoHN ↗

When I finally got approval to rewrite the company blog from Wordpress into something that was mostly static, it was the best week. I used PHP to do mobile/desktop and language selection, because PHP is pretty useful, and it can be pretty fast and secure if you only do simple things.

Never had to worry again about sequencing updates where the update changed the database schema and I had a cluster of 6 web servers. Never had to worry anymore about long ass load times because the web servers were in 3 colos and wordpress wouldn't play nice with local read only mysql replicas. No more worries about why pingbacks and comments keep showing up in the database even those those features were turned off; at least they weren't showing up in a moderation queue, but still.

2h agoHN ↗

You can make the most intricate drag and drop admin interfaces to allow the editor to customize everything, and they will still call you to put up every post, so might as well go static

1h agoHN ↗

Is there a good replacement for wordpress comments? That's the one thing holding me back from porting at the moment.

1h agoHN ↗

I think you can render Disqus on static websites, but Disqus is its own piece of crap so not sure you'd want to.

2h agoHN ↗

WordPress really is a piece of garbage software, and if you've ever developed plugins for it it is soooo apparent.

The documentation is a perfect reflection of the absolute mess of spaghetti code that it is, half of the methods that you will use constantly when developing plugins are undocumented, even untyped. It's literally unusable.

I know WordPress is good thanks to its ecosystem, but really, really, do NOT use it.

8m agoHN ↗

"WordPress 7.1.2 has been released containing a fix for the vulnerability, and as a courtesy to users on older branches the fix has been backported to all branches back to 4.7"

As a courtesy, I try not to say more than one bad thing about WP every day. FWIW about 1/3 of installs are not on the recent 7 branch.