Repository navigation
fixing the security issue - #49675
Conversation
|
Azure Pipelines: Successfully started running 1 pipeline(s). 9 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
[Pilot] PR Pipeline Failure AnalysisWhat failedBuild 6991592 of "python - pullrequest" (https://dev.azure.com/azure-sdk/public/_build/results?buildId=6991592) failed in Build Analyze, Build Build Docs, and the Build Test sub-steps on all platforms (Ubuntu 2404 3.10/3.13/3.14, Windows2022 3.12). 448 unit tests passed in every job — there are no real test failures. 1. Build Build Docs (sphinx) — caused by this PR This PR's new README.md "Security notice" section adds 2. Build Analyze — markdown link checker — same root cause 3. Build Analyze — cspell check — infrastructure, unrelated to this PR
4. Build Test (all platforms) — mindependency check — infrastructure, unrelated to this PR Identical failure (network-forbidden socket) reproduces across every platform/Python version, confirming it's a CI sandbox restriction, not a code issue. All Recommended next steps
Automated fix: Requested
|
8f46acd
into
hotfix/urlValidatorS360Fix_azure-communication-callautomation_1.6.0
Description
Fixes a recording URL validation bypass in azure-communication-callautomation that could allow an authenticated request to an unintended endpoint when an application supplies an attacker-influenced recording URL.
The previous implementation validated URLs using urllib.parse but passed the original string to the HTTP transport. Literal backslashes before @ could cause the validator and Requests/urllib3 to interpret different destination hosts, potentially exposing the application's Bearer token.
Changes
Reject recording URLs containing raw backslashes, whitespace, control characters, user-info, or malformed authorities.
Require HTTPS and valid ASCII DNS hostnames within the existing ACS recording endpoint allowlist.
Canonicalize the validated authority and use the returned URL when constructing requests.
Add a shared pipeline policy that revalidates recording destinations before authentication on retries and redirects.
Apply the protection to synchronous and asynchronous recording downloads and deletes.
Preserve valid ACS redirects and signed query parameters.
Add regression coverage for malformed URLs, external destinations, redirects, and the default Requests and aiohttp transports.
Document the security fix and version-specific deprecation of 1.6.0, recommending upgrade to 1.6.1 or a later fixed release.
No service API specification changes or SDK regeneration are involved. Public method signatures remain unchanged; previously accepted unsafe URLs are intentionally rejected.
The branch also includes recording test fixture and playback asset updates.
All SDK Contribution checklist:
General Guidelines and Best Practices
Testing Guidelines