This repository was archived by the owner on Feb 25, 2020. It is now read-only.

Description
Description
Attackers can create Zip archives that use path traversal to overwrite important files on affected systems, destroying them or replacing them with malicious alternatives or upload a new one with a malicious code.
How to reproduce
- Create file with some code, for example:
- Name it somehow like this "xxxphpinfo.php".
- Create a zip archive.
- Open zip archive in hex editor. Change xxx to ../ in two places: in the top of the hex and in the bottom.
- Pass modified archive to the Ne-Lexa/php-zip extraction function. For example:
Zipper::make('phpinfo.zip')->folder('')->extractTo('uploads/');
I don't have folders in archive, but with and without it works the same.
6) Navigate to ../uploads and execute phpinfo.php.
Possible Solution
Use php zlib or somehow escape ../ characters.
Additional context
More about vulnerability:
https://snyk.io/research/zip-slip-vulnerability
Archive example:
php2.zip