CVE-2021-47001 (GCVE-0-2021-47001)
Vulnerability from cvelistv5
Published
2024-02-28 08:13
Modified
2026-08-05 08:45
Summary
In the Linux kernel, the following vulnerability has been resolved: xprtrdma: Fix cwnd update ordering After a reconnect, the reply handler is opening the cwnd (and thus enabling more RPC Calls to be sent) /before/ rpcrdma_post_recvs() can post enough Receive WRs to receive their replies. This causes an RNR and the new connection is lost immediately. The race is most clearly exposed when KASAN and disconnect injection are enabled. This slows down rpcrdma_rep_create() enough to allow the send side to post a bunch of RPC Calls before the Receive completion handler can invoke ib_post_recv().
Impacted products
Vendor Product Version
Linux Linux Version: 2ae50ad68cd79224198b525f7bd645c9da98b6ff
Version: 2ae50ad68cd79224198b525f7bd645c9da98b6ff
Version: 2ae50ad68cd79224198b525f7bd645c9da98b6ff
Version: 2ae50ad68cd79224198b525f7bd645c9da98b6ff
Version: 3791c5982ba1eebf2900ee7ca7b9a89619c26d54
Version: 5.4.13   
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2021-47001",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-03-05T16:58:29.225383Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-06-04T17:14:54.379Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2025-04-11T22:03:12.324Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/eddae8be7944096419c2ae29477a45f767d0fcd4"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/8834ecb5df22b7ff3c9b0deba7726579bb613f95"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/19b5fa9489b5706bc878c3a522a7f771079e2fa0"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/35d8b10a25884050bb3b0149b62c3818ec59f77c"
          },
          {
            "url": "https://security.netapp.com/advisory/ntap-20250411-0001/"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/sunrpc/xprtrdma/rpc_rdma.c",
            "net/sunrpc/xprtrdma/verbs.c",
            "net/sunrpc/xprtrdma/xprt_rdma.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "eddae8be7944096419c2ae29477a45f767d0fcd4",
              "status": "affected",
              "version": "2ae50ad68cd79224198b525f7bd645c9da98b6ff",
              "versionType": "git"
            },
            {
              "lessThan": "8834ecb5df22b7ff3c9b0deba7726579bb613f95",
              "status": "affected",
              "version": "2ae50ad68cd79224198b525f7bd645c9da98b6ff",
              "versionType": "git"
            },
            {
              "lessThan": "19b5fa9489b5706bc878c3a522a7f771079e2fa0",
              "status": "affected",
              "version": "2ae50ad68cd79224198b525f7bd645c9da98b6ff",
              "versionType": "git"
            },
            {
              "lessThan": "35d8b10a25884050bb3b0149b62c3818ec59f77c",
              "status": "affected",
              "version": "2ae50ad68cd79224198b525f7bd645c9da98b6ff",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "3791c5982ba1eebf2900ee7ca7b9a89619c26d54",
              "versionType": "git"
            },
            {
              "lessThan": "5.5",
              "status": "affected",
              "version": "5.4.13",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/sunrpc/xprtrdma/rpc_rdma.c",
            "net/sunrpc/xprtrdma/verbs.c",
            "net/sunrpc/xprtrdma/xprt_rdma.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.5"
            },
            {
              "lessThan": "5.5",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.38",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.11.*",
              "status": "unaffected",
              "version": "5.11.22",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.12.*",
              "status": "unaffected",
              "version": "5.12.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "5.13",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.38",
                  "versionStartIncluding": "5.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.11.22",
                  "versionStartIncluding": "5.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.12.5",
                  "versionStartIncluding": "5.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.13",
                  "versionStartIncluding": "5.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.4.13",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxprtrdma: Fix cwnd update ordering\n\nAfter a reconnect, the reply handler is opening the cwnd (and thus\nenabling more RPC Calls to be sent) /before/ rpcrdma_post_recvs()\ncan post enough Receive WRs to receive their replies. This causes an\nRNR and the new connection is lost immediately.\n\nThe race is most clearly exposed when KASAN and disconnect injection\nare enabled. This slows down rpcrdma_rep_create() enough to allow\nthe send side to post a bunch of RPC Calls before the Receive\ncompletion handler can invoke ib_post_recv()."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.5,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - The vulnerable path is the NFS/RPC-over-RDMA client receive completion handler (rpcrdma_wc_receive \u2192 rpcrdma_reply_handler) processing network-delivered RDMA replies and credit grants from a remote peer. A malicious or compromised NFS/RDMA server reaches this code over RoCE/iWARP/IB fabrics without local code execution on the client.\nAC:L - A remote peer controls reconnect timing, the credit grant size that widens post_recvs work, and reply latency, so it can drive sends before receives are posted. This is an attacker-influenced race rather than a condition solely dependent on unrelated victim state.\nPR:N - The attacking NFS/RDMA peer needs no privileges on the victim client; triggering occurs via ordinary RDMA reply traffic on an already-established transport. Local CAP_SYS_ADMIN is only needed to create the mount, not for the peer to exploit the connected client.\nUI:N - In the highest-impact scenario the client already has an active NFS/RDMA mount to a compromised or malicious storage server, and exploitation proceeds during reconnect/reply handling without further victim action.\nS:U - Impact is limited to the victim host\u2019s NFS/RPC-over-RDMA transport availability and does not cross a VM, IOMMU, or other separate security authority.\nC:N - The bug only mis-orders cwnd update versus Receive posting, causing RNR and connection loss; there is no memory disclosure or corruption primitive.\nI:N - There is no attacker-controlled write, type confusion, or control-flow hijack; the failure mode is transport disconnect from RNR, not data or code integrity compromise.\nA:H - With rnr_retry_count set to 0, the race causes immediate RDMA connection loss after reconnect, denying NFS/RDMA service; a peer can repeat disconnect/reconnect to keep the mount unavailable."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:45:30.039Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/eddae8be7944096419c2ae29477a45f767d0fcd4"
        },
        {
          "url": "https://git.kernel.org/stable/c/8834ecb5df22b7ff3c9b0deba7726579bb613f95"
        },
        {
          "url": "https://git.kernel.org/stable/c/19b5fa9489b5706bc878c3a522a7f771079e2fa0"
        },
        {
          "url": "https://git.kernel.org/stable/c/35d8b10a25884050bb3b0149b62c3818ec59f77c"
        }
      ],
      "title": "xprtrdma: Fix cwnd update ordering",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2021-47001",
    "datePublished": "2024-02-28T08:13:23.482Z",
    "dateReserved": "2024-02-27T18:42:55.950Z",
    "dateUpdated": "2026-08-05T08:45:30.039Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/eddae8be7944096419c2ae29477a45f767d0fcd4\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/8834ecb5df22b7ff3c9b0deba7726579bb613f95\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/19b5fa9489b5706bc878c3a522a7f771079e2fa0\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/35d8b10a25884050bb3b0149b62c3818ec59f77c\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://security.netapp.com/advisory/ntap-20250411-0001/\"}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2025-04-11T22:03:12.324Z\"}}, {\"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2021-47001\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-03-05T16:58:29.225383Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-05-23T19:01:15.443Z\"}, \"title\": \"CISA ADP Vulnrichment\"}], \"cna\": {\"title\": \"xprtrdma: Fix cwnd update ordering\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 7.5, \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:N - The vulnerable path is the NFS/RPC-over-RDMA client receive completion handler (rpcrdma_wc_receive \\u2192 rpcrdma_reply_handler) processing network-delivered RDMA replies and credit grants from a remote peer. A malicious or compromised NFS/RDMA server reaches this code over RoCE/iWARP/IB fabrics without local code execution on the client.\\nAC:L - A remote peer controls reconnect timing, the credit grant size that widens post_recvs work, and reply latency, so it can drive sends before receives are posted. This is an attacker-influenced race rather than a condition solely dependent on unrelated victim state.\\nPR:N - The attacking NFS/RDMA peer needs no privileges on the victim client; triggering occurs via ordinary RDMA reply traffic on an already-established transport. Local CAP_SYS_ADMIN is only needed to create the mount, not for the peer to exploit the connected client.\\nUI:N - In the highest-impact scenario the client already has an active NFS/RDMA mount to a compromised or malicious storage server, and exploitation proceeds during reconnect/reply handling without further victim action.\\nS:U - Impact is limited to the victim host\\u2019s NFS/RPC-over-RDMA transport availability and does not cross a VM, IOMMU, or other separate security authority.\\nC:N - The bug only mis-orders cwnd update versus Receive posting, causing RNR and connection loss; there is no memory disclosure or corruption primitive.\\nI:N - There is no attacker-controlled write, type confusion, or control-flow hijack; the failure mode is transport disconnect from RNR, not data or code integrity compromise.\\nA:H - With rnr_retry_count set to 0, the race causes immediate RDMA connection loss after reconnect, denying NFS/RDMA service; a peer can repeat disconnect/reconnect to keep the mount unavailable.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"2ae50ad68cd79224198b525f7bd645c9da98b6ff\", \"lessThan\": \"eddae8be7944096419c2ae29477a45f767d0fcd4\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"2ae50ad68cd79224198b525f7bd645c9da98b6ff\", \"lessThan\": \"8834ecb5df22b7ff3c9b0deba7726579bb613f95\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"2ae50ad68cd79224198b525f7bd645c9da98b6ff\", \"lessThan\": \"19b5fa9489b5706bc878c3a522a7f771079e2fa0\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"2ae50ad68cd79224198b525f7bd645c9da98b6ff\", \"lessThan\": \"35d8b10a25884050bb3b0149b62c3818ec59f77c\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"3791c5982ba1eebf2900ee7ca7b9a89619c26d54\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"5.4.13\", \"lessThan\": \"5.5\", \"versionType\": \"semver\"}], \"programFiles\": [\"net/sunrpc/xprtrdma/rpc_rdma.c\", \"net/sunrpc/xprtrdma/verbs.c\", \"net/sunrpc/xprtrdma/xprt_rdma.h\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"5.5\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.5\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.10.38\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.10.*\"}, {\"status\": \"unaffected\", \"version\": \"5.11.22\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.11.*\"}, {\"status\": \"unaffected\", \"version\": \"5.12.5\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.12.*\"}, {\"status\": \"unaffected\", \"version\": \"5.13\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"net/sunrpc/xprtrdma/rpc_rdma.c\", \"net/sunrpc/xprtrdma/verbs.c\", \"net/sunrpc/xprtrdma/xprt_rdma.h\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/eddae8be7944096419c2ae29477a45f767d0fcd4\"}, {\"url\": \"https://git.kernel.org/stable/c/8834ecb5df22b7ff3c9b0deba7726579bb613f95\"}, {\"url\": \"https://git.kernel.org/stable/c/19b5fa9489b5706bc878c3a522a7f771079e2fa0\"}, {\"url\": \"https://git.kernel.org/stable/c/35d8b10a25884050bb3b0149b62c3818ec59f77c\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nxprtrdma: Fix cwnd update ordering\\n\\nAfter a reconnect, the reply handler is opening the cwnd (and thus\\nenabling more RPC Calls to be sent) /before/ rpcrdma_post_recvs()\\ncan post enough Receive WRs to receive their replies. This causes an\\nRNR and the new connection is lost immediately.\\n\\nThe race is most clearly exposed when KASAN and disconnect injection\\nare enabled. This slows down rpcrdma_rep_create() enough to allow\\nthe send side to post a bunch of RPC Calls before the Receive\\ncompletion handler can invoke ib_post_recv().\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.10.38\", \"versionStartIncluding\": \"5.5\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.11.22\", \"versionStartIncluding\": \"5.5\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.12.5\", \"versionStartIncluding\": \"5.5\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.13\", \"versionStartIncluding\": \"5.5\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionStartIncluding\": \"5.4.13\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T08:45:30.039Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2021-47001\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T08:45:30.039Z\", \"dateReserved\": \"2024-02-27T18:42:55.950Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-02-28T08:13:23.482Z\", \"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…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • 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.


Loading…

Loading…