> CVE-2023-54157

« BACK_TO_HOME
PUBLISHED
2025-12-24 13:16
MODIFIED
2025-12-24 13:16
EPSS (Prob. Exploit)
0.15%
Top 96.2%
DATA SOURCES:
NVD 🔗 2025-12-24 RED HAT 🔗 2025-12-28 CVE PROJECT 🔗 2026-01-19 FIRST EPSS 🔗 2026-10-25 OSV 🔗 2026-03-01

> DESCRIPTION

In the Linux kernel, the following vulnerability has been resolved: binder: fix UAF of alloc->vma in race with munmap() [ cmllamas: clean forward port from commit 015ac18be7de ("binder: fix UAF of alloc->vma in race with munmap()") in 5.10 stable. It is needed in mainline after the revert of commit a43cfc87caaf ("android: binder: stop saving a pointer to the VMA") as pointed out by Liam. The commit log and tags have been tweaked to reflect this. ] In commit 720c24192404 ("ANDROID: binder: change down_write to down_read") binder assumed the mmap read lock is sufficient to protect alloc->vma inside binder_update_page_range(). This used to be accurate until commit dd2283f2605e ("mm: mmap: zap pages with read mmap_sem in munmap"), which now downgrades the mmap_lock after detaching the vma from the rbtree in munmap(). Then it proceeds to teardown and free the vma with only the read lock held. This means that accesses to alloc->vma in binder_update_page_range() now will race with vm_area_free() in munmap() and can cause a UAF as shown in the following KASAN trace: ================================================================== BUG: KASAN: use-after-free in vm_insert_page+0x7c/0x1f0 Read of size 8 at addr ffff16204ad00600 by task server/558 CPU: 3 PID: 558 Comm: server Not tainted 5.10.150-00001-gdc8dcf942daa #1 Hardware name: linux,dummy-virt (DT) Call trace: dump_backtrace+0x0/0x2a0 show_stack+0x18/0x2c dump_stack+0xf8/0x164 print_address_description.constprop.0+0x9c/0x538 kasan_report+0x120/0x200 __asan_load8+0xa0/0xc4 vm_insert_page+0x7c/0x1f0 binder_update_page_range+0x278/0x50c binder_alloc_new_buf+0x3f0/0xba0 binder_transaction+0x64c/0x3040 binder_thread_write+0x924/0x2020 binder_ioctl+0x1610/0x2e5c __arm64_sys_ioctl+0xd4/0x120 el0_svc_common.constprop.0+0xac/0x270 do_el0_svc+0x38/0xa0 el0_svc+0x1c/0x2c el0_sync_handler+0xe8/0x114 el0_sync+0x180/0x1c0 Allocated by task 559: kasan_save_stack+0x38/0x6c __kasan_kmalloc.constprop.0+0xe4/0xf0 kasan_slab_alloc+0x18/0x2c kmem_cache_alloc+0x1b0/0x2d0 vm_area_alloc+0x28/0x94 mmap_region+0x378/0x920 do_mmap+0x3f0/0x600 vm_mmap_pgoff+0x150/0x17c ksys_mmap_pgoff+0x284/0x2dc __arm64_sys_mmap+0x84/0xa4 el0_svc_common.constprop.0+0xac/0x270 do_el0_svc+0x38/0xa0 el0_svc+0x1c/0x2c el0_sync_handler+0xe8/0x114 el0_sync+0x180/0x1c0 Freed by task 560: kasan_save_stack+0x38/0x6c kasan_set_track+0x28/0x40 kasan_set_free_info+0x24/0x4c __kasan_slab_free+0x100/0x164 kasan_slab_free+0x14/0x20 kmem_cache_free+0xc4/0x34c vm_area_free+0x1c/0x2c remove_vma+0x7c/0x94 __do_munmap+0x358/0x710 __vm_munmap+0xbc/0x130 __arm64_sys_munmap+0x4c/0x64 el0_svc_common.constprop.0+0xac/0x270 do_el0_svc+0x38/0xa0 el0_svc+0x1c/0x2c el0_sync_handler+0xe8/0x114 el0_sync+0x180/0x1c0 [...] ================================================================== To prevent the race above, revert back to taking the mmap write lock inside binder_update_page_range(). One might expect an increase of mmap lock contention. However, binder already serializes these calls via top level alloc->mutex. Also, there was no performance impact shown when running the binder benchmark tests.

> AFFECTED_PRODUCTS

ℹ️ Aucun produit affecté n'a encore été publié par NVD pour cette CVE.

> RED HAT SEVERITY ASSESSMENT

> OSV (GOOGLE OPEN SOURCE VULNERABILITIES)

binder: fix UAF of alloc->vma in race with munmap()

AFFECTED PACKAGES:
Unknown / Unknown
360 versions affected
Linux / Kernel

> HISTORIQUE DES MODIFICATIONS

Première apparition
24/12/2025 13:16
Source: NVD
📊 ENRICHISSEMENT 19/01/2026 17:38
CVEPROJECT
Champ modifié: CVE Project
Ancienne valeur:
Non
Nouvelle valeur:
Oui
📊 ENRICHISSEMENT 28/12/2025 04:02
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{ "severity_scale": null, "threat_severity": null }
Nouvelle valeur:
{ "threat_severity": null, "severity_scale": null }
📊 ENRICHISSEMENT 25/12/2025 23:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{ "severity_scale": null, "threat_severity": null }
Nouvelle valeur:
{ "threat_severity": null, "severity_scale": null }
📊 ENRICHISSEMENT 25/12/2025 22:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{ "severity_scale": null, "threat_severity": null }
Nouvelle valeur:
{ "threat_severity": null, "severity_scale": null }
📊 ENRICHISSEMENT 25/12/2025 21:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{ "severity_scale": null, "threat_severity": null }
Nouvelle valeur:
{ "threat_severity": null, "severity_scale": null }
📊 ENRICHISSEMENT 25/12/2025 20:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{ "severity_scale": null, "threat_severity": null }
Nouvelle valeur:
{ "threat_severity": null, "severity_scale": null }
📊 ENRICHISSEMENT 25/12/2025 19:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{ "severity_scale": null, "threat_severity": null }
Nouvelle valeur:
{ "threat_severity": null, "severity_scale": null }
📊 ENRICHISSEMENT 25/12/2025 18:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{ "severity_scale": null, "threat_severity": null }
Nouvelle valeur:
{ "threat_severity": null, "severity_scale": null }
📊 ENRICHISSEMENT 25/12/2025 17:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{ "severity_scale": null, "threat_severity": null }
Nouvelle valeur:
{ "threat_severity": null, "severity_scale": null }
📊 ENRICHISSEMENT 25/12/2025 16:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{ "severity_scale": null, "threat_severity": null }
Nouvelle valeur:
{ "threat_severity": null, "severity_scale": null }
📊 ENRICHISSEMENT 25/12/2025 15:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{ "severity_scale": null, "threat_severity": null }
Nouvelle valeur:
{ "threat_severity": null, "severity_scale": null }
📊 ENRICHISSEMENT 25/12/2025 14:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{ "severity_scale": null, "threat_severity": null }
Nouvelle valeur:
{ "threat_severity": null, "severity_scale": null }
📊 ENRICHISSEMENT 25/12/2025 13:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{ "severity_scale": null, "threat_severity": null }
Nouvelle valeur:
{ "threat_severity": null, "severity_scale": null }
📊 ENRICHISSEMENT 25/12/2025 12:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
N/A
Nouvelle valeur:
{ "threat_severity": null, "severity_scale": null }
📊 ENRICHISSEMENT 25/12/2025 12:30
REDHAT
Champ modifié: Red Hat
Ancienne valeur:
Non
Nouvelle valeur:
Oui
Total des modifications: 15 Dernière mise à jour: 9 months ago

> REFERENCES

https://git.kernel.org/stable/c/1bb8a65190d45cd5c7dbc85e29b9102110cd6be6
https://git.kernel.org/stable/c/931ea1ed31be939c1efdbc49bc66d2a45684f9b4
https://git.kernel.org/stable/c/ca0cc0a9c6e56c699e2acbb93d8024523021f3c3
https://git.kernel.org/stable/c/d1d8875c8c13517f6fd1ff8d4d3e1ac366a17e07
« BACK_TO_HOME