CVE intelligence and bounded remediation

CVE-2021-47118 — Linux Linux Kernel security vulnerability

High CVSS 7.8

In the Linux kernel, the following vulnerability has been resolved: pid: take a reference when initializing `cad_pid` During boot, kernel_init_freeable() initializes `cad_pid` to the init task's struct pid. Later on, we may change `cad_pid` via a sysctl, and when this happens proc_do_cad_pid() will increment the refcount on the new pid via get_pid(), and will decrement the refcount on the old pid via put_pid(). As we never called get_pid() when we initialized `cad_pid`, we decrement a reference we never incremented, can therefore free the init task's struct pid early. As there can be dangling references to the struct pid, we can later encounter a use-after-free (e.g. when delivering signals). This was spotted when fuzzing v5.13-rc3 with Syzkaller, but seems to have been around since the conversion of `cad_pid` to struct pid in commit 9ec52099e4b8 ("[PATCH] replace cad_pid by a struct pid") from the pre-KASAN stone age of v2.6.19. Fix this by getting a reference to the init task's struct pid when we assign it to `cad_pid`. Full KASAN splat below. ================================================================== BUG: KASAN: use-after-free in ns_of_pid include/linux/pid.h:153 [inlin…

Severity
High
CVSS
7.8 (3.1)
Published
2024-03-15
CISA KEV
Not currently listed
Ecosystem
linux/kernel
Weaknesses
CWE-416

Affected products

  • linux / linux_kernel
  • linux / linux_kernel / 5.13

Showing 2 representative product identities from 11 source matches. Confirm exact affected versions with the linked vendor and NVD evidence.

Matched remediation archetype

Use-after-free, double free, and expired resource use

This catalog composition supplies bounded fallback guidance. Explicitly reviewed curated workflows load with the complete record below.

Check exposure

  • Trace ownership, references, callbacks, asynchronous tasks, and teardown paths around the affected object or resource.
  • Identify reachable inputs and timing or state transitions that can release the object while references remain.
  • Confirm affected builds, allocators, feature flags, architectures, and process privileges.

Remediate safely

  • Apply the maintained ownership or lifetime fix and rebuild all artifacts containing the affected native code.
  • Use explicit ownership, safe reference management, cancellation and join semantics, and idempotent teardown.
  • Add deterministic lifetime tests plus isolated sanitizer and concurrency coverage for shutdown and error paths.

Authoritative sources

Complete CVE record and remediation plan

The detailed catalog view below loads this exact record, its source evidence, and the full seven-phase agentic change plan.