Fix of Directory Traversal vulnerability (CVE-2024-55587) #41
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
The
ZipFileextractandextractallmethods inlibarchiveare vulnerable to a directory traversal attack, allowing files to be written anywhere on disk, regardless of the intended target path.This vulnerability stems from line 107 in
libarchive/zip.py:Here,
os.path.joincombines unsanitized user input (name) with the intended extraction path, making the method susceptible to malicious input.Our fork addresses this issue by implementing the
sanitize_filenamemethod, which incorporates logic from thepyzipperproject, a well-tested and secure solution.Additionally, we have added docstrings to enhance code readability and maintainability.