Vulnerability in Kernel: llc: only change llc->dev when bind() succeeds
Summary
GSD-2022-1001933: llc: only change llc->dev when bind() succeeds. Affects Kernel versions >= e9072996108387ab19b497f5b557c93f98d96b0b, < 60981bb5ce183cbea9ddc88389735f363b8c56c5. No fix is published. How to fix ↓
Check if this vulnerability affects your application
Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.
No signup required · Results in about 60 seconds
Background
The Kernel is a crucial component of the Linux operating system that acts as a bridge between the hardware and software layers. It provides essential functionalities, such as device drivers, memory management, and process scheduling. The vulnerability in question affects the Kernel's llc module, which is responsible for managing the Link Layer Control (LLC) protocol. The llc module handles the binding of network devices and is susceptible to a flaw that allows the modification of llc->dev even when the bind() operation fails.
Vulnerability Detail
The vulnerability arises from a logic error in the llc module, where the llc->dev variable is changed even if the bind() operation fails. This can lead to unexpected behavior and potential security risks. An attacker could exploit this vulnerability to manipulate network device bindings, potentially causing network disruptions or gaining unauthorized access to sensitive information. It is important to note that the impact and plausibility of attacks have not been proven yet.
How To Fix
No fixed version is published for this vulnerability.
Tip — Not sure whether your app is affected? Vulert can check the versions your app actually runs. Scan free →
Workaround
As a workaround, users can apply the following code change to the affected llc module:
--- a/net/llc/af_llc.c
+++ b/net/llc/af_llc.c
@@ -1390,7 +1390,7 @@ static int llc_ui_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len
return -EINVAL;
}
- llc->dev = dev;
+ if (!err)
+ llc->dev = dev;
return 0;
}
Please note that this workaround should be applied with caution and is not a substitute for updating to a fixed version of the Kernel.
Conclusion
In conclusion, the vulnerability in the Kernel's llc module allows for the modification of llc->dev even when the bind() operation fails. This can have various security implications, including network disruptions and unauthorized access to sensitive information. It is crucial to update the Kernel to a fixed version or apply the provided workaround to mitigate the vulnerability. For further support on vulnerability remediation, please contact DevNack.com.
See every vulnerability recorded for Kernel →
FAQ
The Kernel is a critical component of the Linux operating system that acts as a bridge between the hardware and software layers. It provides essential functionalities, such as device drivers, memory management, and process scheduling.
The llc module in the Kernel is responsible for managing the Link Layer Control (LLC) protocol. It handles the binding of network devices and facilitates communication between them.
The vulnerability allows for the modification of llc->dev even when the bind() operation fails. This can lead to unexpected behavior and potential security risks. Attackers could exploit this vulnerability to manipulate network device bindings, potentially causing network disruptions or gaining unauthorized access to sensitive information.
No, the impact and plausibility of attacks have not been proven yet. However, it is crucial to address the vulnerability to mitigate potential risks.
To fix the vulnerability, it is recommended to update the Kernel to version v5.15.32 or any subsequent version that includes the fix. This can be done by applying the relevant patches or upgrading the Kernel.
Related vulnerabilities
Recent vulnerabilities recorded for Kernel.