vulnerabilities published in 2009




ref. id
title
remote
pre-auth publ. date
severity

APS031
Multiple VLC stack overflows in MP4, AVI and ASF demuxer
yes yes 20. sept, 09 high

references:
VLC advisory

these vulnerabilities can be triggered by creating mp4, asf or avi files with
an overly deep box structure. since vlc is not compiled with /GS we can get
control over eip quite easily. however, code execution is not trivial since
eip can only be overwritten with numeric values (0x30-0x39).



APS030
Apple Quicktime PICT Opcode 0x71 Heap Overflow Vulnerability
yes yes 02. jun, 09 high

references:
ZDI advisory
advisory on Apple homepage

please check the zdi advisory for details.



APS029
Apple Quicktime PICT Opcode 0x8201 Heap Overflow Vulnerability
yes yes 02. jun, 09 high

references:
ZDI advisory
advisory on Apple homepage

please check the zdi advisory for details.



APS028
Apple QuickTime PICT Unspecified Tag Heap Overflow Vulnerability
yes yes 13. may, 09 high

references:
ZDI advisory
advisory on Apple homepage

please check the zdi advisory for details.



APS027
Symantec Client Security Alert Originator Service Stack Overflow Vulnerability
yes yes 28. apr, 09 very high

references:
zdi advisory
advisory by symantec


one of the most dangerous bugs i found so far because the flaws were of a
sort which has become quite rare: vanilla stack overflow! in other words:
- no stack protection (gs cookies)
- no aslr
- stack smash down to SEH
- 100% reliable jump to shellcode on stack without character restrictions
- ...
one of the three bugs was even triggered by strcpy()... amazing!
it felt like exploiting some win2k vulnerability back in 2000 :)
oh well, i hope everyone's patched against this one...




vulnerabilities published in 2008




APS026
Sun Java JRE TrueType Font Parsing Integer Overflow Vulnerability
yes yes 04. dec, 08 very high

references:
idefense advisory
advisory by sun microsystems


quite a bunch of critical vulnerabilities has been fixed in the new JRE release.
one of the bugs was this heap overflow which occurs while parsing a specially
crafted true type font file (.ttf).
the overflow itself happens in a wrapper around the memory allocator. by passing
a small negative value to the allocation wrapper we're able to trigger an integer
overflow and consequently write 10 partially-controlled bytes (one WORD and 2
DWORDs) behind the buffer borders. the font file that i used to hit the vulnerability
does not allow a further heap smash with controlled data due to a signedness check
after the allocation (don't ask me why the check is AFTER the allocation, not before...).
but since the allocator is called many times from several places i'm quite sure that
the vulnerable code can also be reached in a way which would allow us to execute
malicious code fairly reliable.




APS025
OpenOffice EMF Record Parsing Multiple Integer Overflow Vulnerabilities
yes yes 31. oct, 08 high

references:
http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=750
advisory on OpenOffice homepage


3 straight-forward heap overflows caused by integer wraps. following EMR records were vulnerable:
- EMR_EXTTEXTOUTA/W (cases 0x83, 0x84)
- EMR_POLYPOLYGON16 (case 0x5b)
- EMR_POLYPOLYGON (case 0x08)
there's nothing much to say here... it's the typical screw-up which happens just too often
in binary-protocol parsing code. exploitation is not easy but doable.

edit:
seems like StarOffice and StarSuite were vulnerable to these overflows as well...
here's the link to the advisory by sun.




APS024
Novell eDirectory Core Protocol Opcode 0x24 Heap Overflow Vulnerability
yes yes 08. oct, 08 very high

references:
http://zerodayinitiative.com/advisories/ZDI-08-066
advisory on novell homepage (TID 7001183)


this is another pre-auth vulnerability in the core component of novell eDirectory. it's a straight-forward integer wrap
which leads to a heap overflow:
LEA EAX,DWORD PTR DS:[EAX*8+18] ( <- EAX is a controlled DWORD from our user-supplied data)
by supplying values >= 0x1FFFFFFD we'll swap the integer over the 32bit maximum leading to the allocation of a
small heap buffer. a few instructions further down we'll hit a memcpy-like loop which smashes the heap eventually
leading to code execution with SYSTEM privileges.




APS023
Novell eDirectory Core Protocol Opcode 0x0F Heap Overflow Vulnerability
yes yes 08. oct, 08 high

references:
http://zerodayinitiative.com/advisories/ZDI-08-065
advisory on novell homepage (TID 7001184)


here we have the same problem as described in APS024... we supply a huge user-controlled DWORD leading
to an integer wrap. the severity ranking of this vuln has not been set to "very high" because code execution is
most likely not possible here:
at some point of the client-server communication the dhost-process extracts unicode strings from an NCP packet
and checks them against an array of static strings. if one of the key-strings is found a corresponding static ID gets
written to the small-sized buffer which had been allocated after the int wrap. in other words we're able to overflow
the heap with values like 0x050000ff ("[All Attributes Rights]") or 0x070000ff ("[Entry Rights]"), etc...
in a browser-environment this would definitely be exploitable, but in a server-based scenario (no heap spraying and
stuff like that) it is probably not possible. => severity "high"





APS022
Novell eDirectory dhost Integer Overflow
yes yes 10. july, 08 very high

references:
http://www.zerodayinitiative.com/advisories/ZDI-08-041
http://www.novell.com/support/search.do?cmd=displayKC&sliceId=SAL_Public&externalId=3694858


the core component of most of the novell products is prone to quite a bad stack overflow.
just take a look at the size and complexity of ds.dlm. there HAD to be bugs...
sadly this one can be triggered pre-auth over port 524. the origin of this bug was a size
check which could be circumvented by making an integer swap over 0xffffffff (once again...)



APS021
Microsoft Internet Explorer DOM Object substringData() Heap Overflow
yes yes 10. jun, 08 very high

references:
http://zerodayinitiative.com/advisories/ZDI-08-039
http://www.microsoft.com/technet/security/Bulletin/MS08-031.mspx


for those who didn't notice, we had a similar flaw already in 2007 (take a look here).
maybe MS patched a call-path instead of the bug itself? whatever, this bug is quite a bad heap overflow
which results in reliable code execution.
when i read this i really wonder how many are still vulnerable...



APS020
CA ETrust Secure Content Manager Gateway FTP LIST Stack Overflow
yes yes 04. jun, 08 very high

references:
http://zerodayinitiative.com/advisories/ZDI-08-036
https://support.ca.com/irj/portal/anonymous/phpsupcontent?contentID=177784

implementing a gateway (http proxy actually) which is capable of speaking multiple protocols is generally a dangerous idea.
the http code was OK, but the way the gateway service speaks ftp was not.
to trigger this bug you have to issue a request to the gateway and set up a malicious ftp server which speaks
to the gateway and gives overly long responses :)
when the gateway tries to list the ftp's files we can give a malformed response and overflow a stack buffer by
abusing a sprintf() call. code execution can be achieved reliably here.



APS019
CA ETrust Secure Content Manager Gateway FTP PASV Stack Overflow
yes yes 04. jun, 08 medium

references:
http://zerodayinitiative.com/advisories/ZDI-08-035
https://support.ca.com/irj/portal/anonymous/phpsupcontent?contentID=177784

quite similar bug like above. the gateway connects, issues a PASV request and we give a bad response.
the rfc-conform repsonse should have the fragments of the ftp server's IP attached in brackets
(like "227 Entering Passive Mode (10,11,12,13,217,169)"). the first 4 numbers build the IP. and that's
where the flaw happens, because the gateway does not check whether the 4 numbers are between 0x00 and 0xff.
what happens is something like sprintf(< small stack buffer>, "%d.%d.%d.%d", part1, part2, part3, part4);.
supplying large numbers will overflow our small stack buffer.
code execution is not possible i'd say because the function has a stack cookie check before the return
and SEH is of course out of reach => risk medium.



APS018
Microsoft GDI WMF Parsing Heap Overflow Vulnerability
yes yes 08. apr, 08 very high

references:
http://www.zerodayinitiative.com/advisories/ZDI-08-020
http://www.microsoft.com/technet/security/bulletin/ms08-021.mspx

by creating a section in a wmf file with type value 0x42 we'll reach a nice function called CreateDIBPatternBrushPt
which will parse user-supplied data from our input file. this function contains the flawed calculation of a size
value resulting in an integer overflow. the value will be passed on to malloc() and an inline memcpy (rep movsd)
overflowing the heap. the "best" exploitation vector is a browser since we can make use of heap spraying to get
fairly reliable code execution.



APS017
Symantec VERITAS Storage Foundation Administrator Service Heap Overflow
yes yes 20. feb, 08 very high

references:
http://www.zerodayinitiative.com/advisories/ZDI-08-007
http://www.symantec.com/avcenter/security/Content/2008.02.20a.html

the heap overflow occurs in vxvea3.dll which will parse the data coming in from udp port 3207.
it uses a word value from an initial packet (recv size max. 0x200) as the size for a second packet.
the source of the problem is that the destination buffer of the second receive operation has a static size
and is also at a fixed address!! this gives us the chance to overwrite crucial data behind the allocated
buffer if the word value is large enough. the static offset in vxvea3.dll ensures us 100% reliable
exploitation through the control of function pointers which will get called shortly after the overflow.
the result is code execution with SYSTEM privs.. not too good :-/



APS016
Adobe Flash Media Server 2 Multiple Integer Overflow Vulnerabilities
yes yes 12. feb, 08 very high

references:
http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=662
http://www.adobe.com/support/security/bulletins/apsb08-03.html

the heap overflows originate from the usual malloc( [contolled dword] + X)-problem leading to an integer overflow
and a subsequent 0-byte memory allocation. afterwards user-controlled data gets copied into and beyond this
under-allocated buffer. successful exploitation of this bug is rather unlikely due to the huge amount of data
which will be copied (0xffffffff bytes in one case) leading to an access violation as soon as we reach the next
memory page boundary... however, it can be done using multiple simultaneous connections accessing the exact data
regions where the overflow happens.



APS015
IBM Tivoli Storage Manager Express Backup Server Heap Overflow Vulnerability
yes yes 14. jan, 08 very high

references:
http://www.zerodayinitiative.com/advisories/ZDI-08-001.html
http://www-1.ibm.com/support/docview.wss?uid=swg21291536

this issue happens because of a static heap buffer which can be overflown by supplying a large length value in the packet.
thus, we can overwrite structures on the heap including function pointers. by carefully crafting our data we can hijack
these function pointers and get reliable code execution as SYSTEM.






vulnerabilities found in 2007:




ref. id
title
remote
pre-auth publ. date
severity

APS014 Computer Associates eTrust Intrusion Detection CallCode ActiveX Control Code Execution Vulnerability yes
yes
24 july, 07
high


reference:
http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=568


straight forward design error: arg1 is passed to LoadLibraryA, arg2 is passed to GetProcAddress, arg3 (or for other
methods also arg4/5) are pushed as arguments. in other words we can for example load kernel32.system and execute
any command in arg3..


APS013
IBM Tivoli Storage Manager Express CAD Service Overflow
yes
yes
24 sept, 07
very high


reference:
https://www.zerodayinitiative.com/advisories/ZDI-07-054.html


simple unicode heap overflow while parsing the http header. the only surprise is the manner in which we can get
code control here: overwriting the IAT! i've not seen this before and usually it's not possible. however, here it is.. :)


APS012
Trend Micro ServerProtect TMregChange() Stack Overflow
yes
yes
07 sept,07
very high


reference:
https://www.zerodayinitiative.com/advisories/ZDI-07-051.html


this overflow is a classic ^^ programmer A writes a function (here TMRegChange) in which he reserves X bytes
for a local variable. programmer B "checks" user input in his function (strips it down to length Y) and passes
the input to our function by programmer A. but programmer B did not look properly how much space programmer A
reserved! the result is the trouble we have here... a straight-forward stack overflow.


APS011
Ipswitch IMail IMAP Daemon SUBSCRIBE Stack Overflow
yes
no
24 jul,07 high


reference:
https://www.zerodayinitiative.com/advisories/ZDI-07-043.html


a second bug i stumbled over while looking into APS010. exploitable only through SEH control
which is ~30000 chars away from our buffer. but then exploitable very reliably.


APS010
Ipswitch IMail Server GetIMailHostEntry Memory Corruption yes
yes
24 jul,07 very high


reference:
https://www.zerodayinitiative.com/advisories/ZDI-07-042.html


the first bug i found by reversing. it's a heap overflow which is not very easy to exploit, but doable.
this bug can be triggered through services which require authentication! imap, ldap and web-interface are
vulnerable to this attack. only the pop3 daemon verifies the username's length before passing it to GetImailHostEntry.
pre-auth / remote / exploitable overflow in a wide-spread product => risk: very high.





vulnerabilities found in 2006:




ref. id
title
remote
pre-auth publ. date
severity

APS009
Symantec Veritas NetBackup CONNECT_OPTIONS Buffer Overflow yes
yes
13 dec,06 high


reference:
https://www.zerodayinitiative.com/advisories/ZDI-06-006.html


see APS005


APS008
Symantec Veritas NetBackup Long Request Buffer Overflow
yes
yes
13 dec,06 high


reference:
https://www.zerodayinitiative.com/advisories/ZDI-06-006.html


see APS005


APS007
IBM Lotus Domino Server LDAP DoS yes
yes
02 oct,06 medium


reference:
http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=389


0-pointer dereference due to invalid user-input.


APS006
Symantec Veritas NetBackup Database Manager Buffer Overflow
yes
yes
27 mar,06 high


reference:
https://www.zerodayinitiative.com/advisories/ZDI-06-006.html


see APS005


APS005
Symantec Veritas NetBackup Volume Manager Buffer Overflow yes
yes
27 mar,06 high


reference:
https://www.zerodayinitiative.com/advisories/ZDI-06-005.html


this overflow lets malicious users execute code in a very easy and realiable fashion. the reason why it is "only"
rated "high" risk is that the bug can only be triggered from computers within the local network. the vulnerable
service is not reachable from outside the local network.





vulnerabilities found in 2005:




ref. id
title
remote
pre-auth publ. date
severity

APS004
Ipswitch IMail IMAP List Command DoS Vulnerability yes
no
06 dec,05 low


reference:
http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=347


APS003
Novell NetMail IMAPD Buffer Overflows yes
no
18 nov,05 medium


reference:
https://www.zerodayinitiative.com/advisories/ZDI-05-003.html


this advisory comprised 8 post-auth buffer overflows in netmail's imap service. severity medium (post-auth).


APS002
Veritas Backup Exec Remote Agent NDMLSRVR.DLL DoS yes
yes
23 jun,05 medium


reference:
http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=270


not much to say here. the remote agent gets into trouble when parsing crippled input and crashes due to
an access violation when reading in unmapped memory.


APS001
Ipswitch IMail IMAP SELECT Command DoS
yes
no
24 may,05 medium


reference:
http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=241


my first bug *proud*.. it was actually a stack overflow. but didn't have the knowledge to prove it back in 05.
severity "medium" because the SELECT command can only be issued after authenticating to the imap service.






©2009, Sebastian Apelt