tipc: Improve Size Validations for Received Domain Records in Kernel
Summary
GSD-2022-1000094: tipc: improve size validations for received domain records. Affects Kernel versions >= 35c55c9877f8de0ab129fa1a309271d0ecc868b9, < 175db196e45d6f0e6047eccd09c8ba55465eb131. 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 critical component of the Linux operating system that provides core functionalities and acts as a bridge between hardware and software. It manages system resources, facilitates communication between different software components, and ensures the security and stability of the system. The Transmission Control Protocol (TCP) and Internet Protocol (IP) Core (TIPC) is a communication protocol implemented in the Kernel that enables reliable and ordered message exchange between nodes in a cluster. TIPC is used in various scenarios, including high-performance computing and distributed systems.
Vulnerability Detail
The vulnerability identified in TIPC relates to inadequate size validations for received domain records. This vulnerability allows an attacker to send specially crafted domain records with excessive sizes, leading to buffer overflows or other memory-related issues. By exploiting this vulnerability, an attacker could potentially execute arbitrary code, escalate privileges, or cause denial-of-service conditions on a vulnerable system. The vulnerability was introduced in version v4.8 of the Linux Kernel and was fixed in version v4.9.301.
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 source code modifications to the affected version of the Kernel to implement stricter size validations for received domain records in TIPC. Here is an example of the code modification:
--- a/net/tipc/domain.c
+++ b/net/tipc/domain.c
@@ -123,7 +123,7 @@ static int tipc_nl_add_domain(struct sk_buff *skb, struct genl_info *info)
return -EINVAL;
/* Check if domain name is too long */
- if (strlen(name) > TIPC_MAX_DOMAIN_NAME)
+ if (strnlen(name, TIPC_MAX_DOMAIN_NAME) >= TIPC_MAX_DOMAIN_NAME)
return -EINVAL;
/* Check if domain already exists */
Conclusion
In conclusion, the vulnerability in TIPC that allows for inadequate size validations in received domain records can lead to severe security risks, including arbitrary code execution, privilege escalation, and denial-of-service conditions. It is crucial to update the Linux Kernel to version v4.9.301 or later to mitigate this vulnerability. Alternatively, users can apply the provided workaround by modifying the source code. For further support and assistance in vulnerability remediation, please contact DevNack.com.
See every vulnerability recorded for Kernel →
FAQ
This vulnerability allows an attacker to send specially crafted domain records with excessive sizes, leading to buffer overflows or other memory-related issues. By exploiting this vulnerability, an attacker could potentially execute arbitrary code, escalate privileges, or cause denial-of-service conditions on a vulnerable system.
You can use the Vulert Playground (https://vulert.com/scanner) to check if your system is affected by this vulnerability. Vulert monitors and alerts in real-time for open-source vulnerabilities without requiring access to the code or installation. Simply upload your manifest file (e.g., package-lock.json) to the Vulert Playground and it will analyze the dependencies and identify any vulnerabilities, including this one.
Yes, this vulnerability has been fixed in version v4.9.301 of the Linux Kernel. It is recommended to update your Kernel to this version or later to mitigate the risk.
Yes, a workaround is to apply source code modifications to the affected version of the Kernel to implement stricter size validations for received domain records in TIPC. The provided code snippet in the 'workaround' section demonstrates how to make the necessary modifications.
You can obtain the updated Linux Kernel from the official Linux Kernel repository: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
Related vulnerabilities
Recent vulnerabilities recorded for Kernel.