CVE-2024-46691: Vulnerability in Linux Linux
In the Linux kernel, the following vulnerability has been resolved: usb: typec: ucsi: Move unregister out of atomic section Commit '9329933699b3 ("soc: qcom: pmic_glink: Make client-lock non-sleeping")' moved the pmic_glink client list under a spinlock, as it is accessed by the rpmsg/glink callback, which in turn is invoked from IRQ context. This means that ucsi_unregister() is now called from atomic context, which isn't feasible as it's expecting a sleepable context. An effort is under way to get GLINK to invoke its callbacks in a sleepable context, but until then lets schedule the unregistration. A side effect of this is that ucsi_unregister() can now happen after the remote processor, and thereby the communication link with it, is gone. pmic_glink_send() is amended with a check to avoid the resulting NULL pointer dereference. This does however result in the user being informed about this error by the following entry in the kernel log: ucsi_glink.pmic_glink_ucsi pmic_glink.ucsi.0: failed to send UCSI write request: -5
AI Analysis
Technical Summary
CVE-2024-46691 addresses a vulnerability in the Linux kernel related to the USB Type-C Connector System Software Interface (UCSI) and Qualcomm PMIC GLINK communication. The issue arises from a recent kernel commit that moved the pmic_glink client list under a spinlock to protect access from IRQ context callbacks. This change causes the function ucsi_unregister() to be called from an atomic context, which is problematic because ucsi_unregister() expects to run in a sleepable context. Since atomic context disallows sleeping, this leads to improper handling of the unregistration process. To mitigate this, the unregistration is now scheduled to occur later, but this introduces a race condition where ucsi_unregister() can be executed after the remote processor and its communication link have already been terminated. This can cause pmic_glink_send() to attempt to dereference a NULL pointer, potentially leading to kernel log errors and instability. The patch adds a check in pmic_glink_send() to avoid NULL pointer dereferences and logs an error message when a UCSI write request fails. Although no known exploits are reported in the wild, this vulnerability highlights a concurrency and context-handling flaw in the kernel's USB Type-C subsystem, which could lead to kernel errors or crashes under certain conditions involving remote processor communication and device unregistration.
Potential Impact
For European organizations relying on Linux-based systems, especially those using hardware with Qualcomm PMIC components and USB Type-C interfaces, this vulnerability could lead to kernel instability or crashes. This may affect embedded systems, IoT devices, or servers that utilize these components, potentially causing denial of service or system disruptions. While the vulnerability does not directly allow privilege escalation or code execution, the resulting kernel errors and instability could disrupt critical services or device operations. Organizations in sectors such as telecommunications, manufacturing, automotive, and critical infrastructure that deploy Linux on Qualcomm hardware may experience operational impacts. Additionally, debugging and maintenance overhead may increase due to kernel log errors and unexpected behavior. The absence of known exploits reduces immediate risk, but the underlying concurrency flaw could be leveraged in complex attack scenarios or combined with other vulnerabilities.
Mitigation Recommendations
European organizations should prioritize applying the official Linux kernel patches that address this issue, ensuring that the pmic_glink client list is properly synchronized and that ucsi_unregister() is not called in atomic context. System administrators should monitor kernel logs for the specific error message 'failed to send UCSI write request: -5' as an indicator of this issue. For systems where immediate patching is not feasible, consider isolating or limiting the use of affected USB Type-C hardware or Qualcomm PMIC components to reduce exposure. Developers and integrators should review their use of remote processor communication and ensure that callbacks are invoked in appropriate contexts to avoid atomic context violations. Additionally, implementing robust error handling around UCSI and pmic_glink interactions can help mitigate potential disruptions. Regularly updating Linux kernel versions and subscribing to vendor security advisories will ensure timely awareness and remediation of related issues.
Affected Countries
Germany, France, United Kingdom, Netherlands, Sweden, Finland, Italy, Spain
CVE-2024-46691: Vulnerability in Linux Linux
Description
In the Linux kernel, the following vulnerability has been resolved: usb: typec: ucsi: Move unregister out of atomic section Commit '9329933699b3 ("soc: qcom: pmic_glink: Make client-lock non-sleeping")' moved the pmic_glink client list under a spinlock, as it is accessed by the rpmsg/glink callback, which in turn is invoked from IRQ context. This means that ucsi_unregister() is now called from atomic context, which isn't feasible as it's expecting a sleepable context. An effort is under way to get GLINK to invoke its callbacks in a sleepable context, but until then lets schedule the unregistration. A side effect of this is that ucsi_unregister() can now happen after the remote processor, and thereby the communication link with it, is gone. pmic_glink_send() is amended with a check to avoid the resulting NULL pointer dereference. This does however result in the user being informed about this error by the following entry in the kernel log: ucsi_glink.pmic_glink_ucsi pmic_glink.ucsi.0: failed to send UCSI write request: -5
AI-Powered Analysis
Technical Analysis
CVE-2024-46691 addresses a vulnerability in the Linux kernel related to the USB Type-C Connector System Software Interface (UCSI) and Qualcomm PMIC GLINK communication. The issue arises from a recent kernel commit that moved the pmic_glink client list under a spinlock to protect access from IRQ context callbacks. This change causes the function ucsi_unregister() to be called from an atomic context, which is problematic because ucsi_unregister() expects to run in a sleepable context. Since atomic context disallows sleeping, this leads to improper handling of the unregistration process. To mitigate this, the unregistration is now scheduled to occur later, but this introduces a race condition where ucsi_unregister() can be executed after the remote processor and its communication link have already been terminated. This can cause pmic_glink_send() to attempt to dereference a NULL pointer, potentially leading to kernel log errors and instability. The patch adds a check in pmic_glink_send() to avoid NULL pointer dereferences and logs an error message when a UCSI write request fails. Although no known exploits are reported in the wild, this vulnerability highlights a concurrency and context-handling flaw in the kernel's USB Type-C subsystem, which could lead to kernel errors or crashes under certain conditions involving remote processor communication and device unregistration.
Potential Impact
For European organizations relying on Linux-based systems, especially those using hardware with Qualcomm PMIC components and USB Type-C interfaces, this vulnerability could lead to kernel instability or crashes. This may affect embedded systems, IoT devices, or servers that utilize these components, potentially causing denial of service or system disruptions. While the vulnerability does not directly allow privilege escalation or code execution, the resulting kernel errors and instability could disrupt critical services or device operations. Organizations in sectors such as telecommunications, manufacturing, automotive, and critical infrastructure that deploy Linux on Qualcomm hardware may experience operational impacts. Additionally, debugging and maintenance overhead may increase due to kernel log errors and unexpected behavior. The absence of known exploits reduces immediate risk, but the underlying concurrency flaw could be leveraged in complex attack scenarios or combined with other vulnerabilities.
Mitigation Recommendations
European organizations should prioritize applying the official Linux kernel patches that address this issue, ensuring that the pmic_glink client list is properly synchronized and that ucsi_unregister() is not called in atomic context. System administrators should monitor kernel logs for the specific error message 'failed to send UCSI write request: -5' as an indicator of this issue. For systems where immediate patching is not feasible, consider isolating or limiting the use of affected USB Type-C hardware or Qualcomm PMIC components to reduce exposure. Developers and integrators should review their use of remote processor communication and ensure that callbacks are invoked in appropriate contexts to avoid atomic context violations. Additionally, implementing robust error handling around UCSI and pmic_glink interactions can help mitigate potential disruptions. Regularly updating Linux kernel versions and subscribing to vendor security advisories will ensure timely awareness and remediation of related issues.
Affected Countries
For access to advanced analysis and higher rate limits, contact root@offseq.com
Technical Details
- Data Version
- 5.1
- Assigner Short Name
- Linux
- Date Reserved
- 2024-09-11T15:12:18.249Z
- Cisa Enriched
- true
- Cvss Version
- null
- State
- PUBLISHED
Threat ID: 682d9820c4522896dcbdcdd3
Added to database: 5/21/2025, 9:08:48 AM
Last enriched: 6/27/2025, 9:12:32 PM
Last updated: 8/12/2025, 6:43:51 PM
Views: 14
Related Threats
CVE-2025-9053: SQL Injection in projectworlds Travel Management System
MediumCVE-2025-9052: SQL Injection in projectworlds Travel Management System
MediumCVE-2025-9019: Heap-based Buffer Overflow in tcpreplay
LowCVE-2025-9017: Cross Site Scripting in PHPGurukul Zoo Management System
MediumCVE-2025-9051: SQL Injection in projectworlds Travel Management System
MediumActions
Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.
External Links
Need enhanced features?
Contact root@offseq.com for Pro access with improved analysis and higher rate limits.