CVE-2023-54050

Summary

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

ubifs: Fix memleak when insert_old_idx() failed

Following process will cause a memleak for copied up znode:

dirty_cow_znode zn = copy_znode(c, znode); err = insert_old_idx(c, zbr->lnum, zbr->offs); if (unlikely(err)) return ERR_PTR(err); // No one refers to zn.

Fetch a reproducer in [Link].

Function copy_znode() is split into 2 parts: resource allocation and znode replacement, insert_old_idx() is split in similar way, so resource cleanup could be done in error handling path without corrupting metadata(mem & disk). It's okay that old index inserting is put behind of add_idx_dirt(), old index is used in layout_leb_in_gaps(), so the two processes do not depend on each other.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux1e51764a3c2ac05a23a22b2a95ddee4d9bffb16d < cc29c7216d7f057eb0613b97dc38c7e1962a88d2affected
LinuxLinux1e51764a3c2ac05a23a22b2a95ddee4d9bffb16d < 6f2eee5457bc48b0426dedfd78cdbdea241a6edbaffected
LinuxLinux1e51764a3c2ac05a23a22b2a95ddee4d9bffb16d < 66e9f2fb3e753f820bec2a98e8c6387029988320affected
LinuxLinux1e51764a3c2ac05a23a22b2a95ddee4d9bffb16d < 3ae75f82c33fa1b4ca2006b55c84f4ef4a428d4daffected
LinuxLinux1e51764a3c2ac05a23a22b2a95ddee4d9bffb16d < ef9aac603659e9ffe7d69ae16e3f0fc0991a965baffected
LinuxLinux1e51764a3c2ac05a23a22b2a95ddee4d9bffb16d < 79079cebbeed624b9d01cfcf1e3254ae1a1f6e14affected
LinuxLinux1e51764a3c2ac05a23a22b2a95ddee4d9bffb16d < a6da0ab9847779e05a7416c7a98148b549de69efaffected
LinuxLinux1e51764a3c2ac05a23a22b2a95ddee4d9bffb16d < b5fda08ef213352ac2df7447611eb4d383cce929affected
LinuxLinux2.6.27affected
LinuxLinux0 < 2.6.27unaffected
LinuxLinux4.19.283 <= 4.19.*unaffected
LinuxLinux5.4.243 <= 5.4.*unaffected
LinuxLinux5.10.180 <= 5.10.*unaffected
LinuxLinux5.15.111 <= 5.15.*unaffected
LinuxLinux6.1.28 <= 6.1.*unaffected
LinuxLinux6.2.15 <= 6.2.*unaffected
LinuxLinux6.3.2 <= 6.3.*unaffected
LinuxLinux6.4 <= *unaffected

Weaknesses

References