CVE-2021-47352 (GCVE-0-2021-47352)
Vulnerability from cvelistv5
Published
2024-05-21 14:35
Modified
2026-08-05 08:47
Summary
In the Linux kernel, the following vulnerability has been resolved: virtio-net: Add validation for used length This adds validation for used length (might come from an untrusted device) to avoid data corruption or loss.
Impacted products
Vendor Product Version
Linux Linux Version: f6b10209b90d48a84f886ab2b317b5d2cbfe3143
Version: f6b10209b90d48a84f886ab2b317b5d2cbfe3143
Version: f6b10209b90d48a84f886ab2b317b5d2cbfe3143
Version: f6b10209b90d48a84f886ab2b317b5d2cbfe3143
Version: f6b10209b90d48a84f886ab2b317b5d2cbfe3143
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-04T05:32:08.505Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/c92298d228f61589dd21657af2bea95fc866b813"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/3133e01514c3c498f2b01ff210ee6134b70c663c"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/ba710baa1cc1b17a0483f7befe03e696efd17292"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/ad993a95c508417acdeb15244109e009e50d8758"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2021-47352",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T15:38:39.694535Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-11T17:33:48.464Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/virtio_net.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "c1b40d1959517ff2ea473d40eeab4691d6d62462",
              "status": "affected",
              "version": "f6b10209b90d48a84f886ab2b317b5d2cbfe3143",
              "versionType": "git"
            },
            {
              "lessThan": "c92298d228f61589dd21657af2bea95fc866b813",
              "status": "affected",
              "version": "f6b10209b90d48a84f886ab2b317b5d2cbfe3143",
              "versionType": "git"
            },
            {
              "lessThan": "3133e01514c3c498f2b01ff210ee6134b70c663c",
              "status": "affected",
              "version": "f6b10209b90d48a84f886ab2b317b5d2cbfe3143",
              "versionType": "git"
            },
            {
              "lessThan": "ba710baa1cc1b17a0483f7befe03e696efd17292",
              "status": "affected",
              "version": "f6b10209b90d48a84f886ab2b317b5d2cbfe3143",
              "versionType": "git"
            },
            {
              "lessThan": "ad993a95c508417acdeb15244109e009e50d8758",
              "status": "affected",
              "version": "f6b10209b90d48a84f886ab2b317b5d2cbfe3143",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/virtio_net.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.11"
            },
            {
              "lessThan": "4.11",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.4.*",
              "status": "unaffected",
              "version": "5.4.293",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.51",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.12.*",
              "status": "unaffected",
              "version": "5.12.18",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.13.*",
              "status": "unaffected",
              "version": "5.13.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "5.14",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.4.293",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.51",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.12.18",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.13.3",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.14",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvirtio-net: Add validation for used length\n\nThis adds validation for used length (might come\nfrom an untrusted device) to avoid data corruption\nor loss."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.4,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The used length is taken from the virtio used ring written by the device backend (hypervisor/vhost/VDUSE), not from packet payload, so a remote network peer cannot forge it; exploitation requires a locally attached malicious virtio-net device.\nAC:L - The attacker fully controls the used-ring length field and can reliably supply an oversized value on every completed RX buffer with no race or other conditions outside their control.\nPR:N - No privileges on the victim guest are required; a malicious virtio backend can kick the RX virtqueue and the NAPI path in receive_small/receive_mergeable processes the forged length automatically.\nUI:N - Exploitation occurs entirely in the automatic softirq/NAPI receive path when the device completes buffers; no user action is needed.\nS:U - Impact is confined to the guest kernel that runs the virtio-net driver; this is host/device-to-guest corruption within that OS authority, not a guest-to-host or cross-VM escape.\nC:H - An oversized used length can overlap skb_shared_info or drive XDP with a past-the-end data_end, yielding out-of-bounds reads of adjacent kernel memory; memory-corruption bugs of this class are scored C:H.\nI:H - The same oversized length enables skb_shared_info / buffer corruption and XDP out-of-bounds writes before the post-XDP mergeable check, which is exploitable for integrity compromise and control-flow hijacking as the fix notes (data corruption).\nA:H - Lengths beyond skb tailroom hit skb_over_panic, and corrupted RX/sk_buff state can oops or panic the guest kernel, so availability impact is High."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:47:24.845Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/c1b40d1959517ff2ea473d40eeab4691d6d62462"
        },
        {
          "url": "https://git.kernel.org/stable/c/c92298d228f61589dd21657af2bea95fc866b813"
        },
        {
          "url": "https://git.kernel.org/stable/c/3133e01514c3c498f2b01ff210ee6134b70c663c"
        },
        {
          "url": "https://git.kernel.org/stable/c/ba710baa1cc1b17a0483f7befe03e696efd17292"
        },
        {
          "url": "https://git.kernel.org/stable/c/ad993a95c508417acdeb15244109e009e50d8758"
        }
      ],
      "title": "virtio-net: Add validation for used length",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2021-47352",
    "datePublished": "2024-05-21T14:35:56.473Z",
    "dateReserved": "2024-05-21T14:28:16.985Z",
    "dateUpdated": "2026-08-05T08:47:24.845Z",
    "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/c92298d228f61589dd21657af2bea95fc866b813\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/3133e01514c3c498f2b01ff210ee6134b70c663c\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/ba710baa1cc1b17a0483f7befe03e696efd17292\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/ad993a95c508417acdeb15244109e009e50d8758\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-04T05:32:08.505Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2021-47352\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-10T15:38:39.694535Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:18.851Z\"}}], \"cna\": {\"title\": \"virtio-net: Add validation for used length\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 8.4, \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:L - The used length is taken from the virtio used ring written by the device backend (hypervisor/vhost/VDUSE), not from packet payload, so a remote network peer cannot forge it; exploitation requires a locally attached malicious virtio-net device.\\nAC:L - The attacker fully controls the used-ring length field and can reliably supply an oversized value on every completed RX buffer with no race or other conditions outside their control.\\nPR:N - No privileges on the victim guest are required; a malicious virtio backend can kick the RX virtqueue and the NAPI path in receive_small/receive_mergeable processes the forged length automatically.\\nUI:N - Exploitation occurs entirely in the automatic softirq/NAPI receive path when the device completes buffers; no user action is needed.\\nS:U - Impact is confined to the guest kernel that runs the virtio-net driver; this is host/device-to-guest corruption within that OS authority, not a guest-to-host or cross-VM escape.\\nC:H - An oversized used length can overlap skb_shared_info or drive XDP with a past-the-end data_end, yielding out-of-bounds reads of adjacent kernel memory; memory-corruption bugs of this class are scored C:H.\\nI:H - The same oversized length enables skb_shared_info / buffer corruption and XDP out-of-bounds writes before the post-XDP mergeable check, which is exploitable for integrity compromise and control-flow hijacking as the fix notes (data corruption).\\nA:H - Lengths beyond skb tailroom hit skb_over_panic, and corrupted RX/sk_buff state can oops or panic the guest kernel, so availability impact is High.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"f6b10209b90d48a84f886ab2b317b5d2cbfe3143\", \"lessThan\": \"c1b40d1959517ff2ea473d40eeab4691d6d62462\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"f6b10209b90d48a84f886ab2b317b5d2cbfe3143\", \"lessThan\": \"c92298d228f61589dd21657af2bea95fc866b813\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"f6b10209b90d48a84f886ab2b317b5d2cbfe3143\", \"lessThan\": \"3133e01514c3c498f2b01ff210ee6134b70c663c\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"f6b10209b90d48a84f886ab2b317b5d2cbfe3143\", \"lessThan\": \"ba710baa1cc1b17a0483f7befe03e696efd17292\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"f6b10209b90d48a84f886ab2b317b5d2cbfe3143\", \"lessThan\": \"ad993a95c508417acdeb15244109e009e50d8758\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/net/virtio_net.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"4.11\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"4.11\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.4.293\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.4.*\"}, {\"status\": \"unaffected\", \"version\": \"5.10.51\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.10.*\"}, {\"status\": \"unaffected\", \"version\": \"5.12.18\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.12.*\"}, {\"status\": \"unaffected\", \"version\": \"5.13.3\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.13.*\"}, {\"status\": \"unaffected\", \"version\": \"5.14\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"drivers/net/virtio_net.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/c1b40d1959517ff2ea473d40eeab4691d6d62462\"}, {\"url\": \"https://git.kernel.org/stable/c/c92298d228f61589dd21657af2bea95fc866b813\"}, {\"url\": \"https://git.kernel.org/stable/c/3133e01514c3c498f2b01ff210ee6134b70c663c\"}, {\"url\": \"https://git.kernel.org/stable/c/ba710baa1cc1b17a0483f7befe03e696efd17292\"}, {\"url\": \"https://git.kernel.org/stable/c/ad993a95c508417acdeb15244109e009e50d8758\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nvirtio-net: Add validation for used length\\n\\nThis adds validation for used length (might come\\nfrom an untrusted device) to avoid data corruption\\nor loss.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.4.293\", \"versionStartIncluding\": \"4.11\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.10.51\", \"versionStartIncluding\": \"4.11\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.12.18\", \"versionStartIncluding\": \"4.11\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.13.3\", \"versionStartIncluding\": \"4.11\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.14\", \"versionStartIncluding\": \"4.11\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T08:47:24.845Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2021-47352\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T08:47:24.845Z\", \"dateReserved\": \"2024-05-21T14:28:16.985Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-05-21T14:35:56.473Z\", \"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…