CVE-2024-35793 (GCVE-0-2024-35793)
Vulnerability from cvelistv5 – Published: 2024-05-17 12:24 – Updated: 2025-05-04 09:05
VLAI?
Title
debugfs: fix wait/cancellation handling during remove
Summary
In the Linux kernel, the following vulnerability has been resolved:
debugfs: fix wait/cancellation handling during remove
Ben Greear further reports deadlocks during concurrent debugfs
remove while files are being accessed, even though the code in
question now uses debugfs cancellations. Turns out that despite
all the review on the locking, we missed completely that the
logic is wrong: if the refcount hits zero we can finish (and
need not wait for the completion), but if it doesn't we have
to trigger all the cancellations. As written, we can _never_
get into the loop triggering the cancellations. Fix this, and
explain it better while at it.
Severity ?
No CVSS data available.
Assigner
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Affected:
8c88a474357ead632b07c70bf7f119ace8c3b39e , < e88b5ae01901c4a655a53158397746334778a57b
(git)
Affected: 8c88a474357ead632b07c70bf7f119ace8c3b39e , < 3d08cca5fd0aabb62b7015067ab40913b33da906 (git) Affected: 8c88a474357ead632b07c70bf7f119ace8c3b39e , < 952c3fce297f12c7ff59380adb66b564e2bc9b64 (git) |
||
{
"containers": {
"adp": [
{
"providerMetadata": {
"dateUpdated": "2024-08-02T03:21:47.366Z",
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE"
},
"references": [
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/e88b5ae01901c4a655a53158397746334778a57b"
},
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/3d08cca5fd0aabb62b7015067ab40913b33da906"
},
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/952c3fce297f12c7ff59380adb66b564e2bc9b64"
}
],
"title": "CVE Program Container"
},
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2024-35793",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2024-09-10T15:42:47.871301Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2024-09-11T17:33:22.657Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/debugfs/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e88b5ae01901c4a655a53158397746334778a57b",
"status": "affected",
"version": "8c88a474357ead632b07c70bf7f119ace8c3b39e",
"versionType": "git"
},
{
"lessThan": "3d08cca5fd0aabb62b7015067ab40913b33da906",
"status": "affected",
"version": "8c88a474357ead632b07c70bf7f119ace8c3b39e",
"versionType": "git"
},
{
"lessThan": "952c3fce297f12c7ff59380adb66b564e2bc9b64",
"status": "affected",
"version": "8c88a474357ead632b07c70bf7f119ace8c3b39e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/debugfs/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.7.*",
"status": "unaffected",
"version": "6.7.12",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.8.*",
"status": "unaffected",
"version": "6.8.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.9",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.7.12",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.8.3",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.9",
"versionStartIncluding": "6.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndebugfs: fix wait/cancellation handling during remove\n\nBen Greear further reports deadlocks during concurrent debugfs\nremove while files are being accessed, even though the code in\nquestion now uses debugfs cancellations. Turns out that despite\nall the review on the locking, we missed completely that the\nlogic is wrong: if the refcount hits zero we can finish (and\nneed not wait for the completion), but if it doesn\u0027t we have\nto trigger all the cancellations. As written, we can _never_\nget into the loop triggering the cancellations. Fix this, and\nexplain it better while at it."
}
],
"providerMetadata": {
"dateUpdated": "2025-05-04T09:05:32.438Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e88b5ae01901c4a655a53158397746334778a57b"
},
{
"url": "https://git.kernel.org/stable/c/3d08cca5fd0aabb62b7015067ab40913b33da906"
},
{
"url": "https://git.kernel.org/stable/c/952c3fce297f12c7ff59380adb66b564e2bc9b64"
}
],
"title": "debugfs: fix wait/cancellation handling during remove",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2024-35793",
"datePublished": "2024-05-17T12:24:56.630Z",
"dateReserved": "2024-05-17T12:19:12.339Z",
"dateUpdated": "2025-05-04T09:05:32.438Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.1",
"vulnerability-lookup:meta": {
"vulnrichment": {
"containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/e88b5ae01901c4a655a53158397746334778a57b\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/3d08cca5fd0aabb62b7015067ab40913b33da906\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/952c3fce297f12c7ff59380adb66b564e2bc9b64\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-02T03:21:47.366Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-35793\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-10T15:42:47.871301Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:16.398Z\"}}], \"cna\": {\"title\": \"debugfs: fix wait/cancellation handling during remove\", \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"8c88a474357ead632b07c70bf7f119ace8c3b39e\", \"lessThan\": \"e88b5ae01901c4a655a53158397746334778a57b\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"8c88a474357ead632b07c70bf7f119ace8c3b39e\", \"lessThan\": \"3d08cca5fd0aabb62b7015067ab40913b33da906\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"8c88a474357ead632b07c70bf7f119ace8c3b39e\", \"lessThan\": \"952c3fce297f12c7ff59380adb66b564e2bc9b64\", \"versionType\": \"git\"}], \"programFiles\": [\"fs/debugfs/inode.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"6.7\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"6.7\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"6.7.12\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.7.*\"}, {\"status\": \"unaffected\", \"version\": \"6.8.3\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.8.*\"}, {\"status\": \"unaffected\", \"version\": \"6.9\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"fs/debugfs/inode.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/e88b5ae01901c4a655a53158397746334778a57b\"}, {\"url\": \"https://git.kernel.org/stable/c/3d08cca5fd0aabb62b7015067ab40913b33da906\"}, {\"url\": \"https://git.kernel.org/stable/c/952c3fce297f12c7ff59380adb66b564e2bc9b64\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\ndebugfs: fix wait/cancellation handling during remove\\n\\nBen Greear further reports deadlocks during concurrent debugfs\\nremove while files are being accessed, even though the code in\\nquestion now uses debugfs cancellations. Turns out that despite\\nall the review on the locking, we missed completely that the\\nlogic is wrong: if the refcount hits zero we can finish (and\\nneed not wait for the completion), but if it doesn\u0027t we have\\nto trigger all the cancellations. As written, we can _never_\\nget into the loop triggering the cancellations. Fix this, and\\nexplain it better while at it.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.7.12\", \"versionStartIncluding\": \"6.7\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.8.3\", \"versionStartIncluding\": \"6.7\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.9\", \"versionStartIncluding\": \"6.7\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2025-05-04T09:05:32.438Z\"}}}",
"cveMetadata": "{\"cveId\": \"CVE-2024-35793\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2025-05-04T09:05:32.438Z\", \"dateReserved\": \"2024-05-17T12:19:12.339Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-05-17T12:24:56.630Z\", \"assignerShortName\": \"Linux\"}",
"dataType": "CVE_RECORD",
"dataVersion": "5.1"
}
}
}
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…