CVE-2021-4454: can: j1939: fix errant WARN_ON_ONCE in j1939_session_deactivate

Published Mar 27, 2025
·
Updated

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

can: j1939: fix errant WARNONONCE in j1939sessiondeactivate

The conclusion "j1939sessiondeactivate() should be called with a session ref-count of at least 2" is incorrect. In some concurrent scenarios, j1939sessiondeactivate can be called with the session ref-count less than 2. But there is not any problem because it will check the session active state before session putting in j1939sessiondeactivatelocked().

Here is the concurrent scenario of the problem reported by syzbot and my reproduction log.

cpu0 cpu1 j1939xtprxeoma j1939xtprxabortone j1939sessiongetbyaddr [kref == 2] j1939sessiongetbyaddr [kref == 3] j1939sessiondeactivate [kref == 2] j1939sessionput [kref == 1] j1939sessioncompleted j1939sessiondeactivate WARNONONCE(kref < 2)

===================================================== WARNING: CPU: 1 PID: 21 at net/can/j1939/transport.c:1088 j1939sessiondeactivate+0x5f/0x70 CPU: 1 PID: 21 Comm: ksoftirqd/1 Not tainted 5.14.0-rc7+ #32 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1 04/01/2014 RIP: 0010:j1939sessiondeactivate+0x5f/0x70 Call Trace: j1939sessiondeactivateactivatenext+0x11/0x28 j1939xtprxeoma+0x12a/0x180 j1939tprecv+0x4a2/0x510 j1939canrecv+0x226/0x380 canrcvfilter+0xf8/0x220 canreceive+0x102/0x220 ? processbacklog+0xf0/0x2c0 canrcv+0x53/0xf0 netifreceiveskbonecore+0x67/0x90 ? processbacklog+0x97/0x2c0 netifreceiveskb+0x22/0x80

Affected Software

17 affected components
The Linux Foundation Linux Kernel
Linux Linux kernel>=5.4.138<5.4.232
Linux Linux kernel>=5.10.56<5.10.168
Linux Linux kernel>=5.13.8<5.14
Linux Linux kernel>=5.14.1<5.15.93
Linux Linux kernel>=5.16<6.1.11
Linux Linux kernel=5.14
Linux Linux kernel=5.14-rc4
Linux Linux kernel=5.14-rc5
Linux Linux kernel=5.14-rc6
Linux Linux kernel=5.14-rc7
Linux Linux kernel=6.2-rc1
Linux Linux kernel=6.2-rc2
Linux Linux kernel=6.2-rc3
Linux Linux kernel=6.2-rc4
Linux Linux kernel=6.2-rc5
Linux Linux kernel=6.2-rc6

Event History

Mar 27, 2025
CVE Published
via MITRE·04:37 PM
Data Sourced
via MITRE·04:37 PM
DescriptionSeverity
Data Sourced
via NVD·05:15 PM
RemedyDescriptionSeverityAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2021-4454?

CVE-2021-4454 is categorized with a severity level that may vary based on the specific Linux kernel version in use.

2

How do I fix CVE-2021-4454?

To fix CVE-2021-4454, you should upgrade to a patched version of the Linux kernel that addresses this vulnerability.

3

Which versions of the Linux kernel are affected by CVE-2021-4454?

CVE-2021-4454 affects all versions of the Linux kernel up to and including 5.14.0-rc7.

4

What is the impact of CVE-2021-4454?

The impact of CVE-2021-4454 may lead to erroneous warnings and potential instability in the Linux kernel related to the j1939 protocol.

5

Is CVE-2021-4454 exploitable?

CVE-2021-4454 may be exploitable under certain concurrent scenarios, but the details of potential exploitability depend on the specific environment.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203