CVE-2023-54104 (GCVE-0-2023-54104)
Vulnerability from cvelistv5 – Published: 2025-12-24 13:06 – Updated: 2026-08-05 09:17| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| Linux | Linux |
Affected:
54309d65776755bcdb9dcf3744cd764fc1e254ea , < 1f09d67d390647f83f8f9d26382b0daa43756e6f
(git)
Affected: 54309d65776755bcdb9dcf3744cd764fc1e254ea , < eb7a5e4d14c8659cb97db6863316280e15f67209 (git) Affected: 54309d65776755bcdb9dcf3744cd764fc1e254ea , < f4b700c71802c81e6f9dce362ee7a0312c8377ba (git) Affected: 54309d65776755bcdb9dcf3744cd764fc1e254ea , < 49e57caf967a969f6b955c88805f2d160910aa12 (git) Affected: 54309d65776755bcdb9dcf3744cd764fc1e254ea , < c6abce60338aa2080973cd95be0aedad528bb41f (git) |
guessed | |
| Linux | Linux |
Affected:
5.9
Unaffected: 0 , < 5.9 (semver) Unaffected: 5.10.190 , ≤ 5.10.* (semver) Unaffected: 5.15.126 , ≤ 5.15.* (semver) Unaffected: 6.1.45 , ≤ 6.1.* (semver) Unaffected: 6.4.10 , ≤ 6.4.* (semver) Unaffected: 6.5 , ≤ * (original_commit_for_fix) |
guessed |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/mtd/nand/raw/fsl_upm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1f09d67d390647f83f8f9d26382b0daa43756e6f",
"status": "affected",
"version": "54309d65776755bcdb9dcf3744cd764fc1e254ea",
"versionType": "git"
},
{
"lessThan": "eb7a5e4d14c8659cb97db6863316280e15f67209",
"status": "affected",
"version": "54309d65776755bcdb9dcf3744cd764fc1e254ea",
"versionType": "git"
},
{
"lessThan": "f4b700c71802c81e6f9dce362ee7a0312c8377ba",
"status": "affected",
"version": "54309d65776755bcdb9dcf3744cd764fc1e254ea",
"versionType": "git"
},
{
"lessThan": "49e57caf967a969f6b955c88805f2d160910aa12",
"status": "affected",
"version": "54309d65776755bcdb9dcf3744cd764fc1e254ea",
"versionType": "git"
},
{
"lessThan": "c6abce60338aa2080973cd95be0aedad528bb41f",
"status": "affected",
"version": "54309d65776755bcdb9dcf3744cd764fc1e254ea",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/mtd/nand/raw/fsl_upm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.9"
},
{
"lessThan": "5.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.190",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.126",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.4.*",
"status": "unaffected",
"version": "6.4.10",
"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.10.190",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.126",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.45",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.4.10",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.5",
"versionStartIncluding": "5.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmtd: rawnand: fsl_upm: Fix an off-by one test in fun_exec_op()\n\n\u0027op-cs\u0027 is copied in \u0027fun-\u003emchip_number\u0027 which is used to access the\n\u0027mchip_offsets\u0027 and the \u0027rnb_gpio\u0027 arrays.\nThese arrays have NAND_MAX_CHIPS elements, so the index must be below this\nlimit.\n\nFix the sanity check in order to avoid the NAND_MAX_CHIPS value. This\nwould lead to out-of-bound accesses."
}
],
"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 fsl_upm NAND controller is reached only through the local MTD stack \u2014 /dev/mtdX ioctls or file I/O on a NAND-backed JFFS2/UBIFS volume. There is no network or remote-peer input into this driver.\nAC:L - There is no race, no memory-layout requirement, and no timing window; the faulty bounds check is the only guard on the index, and NAND operations can be driven repeatedly and deterministically by ordinary filesystem traffic.\nPR:L - An unprivileged local user reading or writing files on a mounted NAND-backed filesystem drives nand_exec_op() and thus fun_exec_op(); direct /dev/mtdX access is not required, so real root is not needed.\nUI:N - The code path executes as part of routine NAND I/O initiated by the attacker; no action by any other user or administrator is required.\nS:U - The out-of-bounds accesses stay within the kernel\u0027s own security authority \u2014 corrupted state and the wild pointer belong to the same kernel, with no VM, IOMMU, or sandbox boundary crossed.\nC:H - The out-of-bounds index yields an unintended reg_offs, so in_8() reads localbus MMIO outside the intended chip window straight into the caller\u0027s data buffer, and the adjacent struct field is read as a pointer \u2014 an out-of-bounds read that can disclose kernel and device state.\nI:H - The same bogus reg_offs is used by out_8() in the NAND_OP_DATA_OUT path, producing attacker-influenced writes to localbus registers outside the intended window; out-of-bounds writes are scored High.\nA:H - fun-\u003ernb_gpio[NAND_MAX_CHIPS] reads adjacent struct data as a struct gpio_desc pointer and dereferences it in gpiod_get_value_cansleep(), and the bogus MMIO offset can hit unmapped localbus space \u2014 either results in a kernel oops."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T09:17:18.597Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1f09d67d390647f83f8f9d26382b0daa43756e6f"
},
{
"url": "https://git.kernel.org/stable/c/eb7a5e4d14c8659cb97db6863316280e15f67209"
},
{
"url": "https://git.kernel.org/stable/c/f4b700c71802c81e6f9dce362ee7a0312c8377ba"
},
{
"url": "https://git.kernel.org/stable/c/49e57caf967a969f6b955c88805f2d160910aa12"
},
{
"url": "https://git.kernel.org/stable/c/c6abce60338aa2080973cd95be0aedad528bb41f"
}
],
"title": "mtd: rawnand: fsl_upm: Fix an off-by one test in fun_exec_op()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2023-54104",
"datePublished": "2025-12-24T13:06:29.354Z",
"dateReserved": "2025-12-24T13:02:52.517Z",
"dateUpdated": "2026-08-05T09:17:18.597Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2023-54104",
"date": "2026-11-08",
"epss": "0.00165",
"percentile": "0.05798"
},
"nvd": {
"cve": {
"affected": [
{
"affectedData": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/mtd/nand/raw/fsl_upm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1f09d67d390647f83f8f9d26382b0daa43756e6f",
"status": "affected",
"version": "54309d65776755bcdb9dcf3744cd764fc1e254ea",
"versionType": "git"
},
{
"lessThan": "eb7a5e4d14c8659cb97db6863316280e15f67209",
"status": "affected",
"version": "54309d65776755bcdb9dcf3744cd764fc1e254ea",
"versionType": "git"
},
{
"lessThan": "f4b700c71802c81e6f9dce362ee7a0312c8377ba",
"status": "affected",
"version": "54309d65776755bcdb9dcf3744cd764fc1e254ea",
"versionType": "git"
},
{
"lessThan": "49e57caf967a969f6b955c88805f2d160910aa12",
"status": "affected",
"version": "54309d65776755bcdb9dcf3744cd764fc1e254ea",
"versionType": "git"
},
{
"lessThan": "c6abce60338aa2080973cd95be0aedad528bb41f",
"status": "affected",
"version": "54309d65776755bcdb9dcf3744cd764fc1e254ea",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/mtd/nand/raw/fsl_upm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.9"
},
{
"lessThan": "5.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.190",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.126",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.4.*",
"status": "unaffected",
"version": "6.4.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.5",
"versionType": "original_commit_for_fix"
}
]
}
],
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmtd: rawnand: fsl_upm: Fix an off-by one test in fun_exec_op()\n\n\u0027op-cs\u0027 is copied in \u0027fun-\u003emchip_number\u0027 which is used to access the\n\u0027mchip_offsets\u0027 and the \u0027rnb_gpio\u0027 arrays.\nThese arrays have NAND_MAX_CHIPS elements, so the index must be below this\nlimit.\n\nFix the sanity check in order to avoid the NAND_MAX_CHIPS value. This\nwould lead to out-of-bound accesses."
}
],
"id": "CVE-2023-54104",
"lastModified": "2026-08-04T10:19:29.423",
"metrics": {
"cvssMetricV31": [
{
"cvssData": {
"attackComplexity": "LOW",
"attackVector": "LOCAL",
"availabilityImpact": "HIGH",
"baseScore": 7.8,
"baseSeverity": "HIGH",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"privilegesRequired": "LOW",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"exploitabilityScore": 1.8,
"impactScore": 5.9,
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"type": "Secondary"
}
]
},
"published": "2025-12-24T13:16:12.293",
"references": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/1f09d67d390647f83f8f9d26382b0daa43756e6f"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/49e57caf967a969f6b955c88805f2d160910aa12"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/c6abce60338aa2080973cd95be0aedad528bb41f"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/eb7a5e4d14c8659cb97db6863316280e15f67209"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/f4b700c71802c81e6f9dce362ee7a0312c8377ba"
}
],
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"vulnStatus": "Deferred"
}
},
"redhat_vex": {
"aggregate_severity": "Important",
"current_release_date": "2026-11-04T21:05:13+00:00",
"cve": "CVE-2023-54104",
"id": "CVE-2023-54104",
"initial_release_date": "2023-01-01T00:00:00+00:00",
"product_status:known_not_affected": "200",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "kernel: Linux kernel: Privilege escalation via out-of-bounds access in NAND flash driver",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2023/cve-2023-54104.json",
"version": "3"
}
}
}
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
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.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
How durations are calculated
Following the VTEM framework (Black Hat USA 2015), time to patch starts when the vendor or a coordinator was informed, total time to patch at discovery, and disclosure to patch at public disclosure; vendor response time runs from the report to its acknowledgement. Time to exploit and time unpatched start at the earliest discovery or report, falling back to public disclosure. Unpatched time ends at the first recorded patch, or the calculation time when no patch is recorded. Exploitation to patch shows the interval between those two events; a published proof of concept is a public exploit, not exploitation.
Each result shows its source dates. A negative interval means the end event came first; when date-only inputs leave the order open, the result says so. Date-only inputs are approximate. The earliest evidence wins: KEV report dates and sightings are labelled as such. Records describing another vulnerability are listed but never calculated from, and a PoC alone does not establish exploitation. Missing patch evidence does not prove that no patch exists. Filters below change the event list only.
Loading timeline…
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.
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.