Netgear Routers DoS UWisc Time Server
numatrix writes "For the last few months, hundreds of thousands of netgear routers being sold had hardcoded values in their firmware for ntp synchronization, causing a major denial of service to the University of Wisconsin's network before it was filtered and eventually tracked down. Highlights how not to code embedded devices." A really excellent write-up of the incident.
slashdot has hard coded a link to the UWisc CS server, sending a DoS to them too
oh, and fp.
And we would have gotten away too, if it weren't for those meddling kids!
---
WARNING:Slashdot karma not redeemable in the afterlife.
Now the
SCO claims that the offending code was copied from their kernel and most definitely MUST be paid for, including a $699 license fee for all people on planet earth owning any model netgear router.
Sig & Below
Yuck Fou
I did that to myself once. It was a piece of software that went to comp.sources.unix (or something similar) and was default-configured to send error mail to an alias that pointed to me. A patch was released very shortly afterwards.
I'd just send the wrong time back to netgear routers. I bet they wouldn't try that again.
It's not nice to kick someone when they're down.
// file: mice.h
#include "frickin_lasers.h"
"Quick! Block port 80!"
I love the irony of trying to read an article about a DoS from a site that's experiencing one because of the article. Yummy.
The C comments in the netgear code were a giveaway, they match those in SCOs code.
"/* Huge Bodge */"
"/* Kludge */"
"/* Magic numbers are cool */"
Maybe windowsupdate.com changed their DNS to point to the University of Wisconsin. :)
I'd hate to be working in Netgear's accounts payable dept. when the bandwidth usage bill arrives.
Beauty is in the eye of the beerholder.
do you have any idea how ports and routers work?
And then we got a ridiculous number of HTTP requests about the problem, which caused our server to explode and rain tiny bits of hazardous material into Lake Michigan. Fortunately, the indigenous wildlife was not affected, because nothing lives in Lake Michigan.
stuff |
UWisc hard codes the date/time on their time time server to 2038-19-01 03:14:00.
After 6 seconds, the netgear will crash and burn as a result of the Y2K38 problem and the requests will be no more.
---- It puts the lotion on its skin or else it gets the hose again. It does this whenever it's told.
First the time server
/.)
Then the e-mail server (from the helpdesk requests)
Then the webserver (from
What next?
Check out the NTPd man pages- I believe this server is a second echelon mirror.
...now that I think about it...
Didn't you mean to say stratum?
Unless NTP is really a cover up to a top secret government information collection service =)
Where's my tin foil hat?
"Some things have to be believed to be seen." - Ralph Hodgson
oh, and we laughed long and hard at the guy who put down:
The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
Oh yeah?! Well, we just /.'d that one, too!
:)
Go ahead, give us another, I dare ya!
Nobody figured how to blame Microsoft yet? Come on you "M$" people - get cracking!
Sweet! I have a Netgear router, does this mean I'm a hacker now?
---
Lousy rotten karmic retribution.
1) It's a stratum 1 server, which means it ultimately sets the clocks of millions of other machines, not netgear routers.
2) How many people with a home router (internet savvy or not) spend all that much time reading the logs, let alone making sure the time stamps are valid?
I know you probably do, but I dont. Because I'm just a simple caveman home networker, and your logs and timestamps frighten and confuse me.
I don't need no instructions to know how to rock!!!!
don't you know you're supposed to call us "insensitive clods"?
:D
honestly...
ed
ShortSpecialBus, eh? ;-)
Dewey, what part of this looks like authorities should be involved?
> const int SIXTY = 60.2;
The programmer would catch on pretty quick when it didn't compile. Now, if he declared it as a float, on the other hand...
Do daemons dream of electric sleep()?