{"id":"CVE-2021-47668","state":"PUBLISHED","title":"can: dev: can_restart: fix use after free bug","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ncan: dev: can_restart: fix use after free bug\n\nAfter calling netif_rx_ni(skb), dereferencing skb is unsafe.\nEspecially, the can_frame cf which aliases skb memory is accessed\nafter the netif_rx_ni() in:\n      stats->rx_bytes += cf->len;\n\nReordering the lines solves the issue.","publishedAt":"2025-04-17T18:01:29.315Z","updatedAt":"2026-08-05T08:48:48.169Z","severity":{"score":8.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"39549eef3587f1c1e8c65c88a2400d10fd30ea17","status":"affected","lessThan":"260925a0b7d2da5449f8ecfd02c1405e0c8a45b8","versionType":"git"},{"version":"39549eef3587f1c1e8c65c88a2400d10fd30ea17","status":"affected","lessThan":"bbc6847b9b8978b520f62fbc7c68c54ef0f8d282","versionType":"git"},{"version":"39549eef3587f1c1e8c65c88a2400d10fd30ea17","status":"affected","lessThan":"92668d28c7e6a7a2ba07df287669ffcdf650c421","versionType":"git"},{"version":"39549eef3587f1c1e8c65c88a2400d10fd30ea17","status":"affected","lessThan":"08ab951787098ae0b6c0364aeea7a8138226f234","versionType":"git"},{"version":"39549eef3587f1c1e8c65c88a2400d10fd30ea17","status":"affected","lessThan":"ac48ef15826e83f4206c47add61072e8fc76d328","versionType":"git"},{"version":"39549eef3587f1c1e8c65c88a2400d10fd30ea17","status":"affected","lessThan":"593c072b7b3c4d7044416eb039d9ad706bedd67a","versionType":"git"},{"version":"39549eef3587f1c1e8c65c88a2400d10fd30ea17","status":"affected","lessThan":"03f16c5075b22c8902d2af739969e878b0879c94","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/can/dev.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.31","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.31","versionType":"semver"},{"version":"4.4.254","status":"unaffected","lessThanOrEqual":"4.4.*","versionType":"semver"},{"version":"4.9.254","status":"unaffected","lessThanOrEqual":"4.9.*","versionType":"semver"},{"version":"4.14.218","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.171","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.93","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.11","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.11","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/can/dev.c"]}],"references":["https://git.kernel.org/stable/c/260925a0b7d2da5449f8ecfd02c1405e0c8a45b8","https://git.kernel.org/stable/c/bbc6847b9b8978b520f62fbc7c68c54ef0f8d282","https://git.kernel.org/stable/c/92668d28c7e6a7a2ba07df287669ffcdf650c421","https://git.kernel.org/stable/c/08ab951787098ae0b6c0364aeea7a8138226f234","https://git.kernel.org/stable/c/ac48ef15826e83f4206c47add61072e8fc76d328","https://git.kernel.org/stable/c/593c072b7b3c4d7044416eb039d9ad706bedd67a","https://git.kernel.org/stable/c/03f16c5075b22c8902d2af739969e878b0879c94"],"weaknesses":["CWE-416"],"ingestedAt":"2026-10-29T19:49:19.404Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2021/47xxx/CVE-2021-47668.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2021-47668","state":"PUBLISHED","datePublished":"2025-04-17T18:01:29.315Z","dateUpdated":"2026-08-05T08:48:48.169Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-04-16T07:16:05.752Z"},"containers":{"cna":{"title":"can: dev: can_restart: fix use after free bug","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ncan: dev: can_restart: fix use after free bug\n\nAfter calling netif_rx_ni(skb), dereferencing skb is unsafe.\nEspecially, the can_frame cf which aliases skb memory is accessed\nafter the netif_rx_ni() in:\n      stats->rx_bytes += cf->len;\n\nReordering the lines solves the issue."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"39549eef3587f1c1e8c65c88a2400d10fd30ea17","status":"affected","lessThan":"260925a0b7d2da5449f8ecfd02c1405e0c8a45b8","versionType":"git"},{"version":"39549eef3587f1c1e8c65c88a2400d10fd30ea17","status":"affected","lessThan":"bbc6847b9b8978b520f62fbc7c68c54ef0f8d282","versionType":"git"},{"version":"39549eef3587f1c1e8c65c88a2400d10fd30ea17","status":"affected","lessThan":"92668d28c7e6a7a2ba07df287669ffcdf650c421","versionType":"git"},{"version":"39549eef3587f1c1e8c65c88a2400d10fd30ea17","status":"affected","lessThan":"08ab951787098ae0b6c0364aeea7a8138226f234","versionType":"git"},{"version":"39549eef3587f1c1e8c65c88a2400d10fd30ea17","status":"affected","lessThan":"ac48ef15826e83f4206c47add61072e8fc76d328","versionType":"git"},{"version":"39549eef3587f1c1e8c65c88a2400d10fd30ea17","status":"affected","lessThan":"593c072b7b3c4d7044416eb039d9ad706bedd67a","versionType":"git"},{"version":"39549eef3587f1c1e8c65c88a2400d10fd30ea17","status":"affected","lessThan":"03f16c5075b22c8902d2af739969e878b0879c94","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/can/dev.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.31","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.31","versionType":"semver"},{"version":"4.4.254","status":"unaffected","lessThanOrEqual":"4.4.*","versionType":"semver"},{"version":"4.9.254","status":"unaffected","lessThanOrEqual":"4.9.*","versionType":"semver"},{"version":"4.14.218","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.171","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.93","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.11","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.11","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/can/dev.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/260925a0b7d2da5449f8ecfd02c1405e0c8a45b8"},{"url":"https://git.kernel.org/stable/c/bbc6847b9b8978b520f62fbc7c68c54ef0f8d282"},{"url":"https://git.kernel.org/stable/c/92668d28c7e6a7a2ba07df287669ffcdf650c421"},{"url":"https://git.kernel.org/stable/c/08ab951787098ae0b6c0364aeea7a8138226f234"},{"url":"https://git.kernel.org/stable/c/ac48ef15826e83f4206c47add61072e8fc76d328"},{"url":"https://git.kernel.org/stable/c/593c072b7b3c4d7044416eb039d9ad706bedd67a"},{"url":"https://git.kernel.org/stable/c/03f16c5075b22c8902d2af739969e878b0879c94"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":8.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:A - The vulnerable can_restart path runs after CAN bus-off recovery on real CAN interfaces; an attacker on the same CAN segment can induce bus-off (a known CAN bus-off attack), analogous to Bluetooth/Wi‑Fi adjacent reachability rather than internet Network or host-local only.\nAC:L - Bus-off can be reliably forced from the CAN bus, and with automatic recovery (restart-ms) configured—documented and common in automotive/industrial deployments—delayed work deterministically calls can_restart; netif_rx_ni runs softirq and can_receive always frees the skb before cf->len is read.\nPR:N - An adjacent CAN attacker needs no host account or capabilities; bus-off is triggered by on-bus error conditions and the kernel schedules can_restart when restart-ms is already enabled by the deployment.\nUI:N - No victim user action is required; bus-off and subsequent automatic restart occur from attacker-driven bus errors and kernel workqueue handling alone.\nS:U - This is a kernel-context use-after-free within the same host kernel authority; it does not cross VM, IOMMU, or other security boundaries.\nC:H - Use-after-free of the CAN error skb after netif_rx_ni frees it enables reading reallocated heap contents (cf aliases skb data), which per kernel UAF guidance is High confidentiality impact.\nI:H - Kernel UAF of an sk_buff object is treated as enabling heap reuse and control-flow/corruption primitives, so Integrity is High even though the immediate buggy access is a post-free read into stats.\nA:H - Dereferencing freed skb memory can oops/panic the kernel, and any use-after-free is scored High for availability."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T08:48:48.169Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.31","versionEndExcluding":"4.4.254"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.31","versionEndExcluding":"4.9.254"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.31","versionEndExcluding":"4.14.218"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.31","versionEndExcluding":"4.19.171"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.31","versionEndExcluding":"5.4.93"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.31","versionEndExcluding":"5.10.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.31","versionEndExcluding":"5.11"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":7.8,"attackVector":"LOCAL","baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","integrityImpact":"HIGH","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"LOW","confidentialityImpact":"HIGH"}},{"other":{"type":"ssvc","content":{"id":"CVE-2021-47668","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2025-04-17T18:17:56.944235Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-416","lang":"en","type":"CWE","description":"CWE-416 Use After Free"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2025-04-17T18:25:25.427Z"}}]}}}