Rar CmdExtract::UnstoreFile Integer Truncation Memory Corruption

2015-12-10T00:00:00
ID EDB-ID:38930
Type exploitdb
Reporter Google Security Research
Modified 2015-12-10T00:00:00

Description

Rar CmdExtract::UnstoreFile Integer Truncation Memory Corruption. Dos exploits for multiple platform

                                        
                                            Source: https://code.google.com/p/google-security-research/issues/detail?id=550

The attached file crashes in CmdExtract::UnstoreFile because the signed int64 DestUnpSize is truncated to an unsigned 32bit integer. Perhaps CmdExtract::ExtractCurrentFile should sanity check Arc.FileHead.UnpSize early.

I observed this crash in Avast Antivirus, but the origin of the code appears to be the unrar source distribution. I imagine many other antiviruses will be affected, and presumably WinRAR and other archivers.

Proof of Concept:
https://github.com/offensive-security/exploit-database-bin-sploits/raw/master/sploits/38930.zip