Executive brief
A vulnerability in the Linux kernel's networking component could allow a local user to crash the system or potentially execute unauthorized commands. The issue exists in the 'taprio' scheduler, which manages network traffic timing. By sending specifically crafted configuration requests, an attacker can bypass security checks and inject arbitrary data into the kernel's memory.
Technical details
A vulnerability exists in net/sched/sch_taprio.c within the Linux kernel due to insufficient validation of the TCA_TAPRIO_ATTR_PRIOMAP attribute. In taprio_parse_mqprio_opt(), the code incorrectly returns early if dev->num_tc is already set (from a previous valid call), skipping validation for subsequent configuration changes. A local attacker with low privileges can exploit this by first making a valid call to set num_tc and then making a second call with malicious mqprio attributes. This allows the injection of arbitrary data into the kernel, potentially leading to memory corruption or privilege escalation. Patches have been released for various stable kernel branches including 5.4.y, 5.10.y, 5.15.y, 6.1.y, 6.6.y, and 6.9.y.
Affected products
- Linux Linux Kernel 5.2 to 5.4.279, 5.5 to 5.10.221, 5.11 to 5.15.162, 5.16 to 6.1.95, 6.2 to 6.6.35, 6.7 to 6.9.6
Timeline
- 2024-06-04: disclosed: Vulnerability reported by Noam Rathaus
- 2024-06-18: advisory: CVE published
- 2024-06-21: patched: Fixes committed to stable kernel trees
References
- https://git.kernel.org/stable/c/0bf6cc96612bd396048f57d63f1ad454a846e39c
- https://git.kernel.org/stable/c/6db4af09987cc5d5f0136bd46148b0e0460dae5b
- https://git.kernel.org/stable/c/724050ae4b76e4fae05a923cb54101d792cf4404
- https://git.kernel.org/stable/c/c37a27a35eadb59286c9092c49c241270c802ae2
- https://git.kernel.org/stable/c/c6041e7124464ce7e896ee3f912897ce88a0c4ec
- https://git.kernel.org/stable/c/d3dde4c217f0c31ab0621912e682b57e677dd923
- https://git.kernel.org/stable/c/f921a58ae20852d188f70842431ce6519c4fdc36