Live data from Hacker News

Remote Kernel Code Execution Via HTTP Request In IIS On Windows

ma.ttias.be

41–50 of 201 posts

Re: Remote Kernel Code Execution Via HTTP Request In IIS On Windows

#41
post #31
post #24

Earlier quoted context omitted.

And how much internet-facing web content is served with this toy webserver exactly? That's what I thought, none (except maybe the author's blog? wild guess).

[deleted]

From that very link, they use IIS (what this CVE is about), not a linux kernel-space http server.

Re: Remote Kernel Code Execution Via HTTP Request In IIS On Windows

#42
post #29

I tried to send the bad curl request to our servers (test env, obviously) and I didn't get any error. It seems I should be getting "Requested Range Not Satisfiable" if the server is vulnerable and "The request has an invalid header name" if it's patched. I'm getting neither, simply a normal response HTTP 200 with the requested page. Anyone knows how to really test it? EDIT : It is indeed related to "Output Cache" set…

+1. Also tried this on multiple web servers. Unable to reproduce under several different scenarios using curl

Re: Remote Kernel Code Execution Via HTTP Request In IIS On Windows

#43
post #40
post #35

Earlier quoted context omitted.

Are you sure that curl is sending the request properly? (Check with tcpdump)

Yep. I tried curl -v to get all the raw headers line by line and the payload is there, and I also tried in telnet, both return a 200 page. I read the microsoft security bulletin and it says that your IIS server is protected if Kernal Caching is off, maybe that's why our servers are neither blocking the request nor crashing with the request.

I have tried this with kernel caching enabled. (kernel caching IS enabled by default from what I can see). Still unable to reproduce using curl.

Re: Remote Kernel Code Execution Via HTTP Request In IIS On Windows

#44

> Details are withheld for now At least for us. DHS/NSA already has them thanks to Microsoft's renewed commitment to share "cyber-threat" data with them (a.k.a zero-days).

I'm actually sort of glad that my national defense forces get a jump on this stuff. Especially if it's only a few days or a week to secure their systems and (for the clandestine services) to retool their exploits. I believe there are actual clandestine actions in the national interest happening and it would be nice to see those enabled. (e.g. Stuxnet/sabotaging foreign nuclear weapons development)

Re: Remote Kernel Code Execution Via HTTP Request In IIS On Windows

#46
The reason the kernel is involved with http handling is a feature called "Kernel Caching"[1]:

> Enable kernel caching to effectively scale and improve Web server performance. Cached responses are served from the kernel. This greatly improves response times and increases the number of requests per second that IIS can serve because requests for cached content never enter IIS user mode.

[1] https://technet.microsoft.com/en-us/library/cc731903(v=ws.10...

Re: Remote Kernel Code Execution Via HTTP Request In IIS On Windows

#48
post #46

The reason the kernel is involved with http handling is a feature called "Kernel Caching"[1]: > Enable kernel caching to effectively scale and improve Web server performance. Cached responses are served from the kernel. This greatly improves response times and increases the number of requests per second that IIS can serve because requests for cached content never enter IIS user mode. [1] https://technet.microsoft.com…

If you don't have the kernel caching enabled, does this vulnerability still work?

Re: Remote Kernel Code Execution Via HTTP Request In IIS On Windows

#49
It's surprising that this could even cause a crash, much less code execution, since if it really is an integer overflow I'd expect the range to wrap around (mod 2^n) and you'd just get a different part of the file you were requesting (e.g. with 32-bit maths, asking for bytes 0-4294967300 will return bytes 0-4 instead.) It looks more like a signed/unsigned confusion to me - the 1844...615 value is -1 if interpreted as a signed number, and even if this caused reading past the end of a buffer, the result would be more Heartbleed-like than code execution.

Just taking a guess here, but the code execution probably requires a POST request instead of GET. Nevertheless, it's still quite puzzling how something like this could occur.

Note: I have not tested this personally. Others here https://news.ycombinator.com/item?id=9380889 say they haven't been able to reproduce it.

Edit: apparently you need kernel caching of HTTP requests enabled, and at least one rule for caching, and the request has to satisfy that rule, in order to cause a crash.

Re: Remote Kernel Code Execution Via HTTP Request In IIS On Windows

#50
post #48
post #46

The reason the kernel is involved with http handling is a feature called "Kernel Caching"[1]: > Enable kernel caching to effectively scale and improve Web server performance. Cached responses are served from the kernel. This greatly improves response times and increases the number of requests per second that IIS can serve because requests for cached content never enter IIS user mode. [1] https://technet.microsoft.com…

If you don't have the kernel caching enabled, does this vulnerability still work?

According to microsoft's bulletin disabling kernel caching will avoid the vulnerability.

* I should cite this : https://technet.microsoft.com/library/security/ms15-034

See section Vulnerability Information > Workarounds

Post reply on HN