cve/2019/CVE-2019-3701.md

23 lines
1.5 KiB
Markdown
Raw Normal View History

2024-05-26 14:27:05 +02:00
### [CVE-2019-3701](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-3701)
![](https://img.shields.io/static/v1?label=Product&message=n%2Fa&color=blue)
![](https://img.shields.io/static/v1?label=Version&message=n%2Fa&color=blue)
![](https://img.shields.io/static/v1?label=Vulnerability&message=n%2Fa&color=brighgreen)
### 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.
### POC
#### Reference
- https://bugzilla.suse.com/show_bug.cgi?id=1120386
- https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=0aaa81377c5a01f686bcdb8c7a6929a7bf330c68
- https://marc.info/?l=linux-netdev&m=154661373531512&w=2
2024-06-18 02:51:15 +02:00
- https://usn.ubuntu.com/3932-1/
2024-05-26 14:27:05 +02:00
- https://usn.ubuntu.com/4115-1/
- https://usn.ubuntu.com/4118-1/
#### Github
No PoCs found on GitHub currently.