Microsoft Security Advisory CVE-2021-43896: Spoofing issue in PowerShell 7.2
Executive Summary
This advisory addressed a potential issue in PowerShell 7.2 where specially crafted ANSI control sequences are used through the pipeline to create executable code. An attacker could potentially craft code so that it behaves differently before and after sending the code through the pipeline. The fix changes the default mode of $PSStyle.OutputRendering to Ansi and makes fixes to that mode so strings through the pipeline are not altered.
System administrators are advised to update PowerShell 7 to an unaffected version (see affected software).
If you have found a potential security issue in PowerShell 7,
please email details to secure@microsoft.com.
Support
You can ask questions about this issue on GitHub in the PowerShell organization.
This is located at https://github.com/PowerShell/.
The Announcements repo (https://github.com/PowerShell/Announcements)
will contain this bulletin as an issue and will include a link to a discussion issue where you can ask questions.
Disclaimer
The information provided in this advisory is provided "as is" without warranty of any kind. Microsoft disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. In no event shall Microsoft Corporation or its suppliers be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages, even if Microsoft Corporation or its suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability for consequential or incidental damages so the foregoing limitation may not apply.
What if the update breaks my script or module?
You can uninstall the newer version of PowerShell 7 and install the previous version of PowerShell 7.
This should be treated as a temporary measure.
Therefore, the script or module should be updated to work with the patched version of PowerShell 7.
Acknowledgments
Microsoft recognizes the efforts of those in the security community who help us protect customers through coordinated vulnerability disclosure.
Microsoft Security Advisory CVE-2021-43896: Spoofing issue in PowerShell 7.2
Executive Summary
This advisory addressed a potential issue in PowerShell 7.2 where specially crafted ANSI control sequences are used through the pipeline to create executable code. An attacker could potentially craft code so that it behaves differently before and after sending the code through the pipeline. The fix changes the default mode of
$PSStyle.OutputRendering
toAnsi
and makes fixes to that mode so strings through the pipeline are not altered.System administrators are advised to update PowerShell 7 to an unaffected version (see affected software).
Discussion
Please open a support question to discussion the PowerShell aspects of this advisory.
Affected Software
The vulnerability affects PowerShell 7 prior to the following versions:
Advisory FAQ
How do I know if I am affected?
If all of the following are true:
pwsh -v
, then, check the version in the table in Affected Software to see if your version of PowerShell 7 is affected.How do I update to an unaffected version?
Follow the instructions at Installing PowerShell 7 to install the latest version of PowerShell 7.
Updating PowerShell 7.2 and newer using Microsoft Update
Updating PowerShell 7.2 and newer using Microsoft Update
Other Information
Reporting Security Issues
If you have found a potential security issue in PowerShell 7, please email details to secure@microsoft.com.
Support
You can ask questions about this issue on GitHub in the PowerShell organization. This is located at https://github.com/PowerShell/. The Announcements repo (https://github.com/PowerShell/Announcements) will contain this bulletin as an issue and will include a link to a discussion issue where you can ask questions.
Disclaimer
The information provided in this advisory is provided "as is" without warranty of any kind. Microsoft disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. In no event shall Microsoft Corporation or its suppliers be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages, even if Microsoft Corporation or its suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability for consequential or incidental damages so the foregoing limitation may not apply.
What if the update breaks my script or module?
You can uninstall the newer version of PowerShell 7 and install the previous version of PowerShell 7. This should be treated as a temporary measure. Therefore, the script or module should be updated to work with the patched version of PowerShell 7.
Acknowledgments
Microsoft recognizes the efforts of those in the security community who help us protect customers through coordinated vulnerability disclosure.
See acknowledgments for more information.
External Links
CVE-2021-43896
Revisions
V1.0 (December 14, 2021): Advisory published.
Version 1.0 Last Updated 2021-12-14