CVE-2022-48830: can: isotp: fix potential CAN frame reception race in isotp_rcv()
In the Linux kernel, the following vulnerability has been resolved:
can: isotp: fix potential CAN frame reception race in isotp_rcv()
When receiving a CAN frame the current code logic does not consider
concurrently receiving processes which do not show up in real world
usage.
Ziyang Xuan writes:
The following syz problem is one of the scenarios. so->rx.len is
changed by isotp_rcv_ff() during isotp_rcv_cf(), so->rx.len equals
0 before alloc_skb() and equals 4096 after alloc_skb(). That will
trigger skb_over_panic() in skb_put().
=======================================================
CPU: 1 PID: 19 Comm: ksoftirqd/1 Not tainted 5.16.0-rc8-syzkaller #0
RIP: 0010:skb_panic+0x16c/0x16e net/core/skbuff.c:113
Call Trace:
<TASK>
skb_over_panic net/core/skbuff.c:118 [inline]
skb_put.cold+0x24/0x24 net/core/skbuff.c:1990
isotp_rcv_cf net/can/isotp.c:570 [inline]
isotp_rcv+0xa38/0x1e30 net/can/isotp.c:668
deliver net/can/af_can.c:574 [inline]
can_rcv_filter+0x445/0x8d0 net/can/af_can.c:635
can_receive+0x31d/0x580 net/can/af_can.c:665
can_rcv+0x120/0x1c0 net/can/af_can.c:696
__netif_receive_skb_one_core+0x114/0x180 net/core/dev.c:5465
__netif_receive_skb+0x24/0x1b0 net/core/dev.c:5579
Therefore we make sure the state changes and data structures stay
consistent at CAN frame reception time by adding a spin_lock in
isotp_rcv(). This fixes the issue reported by syzkaller but does not
affect real world operation.
Security readout for executives and security teams
Plain-English summary
This Linux kernel issue is a race condition in CAN ISO-TP frame reception. Under a specific concurrent receive scenario, kernel receive-state data can become inconsistent and trigger a kernel networking buffer panic. The public source describes this as found by syzkaller and not seen in normal real-world operation.
Executive priority
Treat this as a targeted reliability and availability risk, mainly for CAN-enabled Linux environments. It does not justify emergency broad response from the provided evidence, but affected operational technology, automotive, or embedded Linux systems should be patched through normal kernel maintenance.
Technical view
The flaw is in net/can/isotp.c isotp_rcv(). During concurrent CAN ISO-TP reception, isotp_rcv_ff() can change so->rx.len while isotp_rcv_cf() continues processing, causing an skb_put() overrun panic. The upstream fix adds locking around receive-time state changes to keep ISO-TP receive structures consistent.
Likely exposure
Exposure is limited to Linux systems using the CAN ISO-TP kernel path. Organizations without CAN interfaces, SocketCAN ISO-TP use, embedded automotive workloads, or similar CAN deployments are less likely to be exposed. Exact affected kernel builds require vendor or distribution mapping.
Exploitation context
The source bundle shows no KEV listing, no CVSS score, and no cited active exploitation. The issue was demonstrated by a syzkaller scenario. The kernel text says the race does not show up in real-world usage, so practical exploitability is not established here.
Researcher notes
Evidence identifies a receive-side race and a locking fix, but does not provide CVSS, CWE, exploit prerequisites, or distribution-specific affected ranges. Avoid assuming remote exploitability. Validate through kernel configuration, module usage, and vendor backport status rather than upstream version strings alone.
Mitigation direction
Check whether deployed kernels include the referenced stable fixes.
Prioritize systems using CAN, SocketCAN, or ISO-TP functionality.
Apply vendor or distribution kernel updates when available.
If no update is available, monitor kernel guidance for backports.
Reduce unnecessary CAN ISO-TP exposure where operationally feasible.
Validation and detection
Inventory Linux kernel versions on CAN-capable systems.
Confirm whether CAN ISO-TP support is enabled or used.
Map installed kernels against vendor advisories and stable commit references.
Review crash logs for skb_over_panic in CAN ISO-TP paths.
Track whether distribution kernels backported the locking fix.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2022-48830 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.