ovl: fix UAF in ovl_dentry_update_reval by moving dput() in ovl_link_up
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.247, 5.15.179, 6.1.130, 6.4, 6.5, and 3 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: ovl: fix UAF in ovl_dentry_update_reval by moving dput() in ovl_link_up The issue was caused by dput(upper) being called before ovl_dentry_update_reval(), while upper->d_flags was still accessed in ovl_dentry_remote(). Move dput(upper) after its last use to prevent use-after-free. BUG: KASAN: slab-use-after-free in ovl_dentry_remote fs/overlayfs/util.c:162 [inline] BUG: KASAN: slab-use-after-free in ovl_dentry_update_reval+0xd2/0xf0 fs/overlayfs/util.c:167 Call Trace: <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:114 print_address_description mm/kasan/report.c:377 [inline] print_report+0xc3/0x620 mm/kasan/report.c:488 kasan_report+0xd9/0x110 mm/kasan/report.c:601 ovl_dentry_remote fs/overlayfs/util.c:162 [inline] ovl_dentry_update_reval+0xd2/0xf0 fs/overlayfs/util.c:167 ovl_link_up fs/overlayfs/copy_up.c:610 [inline] ovl_copy_up_one+0x2105/0x3490 fs/overlayfs/copy_up.c:1170 ovl_copy_up_flags+0x18d/0x200 fs/overlayfs/copy_up.c:1223 ovl_rename+0x39e/0x18c0 fs/overlayfs/dir.c:1136 vfs_rename+0xf84/0x20a0 fs/namei.c:4893 ... </TASK>
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 714ba10a6dd19752a349e59aa875f3288ccb59b9 · fixed in f77618291836168eca99e89cd175256f928f5e64; From 62f29ca45f832e281fc14966ac25f6ff3bd121ca · fixed in 4b49d939b5a79117f939b77cc67efae2694d9799; From e4f2a1feebb3f209a0fca82aa53507a5b8be4d53 · fixed in a7c41830ffcd17b2177a95a9b99b270302090c35; From b07d5cc93e1b28df47a72c519d09d0a836043613 · fixed in 64455c8051c3aedc71abb7ec8d47c80301f99f00; From b07d5cc93e1b28df47a72c519d09d0a836043613 · fixed in 3594aad97e7be2557ca9fa9c931b206b604028c8; From b07d5cc93e1b28df47a72c519d09d0a836043613 · fixed in 60b4b5c1277fc491da9e1e7abab307bfa39c2db7; From b07d5cc93e1b28df47a72c519d09d0a836043613 · fixed in c84e125fff2615b4d9c259e762596134eddd2f27; From 5.10.188 · fixed in 5.10.247; From 5.15.121 · fixed in 5.15.179; From 6.1.39 · fixed in 6.1.130; From 6.3.13 · fixed in 6.4; From 6.4.4 · fixed in 6.5
- Linux Linux
6.5
- KernelLinux
fixed in 5.10.247; From 5.11.0 · fixed in 5.15.179; From 5.16.0 · fixed in 6.1.130; From 6.2.0 · fixed in 6.6.81; From 6.5.0 · fixed in 6.12.18; From 6.7.0 · fixed in 6.13.6
References 7
git.kernel.org
- stable/c/f77618291836168eca99e89cd175256f928f5e64
- stable/c/4b49d939b5a79117f939b77cc67efae2694d9799
- stable/c/a7c41830ffcd17b2177a95a9b99b270302090c35
- stable/c/64455c8051c3aedc71abb7ec8d47c80301f99f00
- stable/c/3594aad97e7be2557ca9fa9c931b206b604028c8
- stable/c/60b4b5c1277fc491da9e1e7abab307bfa39c2db7
- stable/c/c84e125fff2615b4d9c259e762596134eddd2f27