CVE Database›Document archive›CVE-2025-38665

CVE-2025-38665

kernel: can: netlink: can_changelink(): fix NULL pointer deref of struct can_priv::do_set_mode

Loading…

Severity

Moderate

Red Hat Product Security

5.5

CVSS 3.1

Review impact separately from score.

Published · August 22, 2025

Updated · June 30, 2026

Description

In the Linux kernel, the following vulnerability has been resolved:

can: netlink: can_changelink(): fix NULL pointer deref of struct can_priv::do_set_mode

Andrei Lalaev reported a NULL pointer deref when a CAN device is restarted from Bus Off and the driver does not implement the struct can_priv::do_set_mode callback.

There are 2 code path that call struct can_priv::do_set_mode:

  • directly by a manual restart from the user space, via can_changelink()
  • delayed automatic restart after bus off (deactivated by default)

To prevent the NULL pointer deference, refuse a manual restart or configure the automatic restart delay in can_changelink() and report the error via extack to user space.

As an additional safety measure let can_restart() return an error if can_priv::do_set_mode is not set instead of dereferencing it unchecked.

Statement

The issue in the CAN networking subsystem occurs because can_changelink() and can_restart() assumed that the driver implemented the do_set_mode callback. If the driver did not provide this function, a manual or automatic bus-off restart could dereference a NULL pointer and cause a kernel crash. This bug in netlink handling allowed can_changelink() to dereference a NULL can_priv::do_set_mode when requesting a manual restart or configuring auto-restart after bus-off. A local NET_ADMIN user could trigger a kernel crash (denial of service) on devices whose drivers don’t implement the callback.

CVSS score applicability

The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.

Mitigation

No mitigation is specified in collected source.

CVSS / CWE

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

CWE-476 · NULL Pointer Dereference