GHSA-5FQH-8G63-525Q
Vulnerability from github – Published: 2025-12-30 15:30 – Updated: 2025-12-30 15:30In the Linux kernel, the following vulnerability has been resolved:
ovl: fix null pointer dereference in ovl_get_acl_rcu()
Following process: P1 P2 path_openat link_path_walk may_lookup inode_permission(rcu) ovl_permission acl_permission_check check_acl get_cached_acl_rcu ovl_get_inode_acl realinode = ovl_inode_real(ovl_inode) drop_cache __dentry_kill(ovl_dentry) iput(ovl_inode) ovl_destroy_inode(ovl_inode) dput(oi->__upperdentry) dentry_kill(upperdentry) dentry_unlink_inode upperdentry->d_inode = NULL ovl_inode_upper upperdentry = ovl_i_dentry_upper(ovl_inode) d_inode(upperdentry) // returns NULL IS_POSIXACL(realinode) // NULL pointer dereference , will trigger an null pointer dereference at realinode: [ 205.472797] BUG: kernel NULL pointer dereference, address: 0000000000000028 [ 205.476701] CPU: 2 PID: 2713 Comm: ls Not tainted 6.3.0-12064-g2edfa098e750-dirty #1216 [ 205.478754] RIP: 0010:do_ovl_get_acl+0x5d/0x300 [ 205.489584] Call Trace: [ 205.489812] [ 205.490014] ovl_get_inode_acl+0x26/0x30 [ 205.490466] get_cached_acl_rcu+0x61/0xa0 [ 205.490908] generic_permission+0x1bf/0x4e0 [ 205.491447] ovl_permission+0x79/0x1b0 [ 205.491917] inode_permission+0x15e/0x2c0 [ 205.492425] link_path_walk+0x115/0x550 [ 205.493311] path_lookupat.isra.0+0xb2/0x200 [ 205.493803] filename_lookup+0xda/0x240 [ 205.495747] vfs_fstatat+0x7b/0xb0
Fetch a reproducer in [Link].
Use the helper ovl_i_path_realinode() to get realinode and then do non-nullptr checking.
{
"affected": [],
"aliases": [
"CVE-2023-54313"
],
"database_specific": {
"cwe_ids": [],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2025-12-30T13:16:20Z",
"severity": null
},
"details": "In the Linux kernel, the following vulnerability has been resolved:\n\novl: fix null pointer dereference in ovl_get_acl_rcu()\n\nFollowing process:\n P1 P2\n path_openat\n link_path_walk\n may_lookup\n inode_permission(rcu)\n ovl_permission\n acl_permission_check\n check_acl\n get_cached_acl_rcu\n\t ovl_get_inode_acl\n\t realinode = ovl_inode_real(ovl_inode)\n\t drop_cache\n\t\t __dentry_kill(ovl_dentry)\n\t\t\t\tiput(ovl_inode)\n\t\t ovl_destroy_inode(ovl_inode)\n\t\t dput(oi-\u003e__upperdentry)\n\t\t dentry_kill(upperdentry)\n\t\t dentry_unlink_inode\n\t\t\t\t upperdentry-\u003ed_inode = NULL\n\t ovl_inode_upper\n\t upperdentry = ovl_i_dentry_upper(ovl_inode)\n\t d_inode(upperdentry) // returns NULL\n\t IS_POSIXACL(realinode) // NULL pointer dereference\n, will trigger an null pointer dereference at realinode:\n [ 205.472797] BUG: kernel NULL pointer dereference, address:\n 0000000000000028\n [ 205.476701] CPU: 2 PID: 2713 Comm: ls Not tainted\n 6.3.0-12064-g2edfa098e750-dirty #1216\n [ 205.478754] RIP: 0010:do_ovl_get_acl+0x5d/0x300\n [ 205.489584] Call Trace:\n [ 205.489812] \u003cTASK\u003e\n [ 205.490014] ovl_get_inode_acl+0x26/0x30\n [ 205.490466] get_cached_acl_rcu+0x61/0xa0\n [ 205.490908] generic_permission+0x1bf/0x4e0\n [ 205.491447] ovl_permission+0x79/0x1b0\n [ 205.491917] inode_permission+0x15e/0x2c0\n [ 205.492425] link_path_walk+0x115/0x550\n [ 205.493311] path_lookupat.isra.0+0xb2/0x200\n [ 205.493803] filename_lookup+0xda/0x240\n [ 205.495747] vfs_fstatat+0x7b/0xb0\n\nFetch a reproducer in [Link].\n\nUse the helper ovl_i_path_realinode() to get realinode and then do\nnon-nullptr checking.",
"id": "GHSA-5fqh-8g63-525q",
"modified": "2025-12-30T15:30:36Z",
"published": "2025-12-30T15:30:35Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2023-54313"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/c4a5fb1ae5d3f02d3227afde2b9339994389463d"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/d536af163c53ce9f9bcfe87d2e9946f06f1a7ea4"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/d97481c7b2739a704848bb3c01f224dc71bdf78e"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/f4e19e595cc2e76a8a58413eb19d3d9c51328b53"
}
],
"schema_version": "1.4.0",
"severity": []
}
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.