LiveActive security incident?Get immediate response
CVE Record

CVE-2021-47435: dm: fix mempool NULL pointer race when completing IO

In the Linux kernel, the following vulnerability has been resolved: dm: fix mempool NULL pointer race when completing IO dm_io_dec_pending() calls end_io_acct() first and will then dec md in-flight pending count. But if a task is swapping DM table at same time this can result in a crash due to mempool->elements being NULL: task1 task2 do_resume ->do_suspend ->dm_wait_for_completion bio_endio ->clone_endio ->dm_io_dec_pending ->end_io_acct ->wakeup task1 ->dm_swap_table ->__bind ->__bind_mempools ->bioset_exit ->mempool_exit ->free_io [ 67.330330] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 ...... [ 67.330494] pstate: 80400085 (Nzcv daIf +PAN -UAO) [ 67.330510] pc : mempool_free+0x70/0xa0 [ 67.330515] lr : mempool_free+0x4c/0xa0 [ 67.330520] sp : ffffff8008013b20 [ 67.330524] x29: ffffff8008013b20 x28: 0000000000000004 [ 67.330530] x27: ffffffa8c2ff40a0 x26: 00000000ffff1cc8 [ 67.330535] x25: 0000000000000000 x24: ffffffdada34c800 [ 67.330541] x23: 0000000000000000 x22: ffffffdada34c800 [ 67.330547] x21: 00000000ffff1cc8 x20: ffffffd9a1304d80 [ 67.330552] x19: ffffffdada34c970 x18: 000000b312625d9c [ 67.330558] x17: 00000000002dcfbf x16: 00000000000006dd [ 67.330563] x15: 000000000093b41e x14: 0000000000000010 [ 67.330569] x13: 0000000000007f7a x12: 0000000034155555 [ 67.330574] x11: 0000000000000001 x10: 0000000000000001 [ 67.330579] x9 : 0000000000000000 x8 : 0000000000000000 [ 67.330585] x7 : 0000000000000000 x6 : ffffff80148b5c1a [ 67.330590] x5 : ffffff8008013ae0 x4 : 0000000000000001 [ 67.330596] x3 : ffffff80080139c8 x2 : ffffff801083bab8 [ 67.330601] x1 : 0000000000000000 x0 : ffffffdada34c970 [ 67.330609] Call trace: [ 67.330616] mempool_free+0x70/0xa0 [ 67.330627] bio_put+0xf8/0x110 [ 67.330638] dec_pending+0x13c/0x230 [ 67.330644] clone_endio+0x90/0x180 [ 67.330649] bio_endio+0x198/0x1b8 [ 67.330655] dec_pending+0x190/0x230 [ 67.330660] clone_endio+0x90/0x180 [ 67.330665] bio_endio+0x198/0x1b8 [ 67.330673] blk_update_request+0x214/0x428 [ 67.330683] scsi_end_request+0x2c/0x300 [ 67.330688] scsi_io_completion+0xa0/0x710 [ 67.330695] scsi_finish_command+0xd8/0x110 [ 67.330700] scsi_softirq_done+0x114/0x148 [ 67.330708] blk_done_softirq+0x74/0xd0 [ 67.330716] __do_softirq+0x18c/0x374 [ 67.330724] irq_exit+0xb4/0xb8 [ 67.330732] __handle_domain_irq+0x84/0xc0 [ 67.330737] gic_handle_irq+0x148/0x1b0 [ 67.330744] el1_irq+0xe8/0x190 [ 67.330753] lpm_cpuidle_enter+0x4f8/0x538 [ 67.330759] cpuidle_enter_state+0x1fc/0x398 [ 67.330764] cpuidle_enter+0x18/0x20 [ 67.330772] do_idle+0x1b4/0x290 [ 67.330778] cpu_startup_entry+0x20/0x28 [ 67.330786] secondary_start_kernel+0x160/0x170 Fix this by: 1) Establishing pointers to 'struct dm_io' members in dm_io_dec_pending() so that they may be passed into end_io_acct() _after_ free_io() is called. 2) Moving end_io_acct() after free_io().

UnknownCVSS not scoredNot KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

CVE-2021-47435 is a Linux kernel Device Mapper race condition that can crash the kernel during I/O completion while a Device Mapper table is being swapped. The public record does not provide CVSS scoring or active exploitation evidence, so urgency depends on exposure to affected Linux kernels and operational reliance on Device Mapper storage.

Executive priority

Treat as a maintenance-priority availability risk for Linux storage infrastructure. Escalate if affected systems host critical workloads, use Device Mapper heavily, or have a history of kernel crash sensitivity. There is no cited active exploitation signal.

Technical view

The flaw is in dm_io_dec_pending() ordering. end_io_acct() can wake a suspend/resume path before pending I/O cleanup finishes, allowing a concurrent table swap to free mempool state. A later free_io() path can dereference NULL mempool->elements, causing a kernel crash. Fixes reorder cleanup and preserve needed struct dm_io member pointers.

Likely exposure

Exposure is likely on Linux systems running affected kernel builds with Device Mapper enabled, especially storage stacks using DM tables. The source lists Linux kernel impact and stable kernel fixes, but does not identify distributions, appliances, cloud images, or application products.

Exploitation context

The source describes a race condition and crash trace, not a weaponized exploit. KEV is false, and no cited source states active exploitation. Practical triggering appears tied to concurrent Device Mapper table swap activity and I/O completion, but public evidence is incomplete.

Researcher notes

Focus analysis on the Device Mapper I/O completion and suspend/resume race. The record gives a concrete crash path and stable commit references, but lacks CVSS, CWE, distribution mapping, and exploitability detail. Avoid assuming remote reachability or privilege requirements beyond the cited kernel behavior.

Mitigation direction

  • Update to a Linux kernel build containing the referenced stable fixes.
  • Check distribution vendor advisories for backported fixes before relying on version strings.
  • Prioritize systems using Device Mapper for LVM, multipath, encryption, or storage virtualization.
  • Plan reboot or live-patching according to the organization’s kernel maintenance process.
  • Monitor vendor guidance for any later severity, exploitability, or mitigation updates.

Validation and detection

  • Inventory Linux kernel versions on systems using Device Mapper.
  • Confirm installed kernel packages include one of the referenced stable fixes or vendor backports.
  • Review storage configuration for active Device Mapper usage.
  • Check crash logs for NULL pointer dereferences involving mempool_free, clone_endio, or dm_io_dec_pending.
  • Verify post-update kernels are running, not merely installed.
Prepared
Confidence
medium
Sources
9

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cve · low confidence lookup

CVE-2021-47435 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Unknown
CVSS
Not scored
Known Exploited
No
Published
Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

0CVSS vectors
3Timeline events
2ADP providers
8Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: partial

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CISA-ADPCISA ADP Vulnrichment
other:ssvc
CVECVE Program Container
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinux6a8736d10cb413be95ea443ba40f25c93f4ef9b2, 6a8736d10cb413be95ea443ba40f25c93f4ef9b2, 6a8736d10cb413be95ea443ba40f25c93f4ef9b2, 6a8736d10cb413be95ea443ba40f25c93f4ef9b2, 6a8736d10cb413be95ea443ba40f25c93f4ef9b2, 6a8736d10cb413be95ea443ba40f25c93f4ef9b2, 6a8736d10cb413be95ea443ba40f25c93f4ef9b2unaffected
LinuxLinux2.6.37, 0, 4.9.313, 4.14.278, 4.19.242, 5.4.193, 5.10.113, 5.14.14, 5.15affected
Weakness

CWE details

No CWE listed

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.