KernelScan.io

HIGH Introduced in 2.6.38

softing FwParse OOB

CVE-2026-80706

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI7.8HIGH

01

In the Linux kernel, the following vulnerability has been resolved: can: softing: fw_parse(): validate firmware record spans fw_parse() reads a fixed record header, a firmware-provided payload, and a trailing checksum without knowing the end of the firmware blob. A truncated record can therefore make those reads exceed the blob. The same record also supplies addresses and lengths for writes into DPRAM. The generic loader uses wrap-prone mixed signed arithmetic for its bounds check, while the application loader does not bound the staging copy at all. Pass the firmware end to the parser and validate the full source record. Use a signed wide offset for generic DPRAM records and validate the application staging span against the mapped DPRAM before copying.

02

Engine v0.6.0

Risk summary

A malformed firmware blob for the Softing CAN card driver can cause out-of-bounds reads during parsing and out-of-bounds writes into DPRAM due to missing bounds checks and integer overflow in offset arithmetic. A local attacker who can supply or replace the firmware file can exploit this to corrupt kernel memory, potentially escalating privileges or crashing the system. The vulnerability requires the Softing CAN driver to be loaded and access to the firmware loading path.

Affecteddrivers/net/can/softing/softing_fw.c (can softing)

Vulnerability analysis

The Softing CAN card firmware parser reads record headers, payloads, and checksums from a firmware blob without validating that those reads stay within the blob's bounds, so a truncated or crafted record can cause out-of-bounds reads. The same records also supply addresses and lengths for copying data into DPRAM memory; the generic loader used mixed signed arithmetic that could wrap around and bypass the bounds check, while the application loader performed no bounds check at all before writing. The fix passes the firmware end pointer into the parser and validates the full record span before reading, uses a wide signed offset to prevent arithmetic wrap-around in the generic DPRAM copy, and validates the application staging span against the mapped DPRAM size before copying. The vulnerable code path is reached when loading firmware for a Softing CAN card, which requires the softing driver to be loaded and access to the firmware file, typically needing local privileges to trigger.

03

BranchIntroducedFixed inPatch commit
5.102.6.385.10.265f6d9a6a95124
6.12.6.386.1.183d0eac0ea7cf4
6.62.6.386.6.151ae588e5b9cc2
6.122.6.386.12.103ad331e26fd21
6.182.6.386.18.442ee477e541a6
7.12.6.387.1.8808ed899dcf8
5.152.6.385.15.21684c850b08fc0
mainline2.6.387.2856d6cb04e54
cip/4.192.6.384.19.325-cip136186a6c261b93
cip/4.19-rt2.6.384.19.325-cip136-rt50186a6c261b93
cip/4.42.6.384.4.302-cip1150555228d5ff8
cip/4.4-rt2.6.384.4.302-cip115-rt630555228d5ff8
cip/5.102.6.385.10.268-cip77f6d9a6a95124
cip/5.10-rt2.6.385.10.268-cip77-rt34f6d9a6a95124
cip/6.12.6.386.1.187-cip60d0eac0ea7cf4
cip/6.122.6.386.12.104-cip30ad331e26fd21