CVE-2020-36789 json
can: dev: can_get_echo_skb(): prevent call to kfree_skb() in hard IRQ context
published last yr. modified 4mo ago also EUVD-2020-24230
- cvss
- 5.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 8%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
can: dev: can_get_echo_skb(): prevent call to kfree_skb() in hard IRQ context
If a driver calls can_get_echo_skb() during a hardware IRQ (which is often, but not always, the case), the 'WARN_ON(in_irq)' in net/core/skbuff.c#skb_release_head_state() might be triggered, under network congestion circumstances, together with the potential risk of a NULL pointer dereference.
The root cause of this issue is the call to kfree_skb() instead of dev_kfree_skb_irq() in net/core/dev.c#enqueue_to_backlog().
This patch prevents the skb to be freed within the call to netif_rx() by incrementing its reference count with skb_get(). The skb is finally freed by one of the in-irq-context safe functions: dev_consume_skb_any() or dev_kfree_skb_any(). The "any" version is used because some drivers might call can_get_echo_skb() in a normal context.
The reason for this issue to occur is that initially, in the core network stack, loopback skb were not supposed to be received in hardware IRQ context. The CAN stack is an exeption.
This bug was previously reported back in 2017 in [1] but the proposed patch never got accepted.
While [1] directly modifies net/core/dev.c, we try to propose here a smoother modification local to CAN network stack (the assumption behind is that only CAN devices are affected by this issue).
[1] http://lore.kernel.org/r/57a3ffb6-3309-3ad5-5a34-e93c3fe3614d@cetitec.com
Patch / fix
- Linux Linux 4.4.244, 4.9.244, 4.14.207, 4.19.158, 5.4.78, 5.9.9, 5.10
- linux Debian 14, Debian 13, Debian 12 5.9.9-1
debian advisories DEBIAN-CVE-2020-36789
- linux Ubuntu 16.04 LTS 4.4.0-198.230
- linux Ubuntu 18.04 LTS 4.15.0-135.139
- linux Ubuntu 20.04 LTS 5.4.0-59.65
- linux-aws Ubuntu 16.04 LTS 4.4.0-1119.133
- linux-aws Ubuntu 18.04 LTS 4.15.0-1093.99
- linux-aws Ubuntu 20.04 LTS 5.4.0-1034.35
- linux-gcp Ubuntu 16.04 LTS 4.15.0-1092.105~16.04.1
- linux-gcp Ubuntu 20.04 LTS 5.4.0-1033.35
ubuntu advisories UBUNTU-CVE-2020-36789
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel-64kb SLES 15 SP3-LTSS, SLE High Performance Computing 15 SP3-LTSS, Enterprise Storage 7.1 5.3.18-150300.59.204.1
- kernel-syms SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE High Performance Computing 15 SP3-LTSS +1 more 5.3.18-150300.59.204.1
- kernel-source SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE High Performance Computing 15 SP3-LTSS +1 more 5.3.18-150300.59.204.1
- kernel-default SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE Micro 5.2 +5 more 5.3.18-150300.59.204.1
- kernel-preempt SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE High Performance Computing 15 SP3-LTSS +1 more 5.3.18-150300.59.204.1
- kernel-obs-build SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE High Performance Computing 15 SP3-LTSS +1 more 5.3.18-150300.59.204.1
- kernel-default-base SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE Micro 5.2 +3 more 5.3.18-150300.59.204.1.150300.18.122.1
- kernel-rt SLE Micro 5.2, SLE Micro 5.1 5.3.18-150300.208.1
suse advisories SUSE-SU-2025:01633-1SUSE-SU-2025:01600-1SUSE-SU-2025:1574-1
- git.kernel.org/stable/c/248b71ce92d4f3a574b2537f9838f48e892618f4 commit
- git.kernel.org/stable/c/451187b20431924d13fcfecc500d7cd2d9951bac commit
- git.kernel.org/stable/c/3a922a85701939624484e7f2fd07d32beed00d25 commit
- git.kernel.org/stable/c/7e4cf2ec0ca236c3e5f904239cec6efe1f3baf22 commit
- git.kernel.org/stable/c/ab46748bf98864f9c3f5559060bf8caf9df2b41e commit
- git.kernel.org/stable/c/87530b557affe01c764de32dbeb58cdf47234574 commit
- git.kernel.org/stable/c/2283f79b22684d2812e5c76fc2280aae00390365 commit
Is CVE-2020-36789 in your stack? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2020-36789 updated cvss 5.5
kernel: can: dev: can_get_echo_skb(): prevent call to kfree_skb() in hard IRQ context
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 moreaffected: no fix planned “Out of support scope”
-
Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernelnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- last yr.
Exploit prediction
0.19% chance of exploitation in the next 30 days, higher than 8% of all scored CVEs (FIRST EPSS, 2026-11-09).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CISA ADP | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| NVD | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| CNA | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
Affected products
- Linux Linux
Classification
- Weakness
-
- CWE-476 NULL Pointer Dereference
- Technology feeds
References
-
git.kernel.org
/stable/c/248b71ce92d4f3a574b2537f9838f48e892618f4
patch
-
git.kernel.org
/stable/c/451187b20431924d13fcfecc500d7cd2d9951bac
patch
-
git.kernel.org
/stable/c/3a922a85701939624484e7f2fd07d32beed00d25
patch
-
git.kernel.org
/stable/c/7e4cf2ec0ca236c3e5f904239cec6efe1f3baf22
patch
-
git.kernel.org
/stable/c/ab46748bf98864f9c3f5559060bf8caf9df2b41e
patch
-
git.kernel.org
/stable/c/87530b557affe01c764de32dbeb58cdf47234574
patch
-
git.kernel.org
/stable/c/2283f79b22684d2812e5c76fc2280aae00390365
patch
Sources
- CVE List CVE-2020-36789
- NVD CVE-2020-36789
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.