CVE-2019-3701 Memory corruption in n/a
A privileged user can trigger memory corruption in the Linux kernel CAN gateway, potentially causing a system crash or arbitrary code execution.
- Exploited in the wild
- Not known
- Login needed
- An administrator
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2019-3701?
CVE-2019-3701 is a medium-severity memory corruption vulnerability in Canonical Ubuntu Linux, published on 3 Jan 2019. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
An issue was discovered in can_can_gw_rcv in net/can/gw.c in the Linux kernel through 4.19.13. The CAN frame modification rules allow bitwise logical operations that can be also applied to the can_dlc field. The privileged user "root" with CAP_NET_ADMIN can create a CAN frame modification rule that makes the data length code a higher value than the available CAN frame data size. In combination with a configured checksum calculation where the result is stored relatively to the end of the data (e.g. cgw_csum_xor_rel) the tail of the skb (e.g. frag_list pointer in skb_shared_info) can be rewritten which finally can cause a system crash. Because of a missing check, the CAN drivers may write arbitrary content beyond the data registers in the CAN controller's I/O memory when processing can-gw manipulated outgoing frames.
Weakness: CWE-787
Which versions are affected by CVE-2019-3701?
It affects 3 products.
Products include Canonical Ubuntu Linux, Debian Debian Linux, Linux kernel.
How do I fix CVE-2019-3701?
Apply the vendor's patch.
Upgrade to the fixed version. Memory-safe languages, compiler hardening and fuzzing prevent most new cases. More about Memory corruption.
Is CVE-2019-3701 being exploited?
There is no known exploitation of CVE-2019-3701 in the wild and no public exploit code.
Other vulnerabilities in Canonical Ubuntu Linux
Sources
Also known as DEBIAN-CVE-2019-3701, GHSA-28gp-589x-6r7f, UBUNTU-CVE-2019-3701.