CVE-2025-3931 is a high-severity (CVSS 7.8) CWE-280 vulnerability in github.com/redhatinsights/yggdrasil. The records list no fixed version yet; check the vendor advisory below and apply the mitigations in the meantime.
Yggdrasil: local privilege escalation in yggdrasil
Exploitation Status
No confirmed exploitation observed yet
- A successful exploit gives an attacker total control of the affected component, not partial access.
- CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.
Exploitation and automatability from CISA’s SSVC triage for CVE-2025-3931.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
github.com/redhatinsights/yggdrasilReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.
Description
A flaw was found in Yggdrasil, which acts as a system broker, allowing the processes to communicate to other children's "worker" processes through the DBus component. Yggdrasil creates a DBus method to dispatch messages to workers. However, it misses authentication and authorization checks, allowing every system user to call it. One available Yggdrasil worker acts as a package manager with capabilities to create and enable new repositories and install or remove packages.
This flaw allows an attacker with access to the system to leverage the lack of authentication on the dispatch message to force the Yggdrasil worker to install arbitrary RPM packages. This issue results in local privilege escalation, enabling the attacker to access and modify sensitive system data.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐹Go | github.com/redhatinsights/yggdrasil | all versions | No fix |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/redhatinsights/yggdrasil, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Remediation status
The records we use list no patched version of github.com/redhatinsights/yggdrasil for CVE-2025-3931. Check the maintainer's advisory, and where your build allows, override or pin the dependency away from the vulnerable range.
Mitigate without a patch
Close the privilege gap rather than the entry point: audit which accounts, roles and service identities can reach the affected operation, drop the component to the least privilege it actually needs, and review file and directory permissions created by earlier installs — a default left in place is what makes this reachable.
Fixing This On Your OS
If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.
This vulnerability qualifies as Important rather than Moderate due to its direct violation of privilege boundaries and its broad post-install attack surface. The core issue lies in the com.redhat.Yggdrasil1.Dispatch() method being exposed over the system DBus without any authentication or authorization, enabling any…
Mitigation is either unavailable or does not meet Red Hat Product Security standards for usability, deployment, applicability, or stability.Source: Red Hat security advisory for CVE-2025-3931 (CC BY 4.0)
| Product | Fixed in | Advisory |
|---|---|---|
| Red Hat Enterprise Linux 10 | yggdrasil-0:0.4.5-3.el10_0 | RHSA-2025:7592 |
Frequently Asked Questions
Is CVE-2025-3931 in your dependencies?
Find it across Go, including transitive dependencies.