CVE-2023-53777 (GCVE-0-2023-53777)
Vulnerability from cvelistv5 – Published: 2025-12-09 00:00 – Updated: 2025-12-09 00:00
VLAI?
Title
erofs: kill hooked chains to avoid loops on deduplicated compressed images
Summary
In the Linux kernel, the following vulnerability has been resolved:
erofs: kill hooked chains to avoid loops on deduplicated compressed images
After heavily stressing EROFS with several images which include a
hand-crafted image of repeated patterns for more than 46 days, I found
two chains could be linked with each other almost simultaneously and
form a loop so that the entire loop won't be submitted. As a
consequence, the corresponding file pages will remain locked forever.
It can be _only_ observed on data-deduplicated compressed images.
For example, consider two chains with five pclusters in total:
Chain 1: 2->3->4->5 -- The tail pcluster is 5;
Chain 2: 5->1->2 -- The tail pcluster is 2.
Chain 2 could link to Chain 1 with pcluster 5; and Chain 1 could link
to Chain 2 at the same time with pcluster 2.
Since hooked chains are all linked locklessly now, I have no idea how
to simply avoid the race. Instead, let's avoid hooked chains completely
until I could work out a proper way to fix this and end users finally
tell us that it's needed to add it back.
Actually, this optimization can be found with multi-threaded workloads
(especially even more often on deduplicated compressed images), yet I'm
not sure about the overall system impacts of not having this compared
with implementation complexity.
Severity ?
No CVSS data available.
Assigner
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Affected:
267f2492c8f71dac44399988b510f9bf6b074a51 , < d3b39ea24835ac03da1a30f93ae7c05d55a40191
(git)
Affected: 267f2492c8f71dac44399988b510f9bf6b074a51 , < b5b0d52f00e4bacb0ebdf47cd7016b0485fffad2 (git) Affected: 267f2492c8f71dac44399988b510f9bf6b074a51 , < 10c2b98a40d9044a3e97f4697ca6213bad7e19c2 (git) Affected: 267f2492c8f71dac44399988b510f9bf6b074a51 , < 967c28b23f6c89bb8eef6a046ea88afe0d7c1029 (git) |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/erofs/zdata.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d3b39ea24835ac03da1a30f93ae7c05d55a40191",
"status": "affected",
"version": "267f2492c8f71dac44399988b510f9bf6b074a51",
"versionType": "git"
},
{
"lessThan": "b5b0d52f00e4bacb0ebdf47cd7016b0485fffad2",
"status": "affected",
"version": "267f2492c8f71dac44399988b510f9bf6b074a51",
"versionType": "git"
},
{
"lessThan": "10c2b98a40d9044a3e97f4697ca6213bad7e19c2",
"status": "affected",
"version": "267f2492c8f71dac44399988b510f9bf6b074a51",
"versionType": "git"
},
{
"lessThan": "967c28b23f6c89bb8eef6a046ea88afe0d7c1029",
"status": "affected",
"version": "267f2492c8f71dac44399988b510f9bf6b074a51",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/erofs/zdata.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.3.*",
"status": "unaffected",
"version": "6.3.13",
"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": "6.1.39",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.3.13",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.4.4",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.5",
"versionStartIncluding": "6.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nerofs: kill hooked chains to avoid loops on deduplicated compressed images\n\nAfter heavily stressing EROFS with several images which include a\nhand-crafted image of repeated patterns for more than 46 days, I found\ntwo chains could be linked with each other almost simultaneously and\nform a loop so that the entire loop won\u0027t be submitted. As a\nconsequence, the corresponding file pages will remain locked forever.\n\nIt can be _only_ observed on data-deduplicated compressed images.\nFor example, consider two chains with five pclusters in total:\n\tChain 1: 2-\u003e3-\u003e4-\u003e5 -- The tail pcluster is 5;\n Chain 2: 5-\u003e1-\u003e2 -- The tail pcluster is 2.\n\nChain 2 could link to Chain 1 with pcluster 5; and Chain 1 could link\nto Chain 2 at the same time with pcluster 2.\n\nSince hooked chains are all linked locklessly now, I have no idea how\nto simply avoid the race. Instead, let\u0027s avoid hooked chains completely\nuntil I could work out a proper way to fix this and end users finally\ntell us that it\u0027s needed to add it back.\n\nActually, this optimization can be found with multi-threaded workloads\n(especially even more often on deduplicated compressed images), yet I\u0027m\nnot sure about the overall system impacts of not having this compared\nwith implementation complexity."
}
],
"providerMetadata": {
"dateUpdated": "2025-12-09T00:00:32.947Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d3b39ea24835ac03da1a30f93ae7c05d55a40191"
},
{
"url": "https://git.kernel.org/stable/c/b5b0d52f00e4bacb0ebdf47cd7016b0485fffad2"
},
{
"url": "https://git.kernel.org/stable/c/10c2b98a40d9044a3e97f4697ca6213bad7e19c2"
},
{
"url": "https://git.kernel.org/stable/c/967c28b23f6c89bb8eef6a046ea88afe0d7c1029"
}
],
"title": "erofs: kill hooked chains to avoid loops on deduplicated compressed images",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2023-53777",
"datePublished": "2025-12-09T00:00:32.947Z",
"dateReserved": "2025-12-08T23:58:35.271Z",
"dateUpdated": "2025-12-09T00:00:32.947Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"nvd": "{\"cve\":{\"id\":\"CVE-2023-53777\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-12-09T01:16:48.753\",\"lastModified\":\"2025-12-09T18:37:13.640\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nerofs: kill hooked chains to avoid loops on deduplicated compressed images\\n\\nAfter heavily stressing EROFS with several images which include a\\nhand-crafted image of repeated patterns for more than 46 days, I found\\ntwo chains could be linked with each other almost simultaneously and\\nform a loop so that the entire loop won\u0027t be submitted. As a\\nconsequence, the corresponding file pages will remain locked forever.\\n\\nIt can be _only_ observed on data-deduplicated compressed images.\\nFor example, consider two chains with five pclusters in total:\\n\\tChain 1: 2-\u003e3-\u003e4-\u003e5 -- The tail pcluster is 5;\\n Chain 2: 5-\u003e1-\u003e2 -- The tail pcluster is 2.\\n\\nChain 2 could link to Chain 1 with pcluster 5; and Chain 1 could link\\nto Chain 2 at the same time with pcluster 2.\\n\\nSince hooked chains are all linked locklessly now, I have no idea how\\nto simply avoid the race. Instead, let\u0027s avoid hooked chains completely\\nuntil I could work out a proper way to fix this and end users finally\\ntell us that it\u0027s needed to add it back.\\n\\nActually, this optimization can be found with multi-threaded workloads\\n(especially even more often on deduplicated compressed images), yet I\u0027m\\nnot sure about the overall system impacts of not having this compared\\nwith implementation complexity.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/10c2b98a40d9044a3e97f4697ca6213bad7e19c2\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/967c28b23f6c89bb8eef6a046ea88afe0d7c1029\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/b5b0d52f00e4bacb0ebdf47cd7016b0485fffad2\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/d3b39ea24835ac03da1a30f93ae7c05d55a40191\",\"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…