cve-2021-47506
Vulnerability from cvelistv5
Published
2024-05-24 15:01
Modified
2024-12-19 07:43
Severity ?
EPSS score ?
Summary
nfsd: fix use-after-free due to delegation race
References
{ "containers": { "adp": [ { "metrics": [ { "other": { "content": { "id": "CVE-2021-47506", "options": [ { "Exploitation": "none" }, { "Automatable": "no" }, { "Technical Impact": "total" } ], "role": "CISA Coordinator", "timestamp": "2024-05-29T17:04:47.932390Z", "version": "2.0.3" }, "type": "ssvc" } } ], "providerMetadata": { "dateUpdated": "2024-06-04T17:13:44.394Z", "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP" }, "title": "CISA ADP Vulnrichment" }, { "providerMetadata": { "dateUpdated": "2024-08-04T05:39:59.751Z", "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE" }, "references": [ { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/04a8d07f3d58308b92630045560799a3faa3ebce" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/348714018139c39533c55661a0c7c990671396b4" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/33645d3e22720cac1e4548f8fef57bf0649536ee" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/2becaa990b93cbd2928292c0b669d3abb6cf06d4" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/e0759696de6851d7536efddfdd2dfed4c4df1f09" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/eeb0711801f5e19ef654371b627682aed3b11373" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/148c816f10fd11df27ca6a9b3238cdd42fa72cd3" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/548ec0805c399c65ed66c6641be467f717833ab5" } ], "title": "CVE Program Container" } ], "cna": { "affected": [ { "defaultStatus": "unaffected", "product": "Linux", "programFiles": [ "fs/nfsd/nfs4state.c" ], "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "vendor": "Linux", "versions": [ { "lessThan": "04a8d07f3d58308b92630045560799a3faa3ebce", "status": "affected", "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2", "versionType": "git" }, { "lessThan": "348714018139c39533c55661a0c7c990671396b4", "status": "affected", "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2", "versionType": "git" }, { "lessThan": "33645d3e22720cac1e4548f8fef57bf0649536ee", "status": "affected", "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2", "versionType": "git" }, { "lessThan": "2becaa990b93cbd2928292c0b669d3abb6cf06d4", "status": "affected", "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2", "versionType": "git" }, { "lessThan": "e0759696de6851d7536efddfdd2dfed4c4df1f09", "status": "affected", "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2", "versionType": "git" }, { "lessThan": "eeb0711801f5e19ef654371b627682aed3b11373", "status": "affected", "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2", "versionType": "git" }, { "lessThan": "148c816f10fd11df27ca6a9b3238cdd42fa72cd3", "status": "affected", "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2", "versionType": "git" }, { "lessThan": "548ec0805c399c65ed66c6641be467f717833ab5", "status": "affected", "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2", "versionType": "git" } ] }, { "defaultStatus": "affected", "product": "Linux", "programFiles": [ "fs/nfsd/nfs4state.c" ], "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "vendor": "Linux", "versions": [ { "lessThanOrEqual": "4.4.*", "status": "unaffected", "version": "4.4.296", "versionType": "semver" }, { "lessThanOrEqual": "4.9.*", "status": "unaffected", "version": "4.9.294", "versionType": "semver" }, { "lessThanOrEqual": "4.14.*", "status": "unaffected", "version": "4.14.259", "versionType": "semver" }, { "lessThanOrEqual": "4.19.*", "status": "unaffected", "version": "4.19.222", "versionType": "semver" }, { "lessThanOrEqual": "5.4.*", "status": "unaffected", "version": "5.4.168", "versionType": "semver" }, { "lessThanOrEqual": "5.10.*", "status": "unaffected", "version": "5.10.85", "versionType": "semver" }, { "lessThanOrEqual": "5.15.*", "status": "unaffected", "version": "5.15.8", "versionType": "semver" }, { "lessThanOrEqual": "*", "status": "unaffected", "version": "5.16", "versionType": "original_commit_for_fix" } ] } ], "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: fix use-after-free due to delegation race\n\nA delegation break could arrive as soon as we\u0027ve called vfs_setlease. A\ndelegation break runs a callback which immediately (in\nnfsd4_cb_recall_prepare) adds the delegation to del_recall_lru. If we\nthen exit nfs4_set_delegation without hashing the delegation, it will be\nfreed as soon as the callback is done with it, without ever being\nremoved from del_recall_lru.\n\nSymptoms show up later as use-after-free or list corruption warnings,\nusually in the laundromat thread.\n\nI suspect aba2072f4523 \"nfsd: grant read delegations to clients holding\nwrites\" made this bug easier to hit, but I looked as far back as v3.0\nand it looks to me it already had the same problem. So I\u0027m not sure\nwhere the bug was introduced; it may have been there from the beginning." } ], "providerMetadata": { "dateUpdated": "2024-12-19T07:43:46.365Z", "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux" }, "references": [ { "url": "https://git.kernel.org/stable/c/04a8d07f3d58308b92630045560799a3faa3ebce" }, { "url": "https://git.kernel.org/stable/c/348714018139c39533c55661a0c7c990671396b4" }, { "url": "https://git.kernel.org/stable/c/33645d3e22720cac1e4548f8fef57bf0649536ee" }, { "url": "https://git.kernel.org/stable/c/2becaa990b93cbd2928292c0b669d3abb6cf06d4" }, { "url": "https://git.kernel.org/stable/c/e0759696de6851d7536efddfdd2dfed4c4df1f09" }, { "url": "https://git.kernel.org/stable/c/eeb0711801f5e19ef654371b627682aed3b11373" }, { "url": "https://git.kernel.org/stable/c/148c816f10fd11df27ca6a9b3238cdd42fa72cd3" }, { "url": "https://git.kernel.org/stable/c/548ec0805c399c65ed66c6641be467f717833ab5" } ], "title": "nfsd: fix use-after-free due to delegation race", "x_generator": { "engine": "bippy-5f407fcff5a0" } } }, "cveMetadata": { "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "assignerShortName": "Linux", "cveId": "CVE-2021-47506", "datePublished": "2024-05-24T15:01:52.746Z", "dateReserved": "2024-05-22T06:20:56.205Z", "dateUpdated": "2024-12-19T07:43:46.365Z", "state": "PUBLISHED" }, "dataType": "CVE_RECORD", "dataVersion": "5.1", "meta": { "nvd": "{\"cve\":{\"id\":\"CVE-2021-47506\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-05-24T15:15:11.197\",\"lastModified\":\"2025-01-06T20:44:45.983\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nnfsd: fix use-after-free due to delegation race\\n\\nA delegation break could arrive as soon as we\u0027ve called vfs_setlease. A\\ndelegation break runs a callback which immediately (in\\nnfsd4_cb_recall_prepare) adds the delegation to del_recall_lru. If we\\nthen exit nfs4_set_delegation without hashing the delegation, it will be\\nfreed as soon as the callback is done with it, without ever being\\nremoved from del_recall_lru.\\n\\nSymptoms show up later as use-after-free or list corruption warnings,\\nusually in the laundromat thread.\\n\\nI suspect aba2072f4523 \\\"nfsd: grant read delegations to clients holding\\nwrites\\\" made this bug easier to hit, but I looked as far back as v3.0\\nand it looks to me it already had the same problem. So I\u0027m not sure\\nwhere the bug was introduced; it may have been there from the beginning.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: nfsd: corrige el use-after-free debido a la ejecuci\u00f3n de delegaci\u00f3n. Una interrupci\u00f3n de la delegaci\u00f3n podr\u00eda llegar tan pronto como hayamos llamado a vfs_setlease. Una interrupci\u00f3n de la delegaci\u00f3n ejecuta una devoluci\u00f3n de llamada que inmediatamente (en nfsd4_cb_recall_prepare) agrega la delegaci\u00f3n a del_recall_lru. Si luego salimos de nfs4_set_delegation sin aplicar hash a la delegaci\u00f3n, se liberar\u00e1 tan pronto como finalice la devoluci\u00f3n de llamada, sin eliminarse nunca de del_recall_lru. Los s\u00edntomas aparecen m\u00e1s tarde como advertencias de use-after-free o de corrupci\u00f3n en la lista, generalmente en el hilo de la lavander\u00eda. Sospecho que aba2072f4523 \\\"nfsd: otorgar delegaciones de lectura a clientes que tienen escrituras\\\" hizo que este error fuera m\u00e1s f\u00e1cil de corregir, pero mir\u00e9 hasta la versi\u00f3n 3.0 y me parece que ya ten\u00eda el mismo problema. Entonces no estoy seguro de d\u00f3nde se introdujo el error; puede que haya estado ah\u00ed desde el principio.\"}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-416\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionEndExcluding\":\"4.4.296\",\"matchCriteriaId\":\"1FF3BCF2-4788-45E7-BDAC-845DEBF8922F\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"4.5\",\"versionEndExcluding\":\"4.9.294\",\"matchCriteriaId\":\"BEC14782-2EE3-4635-A927-91559E4F451C\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"4.10\",\"versionEndExcluding\":\"4.14.259\",\"matchCriteriaId\":\"390D64FF-1DB7-4DD1-ADEF-CE96BEA2607C\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"4.15\",\"versionEndExcluding\":\"4.19.222\",\"matchCriteriaId\":\"2D0D89BC-6CF8-4BFB-8C91-472348052528\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"4.20\",\"versionEndExcluding\":\"5.4.168\",\"matchCriteriaId\":\"195EBAA1-4CCE-4898-9351-F4A0DBCAA022\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.5\",\"versionEndExcluding\":\"5.10.85\",\"matchCriteriaId\":\"D9668578-08F7-4694-A86F-FCE448387A79\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.11\",\"versionEndExcluding\":\"5.15.8\",\"matchCriteriaId\":\"6664ACE2-F748-4AE5-B98B-58803B0B2C3E\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.15:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"E46C74C6-B76B-4C94-A6A4-FD2FFF62D644\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.15:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"60134C3A-06E4-48C1-B04F-2903732A4E56\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.15:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"0460DA88-8FE1-46A2-9DDA-1F1ABA552E71\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.15:rc4:*:*:*:*:*:*\",\"matchCriteriaId\":\"AF55383D-4DF2-45DC-93F7-571F4F978EAB\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/04a8d07f3d58308b92630045560799a3faa3ebce\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/148c816f10fd11df27ca6a9b3238cdd42fa72cd3\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/2becaa990b93cbd2928292c0b669d3abb6cf06d4\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/33645d3e22720cac1e4548f8fef57bf0649536ee\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/348714018139c39533c55661a0c7c990671396b4\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/548ec0805c399c65ed66c6641be467f717833ab5\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/e0759696de6851d7536efddfdd2dfed4c4df1f09\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/eeb0711801f5e19ef654371b627682aed3b11373\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/04a8d07f3d58308b92630045560799a3faa3ebce\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/148c816f10fd11df27ca6a9b3238cdd42fa72cd3\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/2becaa990b93cbd2928292c0b669d3abb6cf06d4\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/33645d3e22720cac1e4548f8fef57bf0649536ee\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/348714018139c39533c55661a0c7c990671396b4\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/548ec0805c399c65ed66c6641be467f717833ab5\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/e0759696de6851d7536efddfdd2dfed4c4df1f09\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/eeb0711801f5e19ef654371b627682aed3b11373\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]}]}}" } }
Loading...
Loading...
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.