Action not permitted
Modal body text goes here.
Modal Title
Modal Body
EUVD-2026-345358
European Vulnerability Database identifier assigned by ENISAReserved
2026-10-02 08:01
Assigner
ENISA
Alias of
a CVE record, shown under related vulnerabilities.
This identifier carries no description, severity or references of its own:
they belong to that CVE.
{
"assigner": "ENISA",
"date_reserved": "2026-10-02T08:01:24.610863+00:00",
"id": "EUVD-2026-345358"
}
CVE-2023-54062 (GCVE-0-2023-54062)
Vulnerability from cvelistv5 – Published: 2025-12-24 12:23 – Updated: 2026-08-05 09:16
VLAI
EPSS
VEX
Title
ext4: fix invalid free tracking in ext4_xattr_move_to_block()
Summary
In the Linux kernel, the following vulnerability has been resolved:
ext4: fix invalid free tracking in ext4_xattr_move_to_block()
In ext4_xattr_move_to_block(), the value of the extended attribute
which we need to move to an external block may be allocated by
kvmalloc() if the value is stored in an external inode. So at the end
of the function the code tried to check if this was the case by
testing entry->e_value_inum.
However, at this point, the pointer to the xattr entry is no longer
valid, because it was removed from the original location where it had
been stored. So we could end up calling kvfree() on a pointer which
was not allocated by kvmalloc(); or we could also potentially leak
memory by not freeing the buffer when it should be freed. Fix this by
storing whether it should be freed in a separate variable.
Severity
7.8 (High)
Assigner
References
9 references
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
c7851208abffe5ae4deb01cf48763911dc14fc67 , < 76887be2a96193cd11be818551b8934ecdb3123f
(git)
Affected: f5cdc6a7339f250d44d4d469ed7a474ac0d6c7a7 , < f30f3391d089dc91aef91d08f4b04a6c0df2b067 (git) Affected: 3b28c799a1334adb5a19f42f03abe0d8cbb05938 , < ba04d6af5ac440a6d5a2d35dc1d8e2cb0323550a (git) Affected: d738789ae9ec47d3458a008788f3cdc862ebf0cb , < 1a8822343e67432b658145d2760a524c884da9d4 (git) Affected: a6744e14ce7045ab1a728bde9595f62fbd39f1d2 , < 8beaa3cb293a8f7bacf711cf52201d59859dbc40 (git) Affected: 8b6d06b3be7648b3b0f428558293ddf6e2cb94bf , < c5fa4eedddd1c8342ce533cb401c0e693e55b4e3 (git) Affected: d2efaf8c870c7067b8d1779773134f3481cd8f68 , < a18670395e5f28acddeca037c5e4bd2ea961b70a (git) Affected: 1e9d62d252812575ded7c620d8fc67c32ff06c16 , < b2fab1807d26acd1c6115b95b5eddd697d84751b (git) Affected: 1e9d62d252812575ded7c620d8fc67c32ff06c16 , < b87c7cdf2bed4928b899e1ce91ef0d147017ba45 (git) Affected: 4.14.308 , < 4.14.315 (semver) Affected: 4.19.276 , < 4.19.283 (semver) Affected: 5.4.235 , < 5.4.243 (semver) Affected: 5.10.173 , < 5.10.180 (semver) Affected: 5.15.99 , < 5.15.112 (semver) Affected: 6.1.16 , < 6.1.29 (semver) Affected: 6.2.3 , < 6.2.16 (semver) |
|
| Linux | Linux |
Affected:
6.3
Unaffected: 0 , < 6.3 (semver) Unaffected: 4.14.315 , ≤ 4.14.* (semver) Unaffected: 4.19.283 , ≤ 4.19.* (semver) Unaffected: 5.4.243 , ≤ 5.4.* (semver) Unaffected: 5.10.180 , ≤ 5.10.* (semver) Unaffected: 5.15.112 , ≤ 5.15.* (semver) Unaffected: 6.1.29 , ≤ 6.1.* (semver) Unaffected: 6.2.16 , ≤ 6.2.* (semver) Unaffected: 6.3.3 , ≤ 6.3.* (semver) Unaffected: 6.4 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/ext4/xattr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "76887be2a96193cd11be818551b8934ecdb3123f",
"status": "affected",
"version": "c7851208abffe5ae4deb01cf48763911dc14fc67",
"versionType": "git"
},
{
"lessThan": "f30f3391d089dc91aef91d08f4b04a6c0df2b067",
"status": "affected",
"version": "f5cdc6a7339f250d44d4d469ed7a474ac0d6c7a7",
"versionType": "git"
},
{
"lessThan": "ba04d6af5ac440a6d5a2d35dc1d8e2cb0323550a",
"status": "affected",
"version": "3b28c799a1334adb5a19f42f03abe0d8cbb05938",
"versionType": "git"
},
{
"lessThan": "1a8822343e67432b658145d2760a524c884da9d4",
"status": "affected",
"version": "d738789ae9ec47d3458a008788f3cdc862ebf0cb",
"versionType": "git"
},
{
"lessThan": "8beaa3cb293a8f7bacf711cf52201d59859dbc40",
"status": "affected",
"version": "a6744e14ce7045ab1a728bde9595f62fbd39f1d2",
"versionType": "git"
},
{
"lessThan": "c5fa4eedddd1c8342ce533cb401c0e693e55b4e3",
"status": "affected",
"version": "8b6d06b3be7648b3b0f428558293ddf6e2cb94bf",
"versionType": "git"
},
{
"lessThan": "a18670395e5f28acddeca037c5e4bd2ea961b70a",
"status": "affected",
"version": "d2efaf8c870c7067b8d1779773134f3481cd8f68",
"versionType": "git"
},
{
"lessThan": "b2fab1807d26acd1c6115b95b5eddd697d84751b",
"status": "affected",
"version": "1e9d62d252812575ded7c620d8fc67c32ff06c16",
"versionType": "git"
},
{
"lessThan": "b87c7cdf2bed4928b899e1ce91ef0d147017ba45",
"status": "affected",
"version": "1e9d62d252812575ded7c620d8fc67c32ff06c16",
"versionType": "git"
},
{
"lessThan": "4.14.315",
"status": "affected",
"version": "4.14.308",
"versionType": "semver"
},
{
"lessThan": "4.19.283",
"status": "affected",
"version": "4.19.276",
"versionType": "semver"
},
{
"lessThan": "5.4.243",
"status": "affected",
"version": "5.4.235",
"versionType": "semver"
},
{
"lessThan": "5.10.180",
"status": "affected",
"version": "5.10.173",
"versionType": "semver"
},
{
"lessThan": "5.15.112",
"status": "affected",
"version": "5.15.99",
"versionType": "semver"
},
{
"lessThan": "6.1.29",
"status": "affected",
"version": "6.1.16",
"versionType": "semver"
},
{
"lessThan": "6.2.16",
"status": "affected",
"version": "6.2.3",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/ext4/xattr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.3"
},
{
"lessThan": "6.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "4.14.*",
"status": "unaffected",
"version": "4.14.315",
"versionType": "semver"
},
{
"lessThanOrEqual": "4.19.*",
"status": "unaffected",
"version": "4.19.283",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"version": "5.4.243",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.180",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.29",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.2.*",
"status": "unaffected",
"version": "6.2.16",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.3.*",
"status": "unaffected",
"version": "6.3.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.4",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "4.14.315",
"versionStartIncluding": "4.14.308",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "4.19.283",
"versionStartIncluding": "4.19.276",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.4.243",
"versionStartIncluding": "5.4.235",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.180",
"versionStartIncluding": "5.10.173",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.112",
"versionStartIncluding": "5.15.99",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.29",
"versionStartIncluding": "6.1.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.2.16",
"versionStartIncluding": "6.2.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.3.3",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.4",
"versionStartIncluding": "6.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\next4: fix invalid free tracking in ext4_xattr_move_to_block()\n\nIn ext4_xattr_move_to_block(), the value of the extended attribute\nwhich we need to move to an external block may be allocated by\nkvmalloc() if the value is stored in an external inode. So at the end\nof the function the code tried to check if this was the case by\ntesting entry-\u003ee_value_inum.\n\nHowever, at this point, the pointer to the xattr entry is no longer\nvalid, because it was removed from the original location where it had\nbeen stored. So we could end up calling kvfree() on a pointer which\nwas not allocated by kvmalloc(); or we could also potentially leak\nmemory by not freeing the buffer when it should be freed. Fix this by\nstoring whether it should be freed in a separate variable."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached through local filesystem operations \u2014 `setxattr()` plus any inode-dirtying syscall on a mounted ext4 volume, or by mounting a crafted ext4 image. No network or remote peer is involved.\nAC:L - No race and no memory-layout luck is needed; the invalid free happens deterministically whenever the moved inline-value xattr is followed by an EA-inode-backed entry, and the attacker controls both the entry ordering (name-sorted) and the sizes that drive `ext4_xattr_make_inode_space()`\u0027s selection, or controls everything outright via a crafted image.\nPR:L - An ordinary unprivileged user only needs a file they own to set `user.*` xattrs on and then dirty the inode; no capability, and `ext4_expand_extra_isize_ea()` runs from the ordinary `ext4_mark_inode_dirty()` path.\nUI:N - In the local-user scenario the attacker performs every step themselves \u2014 setxattr, then touch/write to dirty the inode \u2014 with no victim action required.\nS:U - The corruption stays within the kernel\u0027s own security authority; there is no VM, IOMMU, or sandbox boundary crossed.\nC:H - `__free_pages()` on a still-referenced page-cache page underflows its refcount, so the page is recycled while ext4 keeps reading the inode table through the stale `buffer_head`, disclosing whatever kernel data now occupies that page; the `WARN` also leaks a kernel pointer.\nI:H - After the premature page free, ext4 continues writing inode and xattr bytes into the reallocated page through the stale `buffer_head`, giving a page-granularity kernel write primitive suitable for privilege escalation; slab/memcg accounting is corrupted as well.\nA:H - On 4.19/5.10-era kernels `kfree()` on the non-slab pointer hits `BUG_ON(!PageCompound(page))` for an immediate panic; on 6.x it produces a `WARN_ON_ONCE` (panic under `panic_on_warn`) plus a page refcount underflow that leads to a later oops, and the inverse case leaks memory on every attempt."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T09:16:50.491Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/76887be2a96193cd11be818551b8934ecdb3123f"
},
{
"url": "https://git.kernel.org/stable/c/f30f3391d089dc91aef91d08f4b04a6c0df2b067"
},
{
"url": "https://git.kernel.org/stable/c/ba04d6af5ac440a6d5a2d35dc1d8e2cb0323550a"
},
{
"url": "https://git.kernel.org/stable/c/1a8822343e67432b658145d2760a524c884da9d4"
},
{
"url": "https://git.kernel.org/stable/c/8beaa3cb293a8f7bacf711cf52201d59859dbc40"
},
{
"url": "https://git.kernel.org/stable/c/c5fa4eedddd1c8342ce533cb401c0e693e55b4e3"
},
{
"url": "https://git.kernel.org/stable/c/a18670395e5f28acddeca037c5e4bd2ea961b70a"
},
{
"url": "https://git.kernel.org/stable/c/b2fab1807d26acd1c6115b95b5eddd697d84751b"
},
{
"url": "https://git.kernel.org/stable/c/b87c7cdf2bed4928b899e1ce91ef0d147017ba45"
}
],
"title": "ext4: fix invalid free tracking in ext4_xattr_move_to_block()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2023-54062",
"datePublished": "2025-12-24T12:23:08.649Z",
"dateReserved": "2025-12-24T12:21:05.092Z",
"dateUpdated": "2026-08-05T09:16:50.491Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
Loading…
Trend slope:
-
(linear fit over daily sighting counts)
Show additional events:
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
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…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Loading…
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.
Loading…
Loading…