This is an interesting development in router security, Cisco bugs have been popping up now and then – not that often – but usually when they do they are quite serious.

The problem with them was you needed so many variations unless you were just targeting one specific router, with that specific version of IOS and hardware. Now someone has applied the ‘Write Once, Run Anywhere’ programming principle to Cisco exploits enabling one exploit to run on a far wider variety of Cisco platforms than was previously possible.

This is quite serious as most of the Internet architecture is based at some point of peering on a Cisco device.

A researcher has discovered a way to reliably exploit a known security vulnerability in a wide class of Cisco System routers, a finding that for the first time allows attackers to hijack millions of devices with a single piece of code. The discovery by Felix “FX” Lindner of Recurity Labs in Berlin brings the write-once-run-anywhere approach of software development to the dark art of compromising routers that form the core of the internet. Previously, reliable exploit code had to be specifically fashioned to one of more than 15,000 different supported builds of IOS, or Internet Operating System, which run various Cisco devices. “What FX has shown, conclusively, is that when something comes out that can potentially compromise your router, you have to get on it as you would get on a remote vuln, for, say, your domain controllers or database servers,” said Dan Kaminsky, a fellow researcher who has reviewed Lindner’s findings (PDF). “Router infrastructure has been conclusively proven to be as generically vulnerable as commodity operating systems.”

FX who is better known from his association with Phenoelit recently demonstrated his findings at CCC (Chaos Communication Congress) with a known vulnerability.

If this gets into the wrong hands it could be bad new, but then as always I would assume it’s already in the wrong hands and has been for time (and they’ve been using it) under the radar.

The problem with routers is that once comprised subtle changes can be made to the routing tables and firewall rules that can severely compromise a network and be very hard to detect.

Each image version of IOS loads programs in substantially different parts of the device’s memory. Until now, the randomization made it virtually impossible for weaponized exploit code to know ahead of time where to stash malicious payloads for the specific device it was targeting. Lindner was able to work through this limitation by observing the behavior of software known as ROMmon, which is analogous to the ubiquitous bios software found on personal computers. By using small chunks of ROMmon, Lindner has shown that it’s possible to drop code into specific memory locations and then execute it. At last week’s Chaos Communication Congress he used the technique to reliably exploit a known vulnerability across a wide class of Cisco routers. The exploit disabled the devices’ CPU caches and instead got them to load his own code. The method works on any Cisco device that uses a PowerPC processor, which includes the widely used 2600 and 17000 series routers. He has yet to find a similarly reliable way to attack Cisco gear that uses MIPS microprocessors, but said he is close.

In the last part of the article they raise a very good point, it is extremely hard to update a router with IOS, especially the older ones as it can really b0rk the configuration and leave you in a heap of trouble.

During many audits I’ve found core Cisco devices running horribly out of date software with serious remote exploits.

I hope Cisco addresses this and makes it easier for their clients to keep running a secure version.

Source: The Register