Critical RCE Vulnerability in Apache HTTP Server (wiz.io)

290 pointsby soheilpro12 hours ago137 comments

jamesy0ung 8 hours ago

Patch looks like https://github.com/apache/httpd/commit/5ed39287660daacd1233c...

acidburnNSA 3 hours ago

Appears to be the first issue ranked 'critical' since 2021. https://httpd.apache.org/security/vulnerabilities_24.html

rurcliped 3 hours ago

For anyone temporarily shutting off an Apache httpd, there's one step that's sometimes missed: a cron job or systemd timer for certbot. This can restart httpd and leave it running. In other words, in some common uses of Let's Encrypt, standard instructions such as "systemctl disable --now apache2" aren't sufficient to keep httpd off.

0x0 3 hours ago

If I need to make sure apache doesn't restart I often type "syntax error" on the first line of httpd.conf

bennofs 2 hours ago

When using systemd, "systemctl mask apache2" can make sure that it's impossible for the unit to be started again (remove the mask with systemctl unmask once you've applied the patch).

lionkor an hour ago

I would suggest instead blocking 80 and 443 on UDP and TCP, via your firewall.

speleding 39 minutes ago

Shutting down Apache is perhaps overcautious? Simply doing `sudo a2dismod http2` and then restarting Apache should be enough as far as I can tell

throooooo 9 hours ago

I have a lot of Linux sysadmin experience but haven't touched Apache in more than a decade. I thought it's mostly nginx or other solutions at this point.

orev 9 hours ago

At least 21% of web sites use Apache httpd, and of course many sites don’t report the software used at all. Nginx is also frequently used as a reverse proxy, with Apache used behind it.

JodieBenitez 9 hours ago

At work we use Apache because of mod_shib. We have yet to try nginx-http-shibboleth.

throwaway7356 2 hours ago

One should stop using SAML anyway as that has its own collection of problems. We learned a lot about problems with cryptographic protocols in the last 30 years that cannot be fixed in SAML.

dawnerd 8 hours ago

Default Wordpress docker image uses it.

nine_k 8 hours ago

Apache has plenty of life left, it just works™, supports almost everything, and currently is about as efficient as nginx WRT connection handling. Sometimes you want what .htacces gives you. (No built-in Lua though.)

iririririr 6 hours ago

i mostly use nginx lua to patch on some feature i had even on bare Apache, let alone all the core modules.

idoubtit an hour ago

> (No built-in Lua though.)

I thought mod_lua was an official module. I've just checked with Debian stable, and their "apache2-bin" package depends on liblua5.

> Apache has plenty of life left

I would expect a project with "plenty of life left" to support HTTP3. And to use Git (or some modern DVCS) instead of Subversion.

BTW, a co-worker has to maintain an Apache server because its shibboleth mod is mandatory for that project, and he often complains about it, and so do I when they ask for help. Performance is worse than nginx, configuration is awful, documentation is uneven, some features (like .htaccess) are dangerous, etc.

Apache http is the only project that I know that still uses Subversion. They have published a Git clone on Github, but their main source is still svn. It's a bit worrying, because they won't attract new developers with that technical stack. Last I checked, the 2.5 branch looked dead, and the dev-list was barely active.

throw0101c an hour ago

> (No built-in Lua though.)

* https://httpd.apache.org/docs/2.4/mod/mod_lua.html

?

skeletal88 7 hours ago

Why would I not use apache if everything already works with it for me?

load-bearing 7 hours ago

Apache has mod_md -- an acme client, which lets you obtain https certificates as easily as on caddy, without integrating with awkward separate programs.

https://httpd.apache.org/docs/trunk/mod/mod_md.html

tyho 6 hours ago

nginx has that too https://blog.nginx.org/blog/native-support-for-acme-protocol

dwedge 2 hours ago

There is a 7 year difference between those release announcements. Personally I've never liked nginx because of their attempts at monetising it, a lot of features are behind nginx plus which is really expensive and full of sales staff who try to reach out all the time, and when you start it, it says something along the lines of "Starting a high performance webserver" which always seemed strange

nik282000 6 hours ago

My whole selfhosted mess is built around Apache. It was what I started with and I haven't run into any edge cases that it can't cover.

tasuki 4 hours ago

Exactly the same for me! I could switch to Nginx, it's one prompt away probably, but why?

dizhn 6 hours ago

I am the same way. I use Caddy if I can. But I have a lot of docker containers running apache and nginx. You probably might too.

hannob 6 hours ago

Apache has a feature that no other http server has replicated: .htaccess files.

They provide limited configurability of server functionality within a webroot. That's extremely convenient for PHP webapps. For many PHP apps, deploying them on anything that is not apache means touching the server config itself.

system2 6 hours ago

PHP can go to hell. My hair is gray because of it. Nginx is superior, and I can get anything imaginable done with config files. And not to mention, it's much faster.

ezst 5 hours ago

The http servers drag race finished 15 years ago on a tie, it's really much a matter of taste and familiarity more than performance at this point.

arcanemachiner 4 hours ago

The lazy bastard in me prefers Caddy.

theandrewbailey 3 hours ago

I don't understand this. NGINX can run PHP. PHP is not exclusive to Apache.

Joel_Mckay 2 hours ago

In general, the Apache php mod has had less drama than php-fpm over the years. Also, casting each domain under specific isolated itk server user(s) account(s) adds a layer of containment, where Nginx processes must run under a single user context.

Nginx uses way less memory in most use-cases (1/4 to 1/10), but with dynamic content like php it is only slightly better (maybe 15% if lucky). Also, setting up websocket proxy in Nginx is still a bit of a bodge.

Each server type has its own trade offs, and a list of known mitigations the uninitiated must learn. If you have a single domain high-traffic site with static media files, than Nginx is probably going to matter more. =3

ransom1538 5 hours ago

Eh. You can use .htaccess in nginx too. I use that everyday.

Alghranokk 5 hours ago

Does not Microsoft's IIS also have that with web.config files?

joseda-hg 2 hours ago

Yes, but then you're dealing with IIS and why would you want that?

account42 4 hours ago

I would say that's actually a misfeature as it requires too many additional filesystem lookups to fulfil requests.

Modifying the web server config is a nonissue outside of shared hosting, which should have died out with the advent of VMs/containers.

jagged-chisel 3 hours ago

> … too many additional filesystem lookups …

Caching is a thing. Only dump the cache when a changed is noticed.

canibalrex 3 hours ago

And now you have 2 problems..

bch 37 minutes ago

Webserver/filesystem management, cache invalidation, and off-by-one errors.

sscaryterry 24 minutes ago

Your forgot naming things :)

throw0101c an hour ago

> I would say that's actually a misfeature as it requires too many additional filesystem lookups to fulfil requests.

Its use is optional: set "AllowOverride None" (the default) and it's disabled.

* https://httpd.apache.org/docs/2.4/mod/core.html#allowoverrid...

vbezhenar 24 minutes ago

Why shared hosting should die? It's still the cheapest way to publish a dynamic website.

cyphar 3 hours ago

Ah yes, htaccess. Another lovely source of security bugs for the past 30 years and may it continue to bear skiddie fruit for another 300.

Its model is fundamentally flawed precisely because it was based on the fundamentally flawed PHP model (website assets and code are stored and hosted from the same webroot). This allowed for shared hosting to exist but containers and reverse proxies are a far better way of organising such sites today.

The fact that in other webservers the server's configuration is configured through its configuration file and not the content of its webroot is a feature.

anonreplier 2 hours ago

Yes apache has a config file too amazingly enough, .htaccess is optional

cyphar 2 hours ago

The point I was making is that having alternative sources of configuration (coming from the contents being served no less) is a misfeature.

Really not sure how one could possibly read my comment as me saying htaccess is the only way of configuring Apache?

HackerThemAll an hour ago

> Apache has a feature that no other http server has replicated: .htaccess files.

That can expose your files for such a trivial reason as different end of line sequence than what it expects. Instead of shutting down the access, it just happily ignores .htaccess and enables DirectoryIndex.

This is the software that's responsible for majority of data leaks in the world.

Stop using it.

throw0101c an hour ago

> I thought it's mostly nginx or other solutions at this point.

What advantage(s) does nginx have over Apache?

Back in the day (Apache 2.0) there was certainly a performance with nginx being event-driver, but with Apache 2.4 and mpm_event, does that still apply?

* https://httpd.apache.org/docs/2.4/mod/event.html

baggy_trough 37 minutes ago

nginx is easier to configure.

account42 4 hours ago

> in Apache HTTP Server’s HTTP/2 module (mod_http2)

I feel like in hindsight, HTTP/2 was a mistake. The theoretical benefits just don't justify the added complexity. It definitely shouldn't have been fasttracked like it was.

mogoh 4 hours ago

I don't think it was fast tracked. Was it? I heard the rational to do HTTP 2 and soon later HTTP 3 was to split improvements and ease transition.

mono442 4 hours ago

HTTP/3 was the real mistake. It basically reimplements TCP on top of UDP and from my testing (at least the existing implementations) it generally performs worser then HTTP/2. Even when testing on somewhat a bit lossy connection.

Woodi 3 hours ago

But if you have more then one httpd server - eg. some fcgi - then HTTP/1.1 is almost architectural backdor: HTTP Request Smuggling, at minimum.

Apache even don't have it's own HTTP/2: mod_http2 use external library nghttp2[.org] so Apache is dead shell at this point.

kibwen 43 minutes ago

Agreed. Too much complexity for too little gain for too narrow use cases. HTTP/1.1 will outlive HTTP/2.

load-bearing 33 minutes ago

Where do you live? I'm hundreds of milliseconds away from all major datacenters, http2 adoption has been incredible at reducing web latency to tolerable levels. Much less staring at empty or half loaded pages.

thehamkercat 11 hours ago

> What is CVE-2026-111497?

> CVE-2026-119618 is a critical, high-severity vulnerability involving....

two CVEs? (111497 != 11968)

kbenson 10 hours ago

I saw that too. CVE-2026-111497 is the Brotli CVE, so my guess is they reused that prior page as a base to start with and missed changing that.

2bird3 10 hours ago

You'd think they'd have an LLM reviewing this by now. On the up side, it is refreshing to see good ol' human error still around on the surface!

davisr 8 hours ago

What makes you think it's not already an LLM error?

brabel 8 hours ago

Even a tiny model would pick up an error like this during review.

iririririr 6 hours ago

just had claude today spew some basic firewall rules for port 5900 and 5901... it used 5900 and 59001

amluto 4 hours ago

Even a tiny model might, if promoted correctly.

Even the latest and greatest big models miss trivial errors when simply asked to review a chunk of text.

spuz 7 hours ago

If you use modern LLMs a lot you'll know they are much better at catching these kind of copy and paste errors than humans are.

neurostimulant 5 hours ago

Chances are most Apache/PHP installations run mpm_prefork and aren’t affected by this.

ezst 4 hours ago

why? mod_mpm_event is what can be assumed to be the default since apache 2.4 (± 2012):

https://httpd.apache.org/docs/current/mpm.html#defaults

neurostimulant 4 hours ago

IIRC popular apache/php platforms such as cpanel, official wordpress docker container image, etc use mpm_prefork by default.

spuz 7 hours ago

I don't understand what they mean by "51% of cloud environments" have a publicly exposed instance. What is a "cloud environment"? Do they mean a cloud hosting provider like AWS or Google? Are they saying that between those two only one of them has an instance of a vulnerable Apache server running?

glawre 4 hours ago

I think they’re likely referring to either a Cloud Org (AWS Organisation, Google Cloud Org, Azure Tenant).

Wiz works by plugging their tool into your Cloud Org, so presumably they’re saying 51% of their enterprise-y customers have an exposed instance.

necovek 4 hours ago

My guess is that they are collecting stats on running HTTP daemon software and thus they estimate that 64% of "cloud accounts" have Apache somewhere, and 51% of the total are publicly exposed instances (not on VPCs and such).

As they make a note that this does not account for configuration, so if you've got the http2 module disabled, it sounds like you are protected — though they only recommend hard-coding the protocol version to 1.1 instead of disabling the module (I've got the module disabled as that was the default when I set up my homelab server, for instance).

klaas- 6 hours ago

duplicate of https://news.ycombinator.com/item?id=50453368

z3ratul163071 7 hours ago

what is amazing, there are no apache updated containers / packages available yet.

hypfer 7 hours ago

At least disabling http2 is an easy countermeasure that will probably in most setups not have any real downsides.

If it was even enabled that is.

Deukhoofd 7 hours ago

Why are these things being disclosed before fixes have been rolled out? Is no-one following disclosure protocols any more?

load-bearing 29 minutes ago

At least wrt the linux kernel, Greg kh explained that there's no point in delayed disclosures anymore, one LLM reporting a bug is often followed by several more reporting the same bug on the same day. So you can assume it's public knowledge by the time it's reported.

yhjz 5 hours ago

Debian tracker: https://security-tracker.debian.org/tracker/CVE-2026-119618 - hopefully the fix lands soon

sherr 4 hours ago

Debian has been patched just now and updates available : apache2 2.4.71-1~deb13u1

ankit9673 3 hours ago

everybody new Vulnerability makes me think how we are not so good a writing secure code?.

gib444 3 hours ago

We knew we weren't, deep down. Some people did better than others at writing more secure of course. It was just about good enough in a world where – compared to today – it took much more time, skill and effort to find bad bugs.

The mistake is to think that the 'magical' LLMs don't write buggy code and that there isn't some tradeoff in using them. There are always tradeoffs in engineering.

later

And, security is always relative to the adversary and landscape, which has massively changed recently.

brazukadev an hour ago

it is also quite difficult to make a house safe if there are millions of people willing to breach it.

The offender side evolved, the defender needs to evolve too and that will be very, very expensive but much cheaper than not fixing the problems.

lionkor an hour ago

Nobody ever was. The big argument against needing safer languages was basically "but if you're an expert at C/C++/whatever, your code is pretty much safe". And these are usually the people who don't run extensive fuzzing and test suites.

eptcyka 5 hours ago

What is the benefit of using Apache over enjinx?

mhitza 4 hours ago

Depends on use-case. As a reverse proxy I might use Caddy, for no fuss https. I prefer Apache over nginx for modules that are not available in the later, or they are not for free.

jerrythegerbil 9 hours ago

This took 7 minutes and $0.02 in deepseek spend through a subscription to reproduce. The prompt was simply directed at a vulnerable version and told to find a h2 race, which is generically the most common culprit these days. Once it found one, I had it attempt the same against a patched version (which failed).

Disabling h2 is the mitigation and is effective. The patch itself seems a little odd as a fix to me personally, but eh.

NitpickLawyer 9 hours ago

Did it manage to produce a PoC for RCE? Apparently Redhat claimed there's a RCE, while Wiz said they don't have one.

EGreg 7 hours ago

http2 race??

What exactly is the issue and does nginx have it

yunuserturk 7 hours ago

LiteSpeed and OpenLiteSpeed affected by this?

jaekwon 7 hours ago

gno.security/repairer

cubefox 8 hours ago

No CVSS severity level?

8-prime 6 hours ago

NIST doens't show one (yet?). I checked on RedHat and they list it at a 9.8

cubefox 5 hours ago

That's crazy high.

kgeist 11 hours ago

>Due to improper synchronization when executing concurrent threads sharing resources, an attacker can trigger heap corruption.

>As of the time of this blog’s publication, no exploit is available and there are no reports of exploitation in the wild.

Since when does "memory corruption" = "RCE"? Last week I found and reproduced a memory corruption (a use-after-free) in PHP's runtime after running an on-premise agent for just 30 minutes. There's nothing about it on the internet. Should I write a blog post about a scary new vulnerability? :)

fooqux 11 hours ago

If you can corrupt memory in a controllable way, you can get a computer to do just about anything that process has rights to. Possibly even the kernel, if you can get at some shared memory.

kgeist 11 hours ago

But it's not a given that memory corruption is exploitable as an RCE specifically. I thought to call something an RCE you need a working exploit?

edoceo 11 hours ago

Isn't resource consumption a DoS?

woodruffw 11 hours ago

A denial of service is a different class of vulnerability (a minor one, generally).

stonogo 11 hours ago

Presumably one of Anthropic, Google, or Apache possesses a working exploit, because the official Apache Foundation report on this CVE claims RCE is possible.

woodruffw 11 hours ago

I was prepared to disagree with you, but I agree: I'd say there's a strong norm of not calling things RCE unless you can actually demonstrate RCE, or at least have a clean pathway to demonstrating it (e.g. a full write-what-where).

It's perfectly sufficient to have a CVE for just memory corruption, so the "RCE" framing here feels overstated. Particularly when an LLM should easily prove RCE out if it is in fact present.

thephyber 5 hours ago

Another comment says it has a CVSS score of 9.8 which means CVE, easy to exploit, and an exploit gives LOTS of access.

Before we get too whiny about "it's only memory corruption without any RCE PoC", let's wait until the CVE is unembargoed.

perching_aix 11 hours ago

RedHat claims there's a working RCE:

> (...) public research has demonstrated a reliable exploit against a default-configured server with the mod_http2 module enabled. Successful exploitation allows an attacker to execute arbitrary commands, gain full control of the server process, and access or modify sensitive information.

https://access.redhat.com/security/cve/cve-2026-119618

Discovered independently by Anthropic (Oct 26) and Google (Nov 3), so I'm compelled to believe it: https://httpd.apache.org/security/vulnerabilities_24

But maybe someone will post another HN challenge like with the PHP thing?

uptrails 7 hours ago

I don't know the backstory here, but there's a long and colorful history of vendors and other parties guessing that some contrived memory corruption bug isn't exploitable and then being proven wrong, so the industry now more or less defaults to the assumption that it's exploitable.

Let me remind you that in response to the PHP bug, one of the front-page HN posts was a guy saying it's probably not exploitable and another offering Bitcoin to anyone who pops their server... with predictable results.

People can be pretty creative with exploitation primitives, and LLMs now replicate that at a scale. And yep, if you found a use-after-free that can be triggered remotely in PHP under some reasonable assumptions, you should probably treat it as a security bug.

koolba 11 hours ago

Why does it say the “vendor” for this is GitHub (for mod_h2)?

Is that just crappy LLM generated copy that is assuming that GitHub the company is responsible for that module because it’s hosted there?

stonogo 11 hours ago

Yes, this is slop, extruded from reading the patch and the official announcement, which is at https://httpd.apache.org/security/vulnerabilities_24.html#CV...

wild_pointer 11 hours ago

From 2.4.55 through 2.4.70? Jokes on you, my version is not that new!

toast0 10 hours ago

I'm guessing you missed out on Heartbleed too :P At work we managed to upgrade to a vulnerable version 1 month before that came out .... ugh

jamesfinlayson 8 hours ago

Well I know someone who will get bitten - a couple of years I did some work (because security said so) to make sure we always pulled latest Apache when building our Docker container. Someone ripped that change out not long ago because it was too hard to maintain the Debian repo config changes needed to pull it in, and as a result they'll probably get stung by having a version right in the meaty part of that range.

fulafel 9 hours ago

The C chansaw juggling doesn't get any safer from adding threads. Is the robust original (pre)fork configuration still supported?

fock 8 hours ago

I don't know, but Claude is fixing that too! (doubt that makes it safer either...)

toast0 7 hours ago

I run apache with prefork on my personal sites. Still works. No idea if it supports http/2.

haradion 7 hours ago

This has not been a good month for the LAMP stack…

superkuh 11 hours ago

It's not always HTTP/2. But it's a pretty safe bet.

userbinator 11 hours ago

The vulnerability affects deployments utilizing HTTP/2 capabilities

g-b-r 10 hours ago

Even Apache is being filled with Claude commits, so great.....

g-b-r 9 hours ago

I don't know why your comment is dead, but I meant in general perching_aix , it's just what I noticed looking up this

pixel_popping 9 hours ago

You prefer to leave it insecure?

g-b-r 9 hours ago

It was a comment unrelated to this vulnerability

TZubiri 10 hours ago

all my handwritten sockets servers are fine because I use HTTP/1.1

I have 1 apache acting as a proxy for vhosts and

> a2dismod http2

gives me

> Module http2 already disabled

I don’t want to tempt fate (and hackers ) but I have dodged lots of major vulns this year with my strategy of writing code by hand instead of pip installing everything

only vuln I was exposed to was copy.fail, but that was a defense in depth weakness, and I was vulnerable to the kvm weakness if there was a malicious tenant in my host’s hypervisor, but that’s not fair I’m poor so I don’t have a dedi.

maybe the tcp vuln was the most exposed I’ve been but that was a very short window that got auto upgraded by apt with a high attack complexity

maybe I can write about how I survived 2026 without getting a supply chain vuln and get some work or students on new years? I feel that’ll be a pretty big accolade.

perching_aix 10 hours ago

isn't http/1.1 request smuggling a known risk in exactly the scenario you're using it in?

hypfer 7 hours ago

If I understand correctly that only affects reverse proxy chains, which people might just not have. Or not have in a way that is vulnerable to that?

I guess it makes sense that "the cloud" moves to it, but beyond that, it might be fine?

tgma 7 hours ago

Time for a Rust based httpd replacement like https://xin.dev

hnarn 7 hours ago

How would Rust have fixed this security issue?

flossly 6 hours ago

They've published an article last month on the Nginx vulnerabilities in light of their Rust implementation.

https://xin.dev/blog/multiple-nginx-vulnerabilities/

hnarn 4 hours ago

If you’re going to respond, at least make an attempt to answer the question.

flossly 2 hours ago

It's not for Apache, that may be too recent (no blog post yet. For if you want to see how Rust can prevent vulnrs, the blog post explains it nicely.

Sorry for you I did not meet your standards. Pfff.

Xylakant 4 hours ago

One of the core claims of the language is data race safety because in safe rust, no memory location can be written by two or more owners at the same time. (see https://doc.rust-lang.org/nomicon/races.html for a more detailed discussion) Consequently, the kind of memory corruptions that this vulnerability seems to exploit are not possible in safe rust. Now, we don't know if a hypothetical rust-based apache implementation would have reached for unsafe in this context or done any other wild thing, but it's fair to assume that the likelihood of an exploitable RCE through memory corruption trends towards zero in programs written in Rust.

Ukv 4 hours ago

> > a concurrent execution race condition within the assign_headers() function when handling shared resources [...] can corrupt heap memory to achieve arbitrary code execution (RCE)

To my understanding, in safe Rust to share between threads the compiler will require something like Arc<Mutex<...>> - which prevents unsynchronized access or freeing while another thread is still using it.

K0nserv 4 hours ago

The details I've seen are too sparse to say with certainty, but it seems like the issue is concurrent access to the same value through a pointer.

In particular it's `req` in the function with this signature:

    static void assign_headers(request_rec *r, const h2_request *req,
                               int no_body, int is_connect)
The fix being:

                - apr_table_setn(req->headers, "Content-Length", "0");
                + apr_table_setn(r->headers_in, "Content-Length", "0");
My read on this is that `req` is meant to be a readonly value in this function, which is why it's marked `const`. And being readonly, it would be safe to access concurrently. However, someone accidentally wrote through this pointer.

In Rust this would've been `req: &h2_request` and the accidental write wouldn't have been possible (barring interior mutability). Even with interior mutability there is no thread interleaving during the write, which happens through a `&mut h2_request` probably obtained through a lock.

flossly 6 hours ago

Cannot find the source... (Wanted to see if they use the RusTLS)

mono442 4 hours ago

this looks vibecoded which is probably even worse