lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Date: Wed, 10 Oct 2007 17:07:03 +0100
From: "Andy Davis" <andy.davis@...plc.com>
To: <full-disclosure@...ts.grok.org.uk>
Subject: Cisco IOS LPD Remote Stack Overflow - updated
	Cisco patch link (changed at the last minute)

----------------------------------------------------------------------

IRM Security Advisory 024

 

Cisco IOS LPD Remote Stack Overflow

 

Vulnerability Type / Importance: Remote Code Execution / High

 

Problem Discovered: 30 July 2007

Vendor Contacted: 30 July 2007

Advisory Published: 10 October 2007

----------------------------------------------------------------------

 

Abstract:

 

The LPD daemon included in Cisco IOS is vulnerable to a remote stack
overflow

 

Description:

 

The Line Printer Daemon, which provides print server functionality in
Cisco IOS is vulnerable to a software flaw whereby the length of the
hostname of the router is not checked before being copied into a fixed
size memory buffer. This results in IOS crashing if the hostname is too
long, but could potentially result is arbitrary code execution. However,
the attacker must be able to control the hostname of the router, which

could be achieved via SNMP.   

 

Technical Details:

 

When the LPD daemon is configured in Cisco IOS it listens on the default
LPD TCP port, 515. If connected to with a source TCP port of anything
other than 515 the following error is displayed:

 

$ telnet 172.30.3.101 515

Trying 172.30.3.101...

Connected to 172.30.3.101 (172.30.3.101).

Escape character is '^]'.

hostname_of_the_router: /usr/lib/lpd: Malformed from address

 

If the hostname is 99 characters or longer then the overflow occurs as
the result of a call to the sprintf() function. Although this is
technically a stack overflow, because IOS allocates heap memory for
process stacks, the memory overwritten is actually heap. However, as the
heap memory is acting as a stack, the return address, stored before the
start of the character buffer, can be overwritten by the hostname when
the overflow occurs, but for some reason the crash doesn't occur until
the buffer intrudes into the "red zone" at the boundary of the heap
chunk. Therefore, when the crash happens and the router reboots, the
memory dump indicates heap corruption.

 

It must be reiterated that control of the hostname is required to
exploit this vulnerability. If SNMP is running on the device and the
"read/write" community string is known (this is often set to the default
value "private") then the hostname can be set as follows:

 

$ snmpset -Os -c private -v 1 10.0.0.1 system.sysName.0 s long_hostname

 

Vendor & Patch Information:

 

Cisco has released an update to resolve this issue; this can be
downloaded from:

 

http://www.cisco.com/warp/public/707/cisco-sr-20071010-lpd.shtml

 

Workaround:

 

Cisco has provided the following workaround to mitigate this

vulnerability:

 

http://www.cisco.com/warp/public/707/cisco-sr-20071010-lpd.shtml

 

Tested/Affected Versions:

 

IRM identified this vulnerability in IOS version 12.3(22)

 

Credits:

 

Research & Advisory: Andy Davis

 

Disclaimer:

 

All information in this advisory is provided on an 'as is' basis in the
hope that it will be useful. Information Risk Management Plc is not
responsible for any risks or occurrences caused by the application of
this information.

 

www.irmplc.com

 

 


Content of type "text/html" skipped

_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ