Add file transform security note and troubleshooting for blocked xdt:Import - #14397
Draft
Nemanja Rogic (nemanjarogic) wants to merge 1 commit into
Draft
Conversation
Contributor
|
Nemanja Rogic (@nemanjarogic) : Thanks for your contribution! The author(s) and reviewer(s) have been notified to review your proposed change. |
Contributor
|
Nemanja Rogic (@nemanjarogic) : Thanks for your contribution! The author(s) and reviewer(s) have been notified to review your proposed change. |
Contributor
|
Can you review the proposed changes? IMPORTANT: When the changes are ready for publication, adding a #label:"aq-pr-triaged" |
chcomley (chcomley)
approved these changes
Aug 13, 2026
Contributor
|
Nemanja Rogic (@nemanjarogic) chcomley (@chcomley) Can you take this PR out of review please? We cannot merge while it's in draft mode. Thanks. |
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.
Summary
File transformations run by the File Transform and Azure App Service / Web App / Function App deployment tasks now process only the built-in XDT transform and locator types. The
xdt:Importelement (which loads a custom transform assembly by name or path) and any customxdt:Transform/xdt:Locatortypes are rejected by default, because a transform file that comes from an untrusted package could otherwise load and run arbitrary code on the pipeline agent.Changes described above are made through: microsoft/azure-pipelines-tasks-common-packages#641
This PR documents that secure-by-default behavior, the recommended alternatives, and the opt-out variable.
Changes
docs/pipelines/targets/includes/webapp/deploy-options.md— added an[!IMPORTANT]note beside the File Transform task reference: file transformations allow only built-in XDT types; how to adapt (use built-ins, or pre-apply custom transforms before the package reaches the pipeline); and theAZP_ALLOW_UNSAFE_XDT_TRANSFORMSopt-out (flagged as not recommended). This is a shared include, so the note surfaces on the Azure Web App / App Service deployment target pages.docs/pipelines/troubleshooting/troubleshoot-azure-web-app-deploy.md— added a new troubleshooting section, "XML transformation or variable substitution fails after a file transform security update" (Symptom / Cause / Resolution), for customers whose custom XDT transforms stop working; updatedms.date.Why
Secure-by-default: untrusted transform content should not be able to execute code on the agent. The opt-out is documented so pipeline authors with a legitimate need can consciously — and temporarily — restore the previous behavior, with the risk called out.