GHSA-jcmq-5rrv-j2g4 — PowerShell
HIGHGHSA-jcmq-5rrv-j2g4 is a high-severity (CVSS 8.8) remote code execution vulnerability in PowerShell. A fix is available for PowerShell — see the affected versions and patch details below.
PowerShell is subject to remote code execution vulnerability
Real-World Exposure
PowerShellReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects NuGet packages — download data is not available via public APIs for these ecosystems.
Description
Microsoft Security Advisory CVE-2020-0605: .NET Framework Remote Code Execution Vulnerability
Executive Summary
A remote code execution vulnerability exists in .NET software when the software fails to check the source markup of a file.
An attacker who successfully exploited the vulnerability could run arbitrary code in the context of the current user. If the current user is logged on with administrative user rights, an attacker could take control of the affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.
Exploitation of the vulnerability requires that a user open a specially crafted file with an affected version of .NET Framework. In an email attack scenario, an attacker could exploit the vulnerability by sending the specially crafted file to the user and convincing the user to open the file.
The security update addresses the vulnerability by correcting how .NET Framework checks the source markup of a file.
Discussion
Please open a support question to discuss the PowerShell aspects of this advisory. Please use https://github.com/dotnet/wpf/issues/2424 for discussion of the .NET WPF aspects of this advisory.
<a name="affected-software">Affected Software</a>
The vulnerability affects PowerShell prior to the following versions:
| PowerShell Core Version | Fixed in |
|---|---|
| 6.2 | Not Affected |
| 7.0 | 7.0.0 |
Advisory FAQ
How do I know if I am affected?
If all of the following are true:
- Run
pwsh -v, then, check the version in the table in Affected Software to see if your version of PowerShell is affected. - If you are running a version of PowerShell where the executable is not
pwshorpwsh.exe, then you are affected. This only existed for preview version of7.0.
How do I update to an unaffected version?
Follow the instructions at Installing PowerShell to install the latest version of PowerShell.
Other Information
Reporting Security Issues
If you have found a potential security issue in PowerShell, please email details to [email protected].
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.
What if the update breaks my script or module?
You can uninstall the newer version of PowerShell and install the previous version of PowerShell. This should be treated as a temporary measure. Therefore, the script or module should be updated to work with the patched version of PowerShell.
Acknowledgments
Soroush Dalili (@irsdl)
External Links
Revisions
<!-- TBD: update date -->V1.0 (March 10, 2020): Advisory published.
Version 1.0 Last Updated 2020-03-10
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| .NETNuGet | PowerShell | all versions | 7.0.0dotnet add package PowerShell --version 7.0.0 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for PowerShell, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update PowerShell to 7.0.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-jcmq-5rrv-j2g4 is resolved across your whole dependency graph.
Workarounds
If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.
How O3 protects you
O3 Security's impact-aware SCA analyses which vulnerable code paths your application actually calls, so a match like GHSA-jcmq-5rrv-j2g4 can be triaged on real exposure rather than presence alone.
Tailored to GHSA-jcmq-5rrv-j2g4. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.
Frequently Asked Questions
Is GHSA-jcmq-5rrv-j2g4 in your dependencies?
O3 Security finds GHSA-jcmq-5rrv-j2g4 across NuGet dependencies, including transitive ones, and its impact-aware SCA ranks findings by whether your code actually calls the vulnerable path.