GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

FKIE_CVE-2021-47506

Vulnerability from fkie_nvd - Published: 2024-05-24 15:15 - Updated: 2026-08-04 10:17
Summary
In the Linux kernel, the following vulnerability has been resolved: nfsd: fix use-after-free due to delegation race A delegation break could arrive as soon as we've called vfs_setlease. A delegation break runs a callback which immediately (in nfsd4_cb_recall_prepare) adds the delegation to del_recall_lru. If we then exit nfs4_set_delegation without hashing the delegation, it will be freed as soon as the callback is done with it, without ever being removed from del_recall_lru. Symptoms show up later as use-after-free or list corruption warnings, usually in the laundromat thread. I suspect aba2072f4523 "nfsd: grant read delegations to clients holding writes" made this bug easier to hit, but I looked as far back as v3.0 and it looks to me it already had the same problem. So I'm not sure where the bug was introduced; it may have been there from the beginning.
References
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/04a8d07f3d58308b92630045560799a3faa3ebcePatch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/148c816f10fd11df27ca6a9b3238cdd42fa72cd3Patch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/2becaa990b93cbd2928292c0b669d3abb6cf06d4Patch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/33645d3e22720cac1e4548f8fef57bf0649536eePatch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/348714018139c39533c55661a0c7c990671396b4Patch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/548ec0805c399c65ed66c6641be467f717833ab5Patch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/e0759696de6851d7536efddfdd2dfed4c4df1f09Patch
416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/eeb0711801f5e19ef654371b627682aed3b11373Patch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/04a8d07f3d58308b92630045560799a3faa3ebcePatch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/148c816f10fd11df27ca6a9b3238cdd42fa72cd3Patch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/2becaa990b93cbd2928292c0b669d3abb6cf06d4Patch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/33645d3e22720cac1e4548f8fef57bf0649536eePatch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/348714018139c39533c55661a0c7c990671396b4Patch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/548ec0805c399c65ed66c6641be467f717833ab5Patch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/e0759696de6851d7536efddfdd2dfed4c4df1f09Patch
af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/eeb0711801f5e19ef654371b627682aed3b11373Patch

{
  "affected": [
    {
      "affectedData": [
        {
          "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": "dff1399f8addf7129c49bb2227469da79cc30b47",
              "versionType": "git"
            },
            {
              "lessThan": "348714018139c39533c55661a0c7c990671396b4",
              "status": "affected",
              "version": "dff1399f8addf7129c49bb2227469da79cc30b47",
              "versionType": "git"
            },
            {
              "lessThan": "33645d3e22720cac1e4548f8fef57bf0649536ee",
              "status": "affected",
              "version": "dff1399f8addf7129c49bb2227469da79cc30b47",
              "versionType": "git"
            },
            {
              "lessThan": "2becaa990b93cbd2928292c0b669d3abb6cf06d4",
              "status": "affected",
              "version": "dff1399f8addf7129c49bb2227469da79cc30b47",
              "versionType": "git"
            },
            {
              "lessThan": "e0759696de6851d7536efddfdd2dfed4c4df1f09",
              "status": "affected",
              "version": "dff1399f8addf7129c49bb2227469da79cc30b47",
              "versionType": "git"
            },
            {
              "lessThan": "eeb0711801f5e19ef654371b627682aed3b11373",
              "status": "affected",
              "version": "dff1399f8addf7129c49bb2227469da79cc30b47",
              "versionType": "git"
            },
            {
              "lessThan": "148c816f10fd11df27ca6a9b3238cdd42fa72cd3",
              "status": "affected",
              "version": "dff1399f8addf7129c49bb2227469da79cc30b47",
              "versionType": "git"
            },
            {
              "lessThan": "548ec0805c399c65ed66c6641be467f717833ab5",
              "status": "affected",
              "version": "dff1399f8addf7129c49bb2227469da79cc30b47",
              "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": [
            {
              "status": "affected",
              "version": "3.17"
            },
            {
              "lessThan": "3.17",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "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"
            }
          ]
        }
      ],
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "cpeMatch": [
            {
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "matchCriteriaId": "1FF3BCF2-4788-45E7-BDAC-845DEBF8922F",
              "versionEndExcluding": "4.4.296",
              "vulnerable": true
            },
            {
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "matchCriteriaId": "BEC14782-2EE3-4635-A927-91559E4F451C",
              "versionEndExcluding": "4.9.294",
              "versionStartIncluding": "4.5",
              "vulnerable": true
            },
            {
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "matchCriteriaId": "390D64FF-1DB7-4DD1-ADEF-CE96BEA2607C",
              "versionEndExcluding": "4.14.259",
              "versionStartIncluding": "4.10",
              "vulnerable": true
            },
            {
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "matchCriteriaId": "2D0D89BC-6CF8-4BFB-8C91-472348052528",
              "versionEndExcluding": "4.19.222",
              "versionStartIncluding": "4.15",
              "vulnerable": true
            },
            {
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "matchCriteriaId": "195EBAA1-4CCE-4898-9351-F4A0DBCAA022",
              "versionEndExcluding": "5.4.168",
              "versionStartIncluding": "4.20",
              "vulnerable": true
            },
            {
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "matchCriteriaId": "D9668578-08F7-4694-A86F-FCE448387A79",
              "versionEndExcluding": "5.10.85",
              "versionStartIncluding": "5.5",
              "vulnerable": true
            },
            {
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "matchCriteriaId": "6664ACE2-F748-4AE5-B98B-58803B0B2C3E",
              "versionEndExcluding": "5.15.8",
              "versionStartIncluding": "5.11",
              "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",
              "vulnerable": true
            }
          ],
          "negate": false,
          "operator": "OR"
        }
      ]
    }
  ],
  "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."
    }
  ],
  "id": "CVE-2021-47506",
  "lastModified": "2026-08-04T10:17:06.590",
  "metrics": {
    "cvssMetricV31": [
      {
        "cvssData": {
          "attackComplexity": "LOW",
          "attackVector": "NETWORK",
          "availabilityImpact": "HIGH",
          "baseScore": 9.8,
          "baseSeverity": "CRITICAL",
          "confidentialityImpact": "HIGH",
          "integrityImpact": "HIGH",
          "privilegesRequired": "NONE",
          "scope": "UNCHANGED",
          "userInteraction": "NONE",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
          "version": "3.1"
        },
        "exploitabilityScore": 3.9,
        "impactScore": 5.9,
        "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "type": "Secondary"
      },
      {
        "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": "nvd@nist.gov",
        "type": "Primary"
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "id": "CVE-2021-47506",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "total"
            }
          ],
          "role": "CISA Coordinator",
          "timestamp": "2024-05-29T17:04:47.932390Z",
          "version": "2.0.3"
        }
      }
    ]
  },
  "published": "2024-05-24T15:15:11.197",
  "references": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ],
      "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": "af854a3a-2127-422b-91ae-364da2661108",
      "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"
    }
  ],
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "vulnStatus": "Modified",
  "weaknesses": [
    {
      "description": [
        {
          "lang": "en",
          "value": "CWE-416"
        }
      ],
      "source": "nvd@nist.gov",
      "type": "Primary"
    }
  ]
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

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…

Detection rules are retrieved from Rulezet.

Loading…

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…