CVE-2023-52617

PCI: switchtec: Fix stdev_release() crash after surprise hot remove

State
Published
Severity
4.4 Medium
Published
Mar 18, 2024
Updated
May 11, 2026
Reserved
Mar 6, 2024

Read the record on cve.org

Description

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

PCI: switchtec: Fix stdev_release() crash after surprise hot remove

A PCI device hot removal may occur while stdev->cdev is held open. The call to stdev_release() then happens during close or exit, at a point way past switchtec_pci_remove(). Otherwise the last ref would vanish with the trailing put_device(), just before return.

At that later point in time, the devm cleanup has already removed the stdev->mmio_mrpc mapping. Also, the stdev->pdev reference was not a counted one. Therefore, in DMA mode, the iowrite32() in stdev_release() will cause a fatal page fault, and the subsequent dma_free_coherent(), if reached, would pass a stale &stdev->pdev->dev pointer.

Fix by moving MRPC DMA shutdown into switchtec_pci_remove(), after stdev_kill(). Counting the stdev->pdev ref is now optional, but may prevent future accidents.

Reproducible via the script at https://lore.kernel.org/r/20231113212150.96410-1-dns@arista.com

Scores

CVSSScoreVectorSource
3.14.4 MediumCVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:HCISA-ADP

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • f7eb7b8a4f72b0d9dea69b09f58185ffab97fd35 to before d8c293549946ee5078ed0ab77793cec365559355Affected
  • f7eb7b8a4f72b0d9dea69b09f58185ffab97fd35 to before 4a5d0528cf19dbf060313dffbe047bc11c90c24cAffected
  • f7eb7b8a4f72b0d9dea69b09f58185ffab97fd35 to before ff1c7e2fb9e9c3f53715fbe04d3ac47b80be7eb8Affected
  • f7eb7b8a4f72b0d9dea69b09f58185ffab97fd35 to before 1d83c85922647758c1f1e4806a4c5c3cf591a20aAffected
  • f7eb7b8a4f72b0d9dea69b09f58185ffab97fd35 to before 0233b836312e39a3c763fb53512b3fa455b473b3Affected
  • f7eb7b8a4f72b0d9dea69b09f58185ffab97fd35 to before e129c7fa7070fbce57feb0bfc5eaa65eef44b693Affected
  • f7eb7b8a4f72b0d9dea69b09f58185ffab97fd35 to before df25461119d987b8c81d232cfe4411e91dcabe66Affected
LinuxLinux
  • 5.0Affected
  • before 5.0Not affected
  • 5.4.269 through 5.4.*Not affected
  • 5.10.210 through 5.10.*Not affected
  • 5.15.149 through 5.15.*Not affected
  • 6.1.77 through 6.1.*Not affected
  • 6.6.16 through 6.6.*Not affected
  • 6.7.4 through 6.7.*Not affected
  • 6.8 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.