Tighten regex in artifact tool download#46714
Open
ayushhgarg-work wants to merge 1 commit intoAzure:mainfrom
Open
Tighten regex in artifact tool download#46714ayushhgarg-work wants to merge 1 commit intoAzure:mainfrom
ayushhgarg-work wants to merge 1 commit intoAzure:mainfrom
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR aims to harden the ArtifactTool download flow in azure-ai-ml by tightening Azure DevOps organization URL parsing (and, per the PR description, adding ZipSlip/path traversal protection during zip extraction).
Changes:
- Tightened organization URL regex capture groups from
(.*)to([^/]+)for both*.visualstudio.comanddev.azure.com/{org}formats. - (Not present in the current diff) The PR description states ZipSlip validation was added for
ZipFile.extractall(), but the implementation still usesextractall()without member path validation.
Comment on lines
+174
to
180
| organization_pattern = r"https:\/\/([^/]+)\.visualstudio\.com" | ||
| result = re.findall(pattern=organization_pattern, string=organization) | ||
| if result: | ||
| organization_name = result[0] | ||
| else: | ||
| organization_pattern = r"https:\/\/dev\.azure\.com\/(.*)" | ||
| organization_pattern = r"https:\/\/dev\.azure\.com\/([^/]+)" | ||
| result = re.findall(pattern=organization_pattern, string=organization) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Changes
extractall()in_redirect_artifacts_tool_path()(CWE-22)(.*)→([^/]+)to prevent unanchored capture from matching slashesMotivation
extractall()without member path validation allows crafted zip archives to write outside the extraction directory (Defense in Depth / Low / Fix in Next Version)