CVE-2023-54313 (GCVE-0-2023-54313)
Vulnerability from cvelistv5 – Published: 2025-12-30 12:23 – Updated: 2025-12-30 12:23
VLAI?
Title
ovl: fix null pointer dereference in ovl_get_acl_rcu()
Summary
In 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] <TASK>
[ 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.
Severity ?
No CVSS data available.
Assigner
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Affected:
332f606b32b6291a944c8cf23b91f53a6e676525 , < d97481c7b2739a704848bb3c01f224dc71bdf78e
(git)
Affected: 332f606b32b6291a944c8cf23b91f53a6e676525 , < c4a5fb1ae5d3f02d3227afde2b9339994389463d (git) Affected: 332f606b32b6291a944c8cf23b91f53a6e676525 , < d536af163c53ce9f9bcfe87d2e9946f06f1a7ea4 (git) Affected: 332f606b32b6291a944c8cf23b91f53a6e676525 , < f4e19e595cc2e76a8a58413eb19d3d9c51328b53 (git) |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/overlayfs/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d97481c7b2739a704848bb3c01f224dc71bdf78e",
"status": "affected",
"version": "332f606b32b6291a944c8cf23b91f53a6e676525",
"versionType": "git"
},
{
"lessThan": "c4a5fb1ae5d3f02d3227afde2b9339994389463d",
"status": "affected",
"version": "332f606b32b6291a944c8cf23b91f53a6e676525",
"versionType": "git"
},
{
"lessThan": "d536af163c53ce9f9bcfe87d2e9946f06f1a7ea4",
"status": "affected",
"version": "332f606b32b6291a944c8cf23b91f53a6e676525",
"versionType": "git"
},
{
"lessThan": "f4e19e595cc2e76a8a58413eb19d3d9c51328b53",
"status": "affected",
"version": "332f606b32b6291a944c8cf23b91f53a6e676525",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/overlayfs/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.15"
},
{
"lessThan": "5.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.121",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.4.*",
"status": "unaffected",
"version": "6.4.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.5",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.121",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.40",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.4.4",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.5",
"versionStartIncluding": "5.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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."
}
],
"providerMetadata": {
"dateUpdated": "2025-12-30T12:23:44.484Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d97481c7b2739a704848bb3c01f224dc71bdf78e"
},
{
"url": "https://git.kernel.org/stable/c/c4a5fb1ae5d3f02d3227afde2b9339994389463d"
},
{
"url": "https://git.kernel.org/stable/c/d536af163c53ce9f9bcfe87d2e9946f06f1a7ea4"
},
{
"url": "https://git.kernel.org/stable/c/f4e19e595cc2e76a8a58413eb19d3d9c51328b53"
}
],
"title": "ovl: fix null pointer dereference in ovl_get_acl_rcu()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2023-54313",
"datePublished": "2025-12-30T12:23:44.484Z",
"dateReserved": "2025-12-30T12:06:44.531Z",
"dateUpdated": "2025-12-30T12:23:44.484Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"nvd": "{\"cve\":{\"id\":\"CVE-2023-54313\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-12-30T13:16:20.540\",\"lastModified\":\"2025-12-30T13:16:20.540\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"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.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/c4a5fb1ae5d3f02d3227afde2b9339994389463d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/d536af163c53ce9f9bcfe87d2e9946f06f1a7ea4\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/d97481c7b2739a704848bb3c01f224dc71bdf78e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/f4e19e595cc2e76a8a58413eb19d3d9c51328b53\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
}
}
Loading…
Loading…
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.
Loading…
Loading…