Skip to content

CVE-2007-4559 Patch#47

Open
TrellixVulnTeam wants to merge 1 commit intoSkiller9090:masterfrom
TrellixVulnTeam:master
Open

CVE-2007-4559 Patch#47
TrellixVulnTeam wants to merge 1 commit intoSkiller9090:masterfrom
TrellixVulnTeam:master

Conversation

@TrellixVulnTeam
Copy link
Copy Markdown

Patching CVE-2007-4559

Hi, we are security researchers from the Advanced Research Center at Trellix. We have began a campaign to patch a widespread bug named CVE-2007-4559. CVE-2007-4559 is a 15 year old bug in the Python tarfile package. By using extract() or extractall() on a tarfile object without sanitizing input, a maliciously crafted .tar file could perform a directory path traversal attack. We found at least one unsantized extractall() in your codebase and are providing a patch for you via pull request. The patch essentially checks to see if all tarfile members will be extracted safely and throws an exception otherwise. We encourage you to use this patch or your own solution to secure against CVE-2007-4559. Further technical information about the vulnerability can be found in this blog.

If you have further questions you may contact us through this projects lead researcher Kasimir Schulz.

with lzma.open(file) as z:
z.extractall(path=destination_folder)
def is_within_directory(directory, target):

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blank line contains whitespace


abs_directory = os.path.abspath(directory)
abs_target = os.path.abspath(target)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blank line contains whitespace

abs_target = os.path.abspath(target)

prefix = os.path.commonprefix([abs_directory, abs_target])

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blank line contains whitespace

prefix = os.path.commonprefix([abs_directory, abs_target])

return prefix == abs_directory

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blank line contains whitespace

return prefix == abs_directory

def safe_extract(tar, path=".", members=None, *, numeric_owner=False):

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blank line contains whitespace

@qlty-cloud-legacy
Copy link
Copy Markdown

Code Climate has analyzed commit d8cc7ea and detected 10 issues on this pull request.

Here's the issue category breakdown:

Category Count
Style 10

View more on Code Climate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant