Skip to content

[3.10] gh-149486: tarfile.data_filter: validate written link target (GH-149487) - #153180

Merged
pablogsal merged 1 commit into
python:3.10from
StanFromIreland:backport-5784119-3.10
Jul 6, 2026
Merged

[3.10] gh-149486: tarfile.data_filter: validate written link target (GH-149487)#153180
pablogsal merged 1 commit into
python:3.10from
StanFromIreland:backport-5784119-3.10

Conversation

@StanFromIreland

@StanFromIreland StanFromIreland commented Jul 6, 2026

Copy link
Copy Markdown
Member

The data filter rewrote linknames with normpath() but ran the containment check against the un-normalised value, and computed a symlink's directory before stripping trailing slashes. Both let a crafted archive create links pointing outside the destination. Also reject link members that resolve to the destination directory itself, which could otherwise replace it with a symlink and redirect all subsequent members.

(Patch by Greg; Petr's just reviewing & merging.)
(cherry picked from commit 5784119)

…rget (pythonGH-149487)

The data filter rewrote linknames with normpath() but ran the
containment check against the un-normalised value, and computed a
symlink's directory before stripping trailing slashes.  Both let a
crafted archive create links pointing outside the destination.  Also
reject link members that resolve to the destination directory itself,
which could otherwise replace it with a symlink and redirect all
subsequent members.

(Patch by Greg; Petr's just reviewing & merging.)
(cherry picked from commit 5784119)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
@StanFromIreland

Copy link
Copy Markdown
Member Author

Based on #150904.

@pablogsal
pablogsal merged commit c063191 into python:3.10 Jul 6, 2026
21 of 23 checks passed
@StanFromIreland
StanFromIreland deleted the backport-5784119-3.10 branch July 6, 2026 19:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants