ext4: fix mb_cache_entry's e_refcnt leak in ext4_xattr_block_cache_find() (Linux Linux)
At a glance
- Source
- NVD
- EPSS
- EPSS 0.23 % · percentile 14 ()
- State
- PUBLISHED
- Published
- Updated
- Assigner
- Linux
- NVD status
- Analyzed
Description
In the Linux kernel, the following vulnerability has been resolved: ext4: fix mb_cache_entry's e_refcnt leak in ext4_xattr_block_cache_find() Syzbot reports a warning as follows: ============================================ WARNING: CPU: 0 PID: 5075 at fs/mbcache.c:419 mb_cache_destroy+0x224/0x290 Modules linked in: CPU: 0 PID: 5075 Comm: syz-executor199 Not tainted 6.9.0-rc6-gb947cc5bf6d7 RIP: 0010:mb_cache_destroy+0x224/0x290 fs/mbcache.c:419 Call Trace: <TASK> ext4_put_super+0x6d4/0xcd0 fs/ext4/super.c:1375 generic_shutdown_super+0x136/0x2d0 fs/super.c:641 kill_block_super+0x44/0x90 fs/super.c:1675 ext4_kill_sb+0x68/0xa0 fs/ext4/super.c:7327 [...] ============================================ This is because when finding an entry in ext4_xattr_block_cache_find(), if ext4_sb_bread() returns -ENOMEM, the ce's e_refcnt, which has already grown in the __entry_find(), won't be put away, and eventually trigger the above issue in mb_cache_destroy() due to reference count leakage. So call mb_cache_entry_put() on the -ENOMEM error branch as a quick fix.
References
- https://git.kernel.org/stable/c/9ad75e78747b5a50dc5a52f0f8e92e920a653f16
- https://git.kernel.org/stable/c/896a7e7d0d555ad8b2b46af0c2fa7de7467f9483
- https://git.kernel.org/stable/c/76dc776153a47372719d664e0fc50d6355791abb
- https://git.kernel.org/stable/c/681ff9a09accd8a4379f8bd30b7a1641ee19bb3e
- https://git.kernel.org/stable/c/e941b712e758f615d311946bf98216e79145ccd9
- https://git.kernel.org/stable/c/a95df6f04f2c37291adf26a74205cde0314d4577
- https://git.kernel.org/stable/c/b37c0edef4e66fb21a2fbc211471195a383e5ab8
- https://git.kernel.org/stable/c/0c0b4a49d3e7f49690a6827a41faeffad5df7e21
Scores
| Version | Score | Vector | Scored by |
|---|---|---|---|
| CVSS 3.1 | MEDIUM 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N | CISA-ADP |
| CVSS 3.1 | MEDIUM 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N | NVD · 134c704f-9b21-4f2e-91b3-4a467353bcc0 (Secondary) |
European references
- ENISA EUVD · EUVD-2024-38198
- GCVE · GCVE-0-2024-39276
CERT-FR advisories
- CERTFR-2026-AVI-1165 — Multiples vulnérabilités dans les produits IBM · cert.ssi.gouv.fr
- CERTFR-2024-AVI-0958 — Multiples vulnérabilités dans les produits IBM · cert.ssi.gouv.fr
- CERTFR-2024-AVI-0823 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2024-AVI-0799 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2024-AVI-0778 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2024-AVI-0717 — Multiples vulnérabilités dans le noyau Linux de SUSE · cert.ssi.gouv.fr
- CERTFR-2024-AVI-0716 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2024-AVI-0694 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2024-AVI-0693 — Multiples vulnérabilités dans le noyau Linux de SUSE · cert.ssi.gouv.fr
- CERTFR-2024-AVI-0669 — Multiples vulnérabilités dans le noyau Linux de SUSE · cert.ssi.gouv.fr
- CERTFR-2024-AVI-0668 — Multiples vulnérabilités dans le noyau Linux de Red Hat · cert.ssi.gouv.fr
- CERTFR-2024-AVI-0667 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2024-AVI-0613 — Multiples vulnérabilités dans le noyau Linux de Debian · cert.ssi.gouv.fr
Affected configurations (NVD CPE)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 4.14.92 < 4.15cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 4.19.14 < 4.19.316cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 4.20.1 ≤ 5.4.278cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 5.5 ≤ 5.15.161cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 5.16 ≤ 6.1.94cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 6.2 ≤ 6.6.34cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 6.7 ≤ 6.9.5
Affected products
| Product | Versions |
|---|---|
| Linux · Linux | affected b878c8a7f08f0c225b6a46ba1ac867e9c5d17807 < 9ad75e78747b5a50dc5a52f0f8e92e920a653f16 ; affected fb265c9cb49e2074ddcdd4de99728aefdd3b3592 < 896a7e7d0d555ad8b2b46af0c2fa7de7467f9483 ; affected fb265c9cb49e2074ddcdd4de99728aefdd3b3592 < 76dc776153a47372719d664e0fc50d6355791abb ; affected fb265c9cb49e2074ddcdd4de99728aefdd3b3592 < 681ff9a09accd8a4379f8bd30b7a1641ee19bb3e ; affected fb265c9cb49e2074ddcdd4de99728aefdd3b3592 < e941b712e758f615d311946bf98216e79145ccd9 ; affected fb265c9cb49e2074ddcdd4de99728aefdd3b3592 < a95df6f04f2c37291adf26a74205cde0314d4577 |
| Linux · Linux | affected 5.0 ; unaffected 0 < 5.0 ; unaffected 4.19.316 ≤ 4.19.* ; unaffected 5.4.278 ≤ 5.4.* ; unaffected 5.10.219 ≤ 5.10.* ; unaffected 5.15.161 ≤ 5.15.* |
Sources
| Source | Licence |
|---|---|
| CVE List (CVEProject cvelistV5) | CVE Program Terms of Use |
| EPSS (FIRST.org) | FIRST — attribution requested |
| ENISA EUVD | ENISA — reproduction authorised, source acknowledged |
| CERT-FR (ANSSI) | Licence Ouverte / Etalab 2.0 |
| NVD (NIST) via fkie-cad/nvd-json-data-feeds | Public domain — this product uses data from the NVD API but is not endorsed or certified by the NVD |