CVE-2023-53481CWE-835

CVE-2023-53481

High · published October 1, 2025

CVSS v3.1
7.8
EPSS
0%
Percentile
5.3
In the wild
Unconfirmed
What it is

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

ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed

Following process will trigger an infinite loop in ubi_wl_put_peb():

ubifs_bgt ubi_bgt

ubifs_leb_unmap

ubi_leb_unmap

ubi_eba_unmap_leb

ubi_wl_put_peb wear_leveling_worker

e1 = rb_entry(rb_first(&ubi->used)

e2 = get_peb_for_wl(ubi)

ubi_io_read_vid_hdr // return err (flash fault)

out_error:

ubi->move_from = ubi->move_to = NULL

wl_entry_destroy(ubi, e1)

ubi->lookuptbl[e->pnum] = NULL

retry:

e = ubi->lookuptbl[pnum]; // return NULL

if (e == ubi->move_from) { // NULL == NULL gets true

goto retry; // infinite loop !!!

$ top

PID USER PR NI VIRT RES SHR S %CPU %MEM COMMAND

7676 root 20 0 0 0 0 R 100.0 0.0 ubifs_bgt0_0

Fix it by:

1) Letting ubi_wl_put_peb() returns directly if wearl leveling entry has

been removed from 'ubi->lookuptbl'.

2) Using 'ubi->wl_lock' protecting wl entry deletion to preventing an

use-after-free problem for wl entry in ubi_wl_put_peb().

Fetch a reproducer in [Link].

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00164 · 5.3th percentile
Weakness
CWE-835 · Loop with Unreachable Exit Condition ('Infinite Loop')
Published
2025-10-01T16:15Z
Affected products (7)
ProductVersionsFixed in
linux/linux_kernel≥ 2.6.25, < 4.14.3084.14.308
linux/linux_kernel≥ 4.15, < 4.19.2764.19.276
linux/linux_kernel≥ 4.20, < 5.4.2355.4.235
linux/linux_kernel≥ 5.5, < 5.10.1735.10.173
linux/linux_kernel≥ 5.11, < 5.15.1005.15.100
linux/linux_kernel≥ 5.16, < 6.1.186.1.18
linux/linux_kernel≥ 6.2, < 6.2.56.2.5
References (8)
EPSS history
Timeline
  • 01 OCT 11:42Z
    ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed
    cvelistv5