UBUNTU-CVE-2019-3701
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.
02 / AFFECTED SOFTWARE
Affected packages
58 explicit affected versions
24 explicit affected versions
191 explicit affected versions
29 explicit affected versions
11 explicit affected versions
1 explicit affected versions
34 explicit affected versions
1 explicit affected versions
1 explicit affected versions
12 explicit affected versions
1 explicit affected versions
26 explicit affected versions
11 explicit affected versions
10 explicit affected versions
28 explicit affected versions
1 explicit affected versions
7 explicit affected versions
23 explicit affected versions
66 explicit affected versions
11 explicit affected versions
60 explicit affected versions
30 explicit affected versions
26 explicit affected versions
35 explicit affected versions
88 explicit affected versions
51 explicit affected versions
42 explicit affected versions
1 explicit affected versions
1 explicit affected versions
47 explicit affected versions
12 explicit affected versions
30 explicit affected versions
26 explicit affected versions
27 explicit affected versions
55 explicit affected versions
3 explicit affected versions
21 explicit affected versions
11 explicit affected versions
1 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
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.
05 / REFERENCES
Further evidence
- https://marc.info/?l=linux-can&m=154659326224990&w=2
- https://marc.info/?l=linux-netdev&m=154659326324991&w=2
- https://ubuntu.com/security/CVE-2019-3701
- https://ubuntu.com/security/notices/USN-3932-1
- https://ubuntu.com/security/notices/USN-3932-2
- https://ubuntu.com/security/notices/USN-4115-1
- https://ubuntu.com/security/notices/USN-4118-1
- https://www.cve.org/CVERecord?id=CVE-2019-3701