In the Linux kernel, the following vulnerability has been resolved:
can: j1939: j1939tptxdatnew(): fix out-of-bounds memory access
In the j1939tptxdatnew() function, an out-of-bounds memory access could occur during the memcpy() operation if the size of skb->cb is larger than the size of struct j1939skbuffcb. This is because the memcpy() operation uses the size of skb->cb, leading to a read beyond the struct j1939skbuffcb.
Updated the memcpy() operation to use the size of struct j1939skbuffcb instead of the size of skb->cb. This ensures that the memcpy() operation only reads the memory within the bounds of struct j1939skbuffcb, preventing out-of-bounds memory access.
Additionally, add a BUILDBUGON() to check that the size of skb->cb is greater than or equal to the size of struct j1939skbuffcb. This ensures that the skb->cb buffer is large enough to hold the j1939skbuffcb structure.
[mkl: rephrase commit message]
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/54xxx/CVE-2023-54039.json",
"cna_assigner": "Linux"
}