"Apache Killer" Web Server Hole Plugged
CWmike writes "The Apache open-source project has patched its Web server software to quash a bug that a denial-of-service (DoS) tool has been exploiting. Apache 2.2.20, released Tuesday, plugs the hole used by an 'Apache Killer' attack tool. On Aug. 24, project developers had promised a fix within 48 hours, then revised the timetable two days later to 24 hours. The security advisory did not explain the delay."
"Apache Killer"
They should call the exploit "Smallpox".
Thank you, I'll be here all week! Try the veal!
Trolling is a art,
Isn't this serious enough to warrant a 2.0.65 release that patches this too? There are still some applications that won't support the 2.2 branch.
Not that they must, being free and all. Sure they get contributions, but I'm sure there is a lot on their plate, for a project of this scale and importance, that would warrant a deadline extension, a small one, mind you.
The fix is called 'Hiawatha'.
Your UID is too close to mine. I demand that you change yours immediately.
Thanks to this post, my server, at least, is fully patched now. How many years will it be before all the production systems in the world have this installed?
No, fuck you fagstorm. Wanna fight me? I've kicked the ass of APK, MichealKristopeit, kdawson, and that goatse troll. You can take that chill pill and SHOVE IT STRAIGHT UP YOUR ASS.
Well, it is a suppository...
I'm a good cook. I'm a fantastic eater. - Steven Brust
http://mail-archives.apache.org/mod_mbox/www-announce/201108.mbox/%3C85111090-501E-4C80-AA8F-DD11B94FDF7C@apache.org%3E
I remember reading how people had all sorts of ideas like sorting the ranges, ignoring gaps of less than 80 bytes, noticing that it went afoul of the standard. Around the same time nginx also did a release with the approach of sending back the entire file if the sum of the ranges was more. That was so simple, and it's okay according to RFC 2616 a server MAY ignore the range header, so it's clever too! Glad all the memory handling was fixed-up too though.
It's worse than you though, in binary!
00110001001101010011100100110001001100000011001000110111
00110001001101010011100100110100001101100011001000110001
Both your UID numbers have 32 zeros and 24 ones...
You have the right to remain sentient. If you give up the right to remain sentient, you will be elected to public office
It's worse than you though, in binary!
[first UID in binary]
[second UID in binary]
Both your UID numbers have 32 zeros and 24 ones...
Is there a specific reason you padded them to 56 bits?
What would have made sense to me would have been no padding (no leading zeros), or padding to 64 bits (because that's how the UIDs are probably stored internally). In the first case, it would be 30 zeros, in the second, it would be 40.
BTW, how did you get it through the lame(ness) filter? I get a filter error in just quoting your post ("Filter error: That's an awful long string of letters there.") Only after removing the binary strings, Slashdot allowed me to even preview.
The Tao of math: The numbers you can count are not the real numbers.
You forgot to mention that there were several workarounds was available immediately that took less than a minute to implement.
It's worse than you though, in binary!
[first UID in binary]
[second UID in binary]
Both your UID numbers have 32 zeros and 24 ones...
Is there a specific reason you padded them to 56 bits?
Or why he was looking at the ASCII representation of the UIDs?
A more logical representation of the numbers would be:
(00000000)000110000101010011111101
(00000000)000110000100011011110011
12 (or 20) zeros and 12 ones.
The ASCII representations of UIDs has a Hamming distance of 6, while the more logical binary representation of the UIDs has a Hamming distance of 5.
What would have made sense to me would have been no padding (no leading zeros), or padding to 64 bits (because that's how the UIDs are probably stored internally).
32 bits would be more than enough for those UIDs.
alias sudo="echo make it yourself #" ; # https://pipedot.org/~stderr & http://soylentnews.org/~stderr
I got bitten by this moving our SSL server from 2.2.9 to 2.2.20 - they changed the config processor and our SSL config broke.
Apache claim that a given "stable" series will keep a constant ABI. They seem utterly unable to comprehend that config files count as part of the ABI. Note that binary modules work the same all the way across 2.2.x ... that doesn't help when a "nothing's changed" upgrade breaks stuff.
The changes are typically tightening the rules and disabling technical violations of them. That's a noble aim, but you need to save it for the next version - you can't pull that shit midstream in a "stable" series!
We previously got bitten by Apache's incomprehension on this point when we went from Tomcat 6.0.16 to 6.0.29.
So, before upgrading anything "stable" from the Apache Foundation: Thoroughly test the result, and make sure you can back out at a minute's notice.
http://rocknerd.co.uk
Is your world black and white? Mine isn't. So why do our computers have to be binary?
Because computers use logic to operate. When you remove the binary 'black & white' nature of logic you start entering shades of grey. Shades of grey are fine for everyday life, but when they are applied to some things they just don't work. For examples see ethics, the law, loyalty, monogamy, honesty, etc (to see all of these in one example see politics).
I don't get this part. Even if we everything in the previous statement, 2d + 2d + 1d = 5 days. The 24 was 9 days ago.
What did I miss?
Debian, on the other hand, gave a fix 5 days later (4 days ago), way before the upstream.
http://www.debian.org/security/2011/dsa-2298
BTW, how did you get it through the lame(ness) filter? I get a filter error in just quoting your post ("Filter error: That's an awful long string of letters there.") Only after removing the binary strings, Slashdot allowed me to even preview.
I think he added a space after the first string of binary numbers (before a <br /> tag).
00110001001101010011100100110001001100000011001000110111
00110001001101010011100100110100001101100011001000110001
Yup, that space worked.
Is there a specific reason you padded them to 56 bits?
Adding another eight leading '0's results in the "Filter error: That's an awful long string of letters there." error.
I haven't looked at this fix in detail, but from the sounds of it, I'm not convinced that the fix is complete.
The attacker, for example, could request 999,999 individual one byte ranges of a 1,000,000 byte document. In a partial range response, each individual partial range gets wrapped into a separate MIME entity. The response from the server is basically a multipart MIME document. There's significant overhead per MIME section. Each single byte of the document gets attached to a header that, perhaps would be around 40-50 bytes long. Still quite a bit of bandwidth amplification.
Why am I not surprised?
This VMware bulletin warns of using the new 2.2.20 as it intoduces protocol bugs and application incompatibilities. Also they say Apache 1.3 is not affected as the original advisory claims.
http://pastebin.com/dHMnEjxh
Also be careful if you are just "trusting" that RedHat rolled this code into their RPM. The backport (do not get me started on that rant) of this "fix" for httpd-2.0.52 does not actually incorporate any of the code release by Apache. You will likely review what you are putting on your server. You can choose to do it before you roll it out, or you may be forced to do it after you are hit with the same script that you thought you were protected against. It only takes a small modification to that Perl script to make a '5-' into a '6-' and you are not protected from that script.