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

CVE-2021-47107 (GCVE-0-2021-47107)

Vulnerability from cvelistv5 – Published: 2024-03-04 18:15 – Updated: 2026-08-05 08:46
VLAI
Title
NFSD: Fix READDIR buffer overflow
Summary
In the Linux kernel, the following vulnerability has been resolved: NFSD: Fix READDIR buffer overflow If a client sends a READDIR count argument that is too small (say, zero), then the buffer size calculation in the new init_dirlist helper functions results in an underflow, allowing the XDR stream functions to write beyond the actual buffer. This calculation has always been suspect. NFSD has never sanity- checked the READDIR count argument, but the old entry encoders managed the problem correctly. With the commits below, entry encoding changed, exposing the underflow to the pointer arithmetic in xdr_reserve_space(). Modern NFS clients attempt to retrieve as much data as possible for each READDIR request. Also, we have no unit tests that exercise the behavior of READDIR at the lower bound of @count values. Thus this case was missed during testing.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2024-07-24 14:23 UTC
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 37aa5e64022243e721b8334122997881177a4cfc , < 9e291a6a28d32545ed2fd959a8165144d1724df1 (git)
Affected: 7f87fc2d34d475225e78b7f5c4eabb121f4282b2 , < eabc0aab98e5218ceecd82069b0d6fdfff5ee885 (git)
Affected: 7f87fc2d34d475225e78b7f5c4eabb121f4282b2 , < 53b1119a6e5028b125f431a0116ba73510d82a72 (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.13
Unaffected: 0 , < 5.13 (semver)
Unaffected: 5.15.12 , ≤ 5.15.* (semver)
Unaffected: 5.16 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystem Affected: 0 , < * (custom)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2021-47107",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-07-24T14:23:20.067017Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-07-24T14:23:30.968Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-04T05:24:39.886Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/9e291a6a28d32545ed2fd959a8165144d1724df1"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/eabc0aab98e5218ceecd82069b0d6fdfff5ee885"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/53b1119a6e5028b125f431a0116ba73510d82a72"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "affected": [
          {
            "defaultStatus": "unknown",
            "product": "SIMATIC S7-1500 TM MFP - GNU/Linux subsystem",
            "vendor": "Siemens",
            "versions": [
              {
                "lessThan": "*",
                "status": "affected",
                "version": "0",
                "versionType": "custom"
              }
            ]
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-05-12T10:12:22.406Z",
          "orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
          "shortName": "siemens-SADP"
        },
        "references": [
          {
            "url": "https://cert-portal.siemens.com/productcert/html/ssa-265688.html"
          }
        ],
        "x_adpType": "supplier"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/nfsd/nfs3proc.c",
            "fs/nfsd/nfsproc.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "9e291a6a28d32545ed2fd959a8165144d1724df1",
              "status": "affected",
              "version": "37aa5e64022243e721b8334122997881177a4cfc",
              "versionType": "git"
            },
            {
              "lessThan": "eabc0aab98e5218ceecd82069b0d6fdfff5ee885",
              "status": "affected",
              "version": "7f87fc2d34d475225e78b7f5c4eabb121f4282b2",
              "versionType": "git"
            },
            {
              "lessThan": "53b1119a6e5028b125f431a0116ba73510d82a72",
              "status": "affected",
              "version": "7f87fc2d34d475225e78b7f5c4eabb121f4282b2",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/nfsd/nfs3proc.c",
            "fs/nfsd/nfsproc.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.13"
            },
            {
              "lessThan": "5.13",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.12",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "5.16",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.12",
                  "versionStartIncluding": "5.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.16",
                  "versionStartIncluding": "5.13",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nNFSD: Fix READDIR buffer overflow\n\nIf a client sends a READDIR count argument that is too small (say,\nzero), then the buffer size calculation in the new init_dirlist\nhelper functions results in an underflow, allowing the XDR stream\nfunctions to write beyond the actual buffer.\n\nThis calculation has always been suspect. NFSD has never sanity-\nchecked the READDIR count argument, but the old entry encoders\nmanaged the problem correctly.\n\nWith the commits below, entry encoding changed, exposing the\nunderflow to the pointer arithmetic in xdr_reserve_space().\n\nModern NFS clients attempt to retrieve as much data as possible\nfor each READDIR request. Also, we have no unit tests that\nexercise the behavior of READDIR at the lower bound of @count\nvalues. Thus this case was missed during testing."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 9.8,
            "baseSeverity": "CRITICAL",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - The vulnerability is in nfsd (fs/nfsd) READDIR handling and is triggered by a remote NFS client sending a crafted NFSv2/v3 READDIR/READDIRPLUS RPC over the network to the in-kernel NFS server.\nAC:L - The attacker fully controls the READDIR count argument and can reliably set it to zero (or another value \u003c 8) to cause the buflen underflow; no race or other conditions outside attacker control are required.\nPR:N - NFSv2/v3 exports default to allowing AUTH_NULL and AUTH_UNIX with no cryptographic authentication, so a remote attacker on an allowed client network can mount and issue READDIR without verified credentials.\nUI:N - Exploitation requires only attacker-sent NFS RPCs; no legitimate user action on the server or client is needed.\nS:U - The overflow corrupts kernel memory within the NFS server host\u0027s kernel authority and does not cross a VM, IOMMU, or other security boundary.\nC:H - The underflow enables an out-of-bounds write into adjacent RPC reply pages, which is kernel memory corruption that can be leveraged for information disclosure per CVSS kernel guidance.\nI:H - This is an attacker-triggerable out-of-bounds write via xdr_reserve_space() into unreserved pages, which can be exploited for arbitrary write primitives and control-flow hijacking.\nA:H - Walking page_ptr past reserved pages can hit a NULL page entry or corrupt kernel structures, causing a kernel oops/panic and denying service."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:46:02.458Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/9e291a6a28d32545ed2fd959a8165144d1724df1"
        },
        {
          "url": "https://git.kernel.org/stable/c/eabc0aab98e5218ceecd82069b0d6fdfff5ee885"
        },
        {
          "url": "https://git.kernel.org/stable/c/53b1119a6e5028b125f431a0116ba73510d82a72"
        }
      ],
      "title": "NFSD: Fix READDIR buffer overflow",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2021-47107",
    "datePublished": "2024-03-04T18:15:38.706Z",
    "dateReserved": "2024-03-04T18:12:48.835Z",
    "dateUpdated": "2026-08-05T08:46:02.458Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2021-47107",
      "date": "2026-09-15",
      "epss": "0.00847",
      "percentile": "0.56137"
    },
    "fkie_nvd": {
      "descriptions": "[{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nNFSD: Fix READDIR buffer overflow\\n\\nIf a client sends a READDIR count argument that is too small (say,\\nzero), then the buffer size calculation in the new init_dirlist\\nhelper functions results in an underflow, allowing the XDR stream\\nfunctions to write beyond the actual buffer.\\n\\nThis calculation has always been suspect. NFSD has never sanity-\\nchecked the READDIR count argument, but the old entry encoders\\nmanaged the problem correctly.\\n\\nWith the commits below, entry encoding changed, exposing the\\nunderflow to the pointer arithmetic in xdr_reserve_space().\\n\\nModern NFS clients attempt to retrieve as much data as possible\\nfor each READDIR request. Also, we have no unit tests that\\nexercise the behavior of READDIR at the lower bound of @count\\nvalues. Thus this case was missed during testing.\"}, {\"lang\": \"es\", \"value\": \"En el kernel de Linux, se resolvi\\u00f3 la siguiente vulnerabilidad: NFSD: corrige el desbordamiento del b\\u00fafer READDIR Si un cliente env\\u00eda un argumento de recuento READDIR que es demasiado peque\\u00f1o (digamos, cero), entonces el c\\u00e1lculo del tama\\u00f1o del b\\u00fafer en las nuevas funciones auxiliares init_dirlist da como resultado un subdesbordamiento, lo que permite que las funciones de flujo XDR escriban m\\u00e1s all\\u00e1 del b\\u00fafer real. Este c\\u00e1lculo siempre ha sido sospechoso. NFSD nunca ha verificado la cordura del argumento de conteo READDIR, pero los codificadores de entrada antiguos manejaron el problema correctamente. Con las confirmaciones a continuaci\\u00f3n, la codificaci\\u00f3n de entrada cambi\\u00f3, exponiendo el desbordamiento a la aritm\\u00e9tica del puntero en xdr_reserve_space(). Los clientes NFS modernos intentan recuperar la mayor cantidad de datos posible para cada solicitud READDIR. Adem\\u00e1s, no tenemos pruebas unitarias que ejerzan el comportamiento de READDIR en el l\\u00edmite inferior de los valores @count. Por lo tanto, este caso se pas\\u00f3 por alto durante las pruebas.\"}]",
      "id": "CVE-2021-47107",
      "lastModified": "2024-11-21T06:35:24.743",
      "published": "2024-03-04T19:15:18.793",
      "references": "[{\"url\": \"https://git.kernel.org/stable/c/53b1119a6e5028b125f431a0116ba73510d82a72\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/9e291a6a28d32545ed2fd959a8165144d1724df1\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/eabc0aab98e5218ceecd82069b0d6fdfff5ee885\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/53b1119a6e5028b125f431a0116ba73510d82a72\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/9e291a6a28d32545ed2fd959a8165144d1724df1\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/eabc0aab98e5218ceecd82069b0d6fdfff5ee885\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}]",
      "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "vulnStatus": "Awaiting Analysis"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2021-47107\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-03-04T19:15:18.793\",\"lastModified\":\"2026-08-04T10:16:46.147\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nNFSD: Fix READDIR buffer overflow\\n\\nIf a client sends a READDIR count argument that is too small (say,\\nzero), then the buffer size calculation in the new init_dirlist\\nhelper functions results in an underflow, allowing the XDR stream\\nfunctions to write beyond the actual buffer.\\n\\nThis calculation has always been suspect. NFSD has never sanity-\\nchecked the READDIR count argument, but the old entry encoders\\nmanaged the problem correctly.\\n\\nWith the commits below, entry encoding changed, exposing the\\nunderflow to the pointer arithmetic in xdr_reserve_space().\\n\\nModern NFS clients attempt to retrieve as much data as possible\\nfor each READDIR request. Also, we have no unit tests that\\nexercise the behavior of READDIR at the lower bound of @count\\nvalues. Thus this case was missed during testing.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se resolvi\u00f3 la siguiente vulnerabilidad: NFSD: corrige el desbordamiento del b\u00fafer READDIR Si un cliente env\u00eda un argumento de recuento READDIR que es demasiado peque\u00f1o (digamos, cero), entonces el c\u00e1lculo del tama\u00f1o del b\u00fafer en las nuevas funciones auxiliares init_dirlist da como resultado un subdesbordamiento, lo que permite que las funciones de flujo XDR escriban m\u00e1s all\u00e1 del b\u00fafer real. Este c\u00e1lculo siempre ha sido sospechoso. NFSD nunca ha verificado la cordura del argumento de conteo READDIR, pero los codificadores de entrada antiguos manejaron el problema correctamente. Con las confirmaciones a continuaci\u00f3n, la codificaci\u00f3n de entrada cambi\u00f3, exponiendo el desbordamiento a la aritm\u00e9tica del puntero en xdr_reserve_space(). Los clientes NFS modernos intentan recuperar la mayor cantidad de datos posible para cada solicitud READDIR. Adem\u00e1s, no tenemos pruebas unitarias que ejerzan el comportamiento de READDIR en el l\u00edmite inferior de los valores @count. Por lo tanto, este caso se pas\u00f3 por alto durante las pruebas.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"fs/nfsd/nfs3proc.c\",\"fs/nfsd/nfsproc.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"37aa5e64022243e721b8334122997881177a4cfc\",\"lessThan\":\"9e291a6a28d32545ed2fd959a8165144d1724df1\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"7f87fc2d34d475225e78b7f5c4eabb121f4282b2\",\"lessThan\":\"eabc0aab98e5218ceecd82069b0d6fdfff5ee885\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"7f87fc2d34d475225e78b7f5c4eabb121f4282b2\",\"lessThan\":\"53b1119a6e5028b125f431a0116ba73510d82a72\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"fs/nfsd/nfs3proc.c\",\"fs/nfsd/nfsproc.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.13\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.13\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.12\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.16\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]},{\"source\":\"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e\",\"affectedData\":[{\"vendor\":\"Siemens\",\"product\":\"SIMATIC S7-1500 TM MFP - GNU/Linux subsystem\",\"defaultStatus\":\"unknown\",\"versions\":[{\"version\":\"0\",\"lessThan\":\"*\",\"versionType\":\"custom\",\"status\":\"affected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":9.8,\"baseSeverity\":\"CRITICAL\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":3.9,\"impactScore\":5.9},{\"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}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2024-07-24T14:23:20.067017Z\",\"id\":\"CVE-2021-47107\",\"options\":[{\"exploitation\":\"none\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"partial\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-120\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.13\",\"versionEndExcluding\":\"5.15.12\",\"matchCriteriaId\":\"164CFFE2-DFF5-4AA3-B0D8-BDA39E712F48\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.16:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"357AA433-37E8-4323-BFB2-3038D6E4B414\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.16:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"A73429BA-C2D9-4D0C-A75F-06A1CA8B3983\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.16:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"F621B5E3-E99D-49E7-90B9-EC3B77C95383\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.16:rc4:*:*:*:*:*:*\",\"matchCriteriaId\":\"F7BFDCAA-1650-49AA-8462-407DD593F94F\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.16:rc5:*:*:*:*:*:*\",\"matchCriteriaId\":\"6EC9882F-866D-4ACB-8FBC-213D8D8436C8\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.16:rc6:*:*:*:*:*:*\",\"matchCriteriaId\":\"8A0915FE-A4AA-4C94-B783-CF29D81E7E54\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/53b1119a6e5028b125f431a0116ba73510d82a72\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Exploit\",\"Mailing List\",\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/9e291a6a28d32545ed2fd959a8165144d1724df1\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Exploit\",\"Mailing List\",\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/eabc0aab98e5218ceecd82069b0d6fdfff5ee885\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Exploit\",\"Mailing List\",\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/53b1119a6e5028b125f431a0116ba73510d82a72\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Exploit\",\"Mailing List\",\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/9e291a6a28d32545ed2fd959a8165144d1724df1\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Exploit\",\"Mailing List\",\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/eabc0aab98e5218ceecd82069b0d6fdfff5ee885\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Exploit\",\"Mailing List\",\"Patch\"]},{\"url\":\"https://cert-portal.siemens.com/productcert/html/ssa-265688.html\",\"source\":\"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-04T20:05:38+00:00",
      "cve": "CVE-2021-47107",
      "id": "CVE-2021-47107",
      "initial_release_date": "2021-01-01T00:00:00+00:00",
      "product_status:fixed": "120",
      "product_status:known_affected": "58",
      "product_status:known_not_affected": "108",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: NFSD: Fix READDIR buffer overflow",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2021/cve-2021-47107.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-05T17:10:52Z",
      "cve": "CVE-2021-47107",
      "id": "CVE-2021-47107",
      "initial_release_date": "2024-03-06T04:52:27Z",
      "product_status:known_affected": "260",
      "product_status:known_not_affected": "264",
      "product_status:recommended": "491",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2021-47107",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2021-47107.json",
      "version": "58"
    },
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/9e291a6a28d32545ed2fd959a8165144d1724df1\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/eabc0aab98e5218ceecd82069b0d6fdfff5ee885\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/53b1119a6e5028b125f431a0116ba73510d82a72\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-04T05:24:39.886Z\"}}, {\"affected\": [{\"vendor\": \"Siemens\", \"product\": \"SIMATIC S7-1500 TM MFP - GNU/Linux subsystem\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"*\", \"versionType\": \"custom\"}], \"defaultStatus\": \"unknown\"}], \"x_adpType\": \"supplier\", \"references\": [{\"url\": \"https://cert-portal.siemens.com/productcert/html/ssa-265688.html\"}], \"providerMetadata\": {\"orgId\": \"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e\", \"shortName\": \"siemens-SADP\", \"dateUpdated\": \"2026-05-12T10:12:22.406Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2021-47107\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-07-24T14:23:20.067017Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-07-24T14:23:26.949Z\"}}], \"cna\": {\"title\": \"NFSD: Fix READDIR buffer overflow\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 9.8, \"baseSeverity\": \"CRITICAL\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:N - The vulnerability is in nfsd (fs/nfsd) READDIR handling and is triggered by a remote NFS client sending a crafted NFSv2/v3 READDIR/READDIRPLUS RPC over the network to the in-kernel NFS server.\\nAC:L - The attacker fully controls the READDIR count argument and can reliably set it to zero (or another value \u003c 8) to cause the buflen underflow; no race or other conditions outside attacker control are required.\\nPR:N - NFSv2/v3 exports default to allowing AUTH_NULL and AUTH_UNIX with no cryptographic authentication, so a remote attacker on an allowed client network can mount and issue READDIR without verified credentials.\\nUI:N - Exploitation requires only attacker-sent NFS RPCs; no legitimate user action on the server or client is needed.\\nS:U - The overflow corrupts kernel memory within the NFS server host\u0027s kernel authority and does not cross a VM, IOMMU, or other security boundary.\\nC:H - The underflow enables an out-of-bounds write into adjacent RPC reply pages, which is kernel memory corruption that can be leveraged for information disclosure per CVSS kernel guidance.\\nI:H - This is an attacker-triggerable out-of-bounds write via xdr_reserve_space() into unreserved pages, which can be exploited for arbitrary write primitives and control-flow hijacking.\\nA:H - Walking page_ptr past reserved pages can hit a NULL page entry or corrupt kernel structures, causing a kernel oops/panic and denying service.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"37aa5e64022243e721b8334122997881177a4cfc\", \"lessThan\": \"9e291a6a28d32545ed2fd959a8165144d1724df1\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"7f87fc2d34d475225e78b7f5c4eabb121f4282b2\", \"lessThan\": \"eabc0aab98e5218ceecd82069b0d6fdfff5ee885\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"7f87fc2d34d475225e78b7f5c4eabb121f4282b2\", \"lessThan\": \"53b1119a6e5028b125f431a0116ba73510d82a72\", \"versionType\": \"git\"}], \"programFiles\": [\"fs/nfsd/nfs3proc.c\", \"fs/nfsd/nfsproc.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"5.13\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.13\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.15.12\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"5.16\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"fs/nfsd/nfs3proc.c\", \"fs/nfsd/nfsproc.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/9e291a6a28d32545ed2fd959a8165144d1724df1\"}, {\"url\": \"https://git.kernel.org/stable/c/eabc0aab98e5218ceecd82069b0d6fdfff5ee885\"}, {\"url\": \"https://git.kernel.org/stable/c/53b1119a6e5028b125f431a0116ba73510d82a72\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nNFSD: Fix READDIR buffer overflow\\n\\nIf a client sends a READDIR count argument that is too small (say,\\nzero), then the buffer size calculation in the new init_dirlist\\nhelper functions results in an underflow, allowing the XDR stream\\nfunctions to write beyond the actual buffer.\\n\\nThis calculation has always been suspect. NFSD has never sanity-\\nchecked the READDIR count argument, but the old entry encoders\\nmanaged the problem correctly.\\n\\nWith the commits below, entry encoding changed, exposing the\\nunderflow to the pointer arithmetic in xdr_reserve_space().\\n\\nModern NFS clients attempt to retrieve as much data as possible\\nfor each READDIR request. Also, we have no unit tests that\\nexercise the behavior of READDIR at the lower bound of @count\\nvalues. Thus this case was missed during testing.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.12\", \"versionStartIncluding\": \"5.13\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.16\", \"versionStartIncluding\": \"5.13\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T08:46:02.458Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2021-47107\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T08:46:02.458Z\", \"dateReserved\": \"2024-03-04T18:12:48.835Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-03-04T18:15:38.706Z\", \"assignerShortName\": \"Linux\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}



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…

Loading…