CVE-2026-31570: can: gw: fix OOB heap access in cgw_csum_crc8_rel()
In the Linux kernel, the following vulnerability has been resolved:
can: gw: fix OOB heap access in cgw_csum_crc8_rel()
cgw_csum_crc8_rel() correctly computes bounds-safe indices via calc_idx():
int from = calc_idx(crc8->from_idx, cf->len);
int to = calc_idx(crc8->to_idx, cf->len);
int res = calc_idx(crc8->result_idx, cf->len);
if (from < 0 || to < 0 || res < 0)
return;
However, the loop and the result write then use the raw s8 fields directly
instead of the computed variables:
for (i = crc8->from_idx; ...) /* BUG: raw negative index */
cf->data[crc8->result_idx] = ...; /* BUG: raw negative index */
With from_idx = to_idx = result_idx = -64 on a 64-byte CAN FD frame,
calc_idx(-64, 64) = 0 so the guard passes, but the loop iterates with
i = -64, reading cf->data[-64], and the write goes to cf->data[-64].
This write might end up to 56 (7.0-rc) or 40 (<= 6.19) bytes before the
start of the canfd_frame on the heap.
The companion function cgw_csum_xor_rel() uses `from`/`to`/`res`
correctly throughout; fix cgw_csum_crc8_rel() to match.
Confirmed with KASAN on linux-7.0-rc2:
BUG: KASAN: slab-out-of-bounds in cgw_csum_crc8_rel+0x515/0x5b0
Read of size 1 at addr ffff8880076619c8 by task poc_cgw_oob/62
To configure the can-gw crc8 checksums CAP_NET_ADMIN is needed.
Security readout for executives and security teams
Plain-English summary
CVE-2026-31570 is a Linux CAN gateway memory-safety flaw. Special CRC8 checksum indexing can access heap memory before a CAN FD frame, potentially corrupting data or crashing affected systems. It matters most in automotive, industrial, embedded, or test environments using Linux CAN gateway features. Configuration requires CAP_NET_ADMIN, materially narrowing exposure.
Executive priority
Prioritize fleets using Linux CAN gateway features or delegating CAP_NET_ADMIN to containers or services; patch promptly after compatibility testing. Systems without CAN gateway use and relevant administrative capability appear less exposed, but inventory and version verification should precede deprioritization.
Technical view
In cgw_csum_crc8_rel(), validated relative indices are calculated, but raw signed indices are later used for iteration and the result write. Negative values can cause out-of-bounds heap reads and writes. KASAN confirmed a slab out-of-bounds access on Linux 7.0-rc2. Stable commits change the function to use the bounds-checked indices.
Likely exposure
Exposure is likely limited to Linux systems where CAN gateway CRC8 checksum rules can be configured and exercised. CAP_NET_ADMIN is required to configure these rules, so ordinary remote network access alone is not shown sufficient. The bundle's version data is ambiguous; assess the exact running kernel against vendor advisories and applicable stable commits.
Exploitation context
The sources demonstrate the memory error under KASAN but provide no evidence of real-world exploitation, reliable privilege escalation, or code execution. KEV status is false. Compromise potential remains unproven, although an out-of-bounds kernel heap write could affect confidentiality, integrity, or availability.
Researcher notes
The demonstrated primitive is an out-of-bounds read and write before canfd_frame storage, with offset varying by kernel generation. The sources do not establish attacker-controlled overwrite value, exploit reliability, or resulting execution. Compare distribution backports with the cited upstream stable commits; do not infer safety solely from a version string.
Mitigation direction
Inventory Linux systems using CAN gateway checksum rules, especially CAN FD deployments.
Update through vendor-supported kernels containing the applicable stable fix commit.
Until patched, restrict CAP_NET_ADMIN and CAN gateway configuration to trusted administrators.
Review vendor advisories for exact fixed package versions and reboot requirements.
Validation and detection
Confirm the running kernel build against vendor advisories and the cited stable commits.
Determine whether CAN gateway CRC8 checksum configuration is enabled or operationally required.
Audit which users, services, and containers can obtain CAP_NET_ADMIN.
After updating, confirm the fixed kernel is running and repeat approved regression testing.
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-2026-31570 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.
1CVSS vectors
3Timeline events
0ADP providers
9Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.