CVE-2023-54117

s390/dcssblk: fix kernel crash with list_add corruption

State
Published
Severity
Not scored
Published
Dec 24, 2025
Updated
May 11, 2026
Reserved
Dec 24, 2025

Read the record on cve.org

Description

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

s390/dcssblk: fix kernel crash with list_add corruption

Commit fb08a1908cb1 ("dax: simplify the dax_device <-> gendisk association") introduced new logic for gendisk association, requiring drivers to explicitly call dax_add_host() and dax_remove_host().

For dcssblk driver, some dax_remove_host() calls were missing, e.g. in device remove path. The commit also broke error handling for out_dax case in device add path, resulting in an extra put_device() w/o the previous get_device() in that case.

This lead to stale xarray entries after device add / remove cycles. In the case when a previously used struct gendisk pointer (xarray index) would be used again, because blk_alloc_disk() happened to return such a pointer, the xa_insert() in dax_add_host() would fail and go to out_dax, doing the extra put_device() in the error path. In combination with an already flawed error handling in dcssblk (device_register() cleanup), which needs to be addressed in a separate patch, this resulted in a missing device_del() / klist_del(), and eventually in the kernel crash with list_add corruption on a subsequent device_add() / klist_add().

Fix this by adding the missing dax_remove_host() calls, and also move the put_device() in the error path to restore the previous logic.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • fb08a1908cb119a4585611d91461ab6d27756b14 to before 6489ec0107860345bc57dcde39e63dfb05ac5c11Affected
  • fb08a1908cb119a4585611d91461ab6d27756b14 to before b7ad75c77349beb4983b9f27108d9b3f33ae1413Affected
  • fb08a1908cb119a4585611d91461ab6d27756b14 to before b5c531a9a7d8e047c90c909f09cef06a9f8e62f4Affected
  • fb08a1908cb119a4585611d91461ab6d27756b14 to before c8f40a0bccefd613748d080147469a4652d6e74cAffected
LinuxLinux
  • 5.17Affected
  • before 5.17Not affected
  • 6.1.53 through 6.1.*Not affected
  • 6.4.16 through 6.4.*Not affected
  • 6.5.3 through 6.5.*Not affected
  • 6.6 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.