GHSA-vx2x-9cff-fhjw — DSInternals.Common
MEDIUMGHSA-vx2x-9cff-fhjw is a medium-severity (CVSS 6.3) vulnerability in DSInternals.Common. A fix is available for DSInternals.Common — see the affected versions and patch details below.
DSInternals Credential Roaming Elevation of Privilege Vulnerability
Real-World Exposure
DSInternals.CommonReal-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
Impact
A vulnerability exists in the DSInternals.Common.Data.RoamedCredential.Save() method, which incorrectly parses the msPKIAccountCredentials LDAP attribute values. As a consequence, a malicious actor would be able to modify the file system of the computer where an application using this function is executed with administrative privileges.
A similar security issue used to be present in the Windows operating system, as DSInternals re-implements the Credential Roaming feature of Windows.
Exploitability
The vulnerability can be exploited under the following circumstances:
- An attacker is able to modify the
msPKIAccountCredentialsattribute of a user account in Active Directory. This attribute is used by the Credential Roaming feature of Windows and each AD user can modify their own roamed credentials. AND - A 3rd party application uses the
DSInternals.Commonlibrary to export roamed credentials from Active Directory to a file system. AND - The application has administrative privileges on the local system.
The probability of any 3rd-party product using the DSInternals.Common library being affected by this vulnerability is extremely low.
Patches
The issue had been fixed in DSInternals 4.8.
References
https://www.mandiant.com/resources/blog/apt29-windows-credential-roaming
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| .NETNuGet | DSInternals.Common | ≥ 2.21&&< 4.8 | 4.8dotnet add package DSInternals.Common --version 4.8 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for DSInternals.Common, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update DSInternals.Common to 4.8 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-vx2x-9cff-fhjw 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-vx2x-9cff-fhjw can be triaged on real exposure rather than presence alone.
Tailored to GHSA-vx2x-9cff-fhjw. 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-vx2x-9cff-fhjw in your dependencies?
O3 Security finds GHSA-vx2x-9cff-fhjw across NuGet dependencies, including transitive ones, and its impact-aware SCA ranks findings by whether your code actually calls the vulnerable path.