cve-2024-58099
Vulnerability from cvelistv5
Published
2025-04-29 11:45
Modified
2025-05-04 10:10
Severity ?
Summary
vmxnet3: Fix packet corruption in vmxnet3_xdp_xmit_frame
Impacted products
LinuxLinux
LinuxLinux
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/vmxnet3/vmxnet3_xdp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "59ba6cdadb9c26b606a365eb9c9b25eb2052622d",
              "status": "affected",
              "version": "54f00cce11786742bd11e5e68c3bf85e6dc048c9",
              "versionType": "git"
            },
            {
              "lessThan": "f82eb34fb59a8fb96c19f4f492c20eb774140bb5",
              "status": "affected",
              "version": "54f00cce11786742bd11e5e68c3bf85e6dc048c9",
              "versionType": "git"
            },
            {
              "lessThan": "4678adf94da4a9e9683817b246b58ce15fb81782",
              "status": "affected",
              "version": "54f00cce11786742bd11e5e68c3bf85e6dc048c9",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/vmxnet3/vmxnet3_xdp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.6"
            },
            {
              "lessThan": "6.6",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.59",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.11.*",
              "status": "unaffected",
              "version": "6.11.6",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.12",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.59",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.11.6",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvmxnet3: Fix packet corruption in vmxnet3_xdp_xmit_frame\n\nAndrew and Nikolay reported connectivity issues with Cilium\u0027s service\nload-balancing in case of vmxnet3.\n\nIf a BPF program for native XDP adds an encapsulation header such as\nIPIP and transmits the packet out the same interface, then in case\nof vmxnet3 a corrupted packet is being sent and subsequently dropped\non the path.\n\nvmxnet3_xdp_xmit_frame() which is called e.g. via vmxnet3_run_xdp()\nthrough vmxnet3_xdp_xmit_back() calculates an incorrect DMA address:\n\n  page = virt_to_page(xdpf-\u003edata);\n  tbi-\u003edma_addr = page_pool_get_dma_addr(page) +\n                  VMXNET3_XDP_HEADROOM;\n  dma_sync_single_for_device(\u0026adapter-\u003epdev-\u003edev,\n                             tbi-\u003edma_addr, buf_size,\n                             DMA_TO_DEVICE);\n\nThe above assumes a fixed offset (VMXNET3_XDP_HEADROOM), but the XDP\nBPF program could have moved xdp-\u003edata. While the passed buf_size is\ncorrect (xdpf-\u003elen), the dma_addr needs to have a dynamic offset which\ncan be calculated as xdpf-\u003edata - (void *)xdpf, that is, xdp-\u003edata -\nxdp-\u003edata_hard_start."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2025-05-04T10:10:03.443Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/59ba6cdadb9c26b606a365eb9c9b25eb2052622d"
        },
        {
          "url": "https://git.kernel.org/stable/c/f82eb34fb59a8fb96c19f4f492c20eb774140bb5"
        },
        {
          "url": "https://git.kernel.org/stable/c/4678adf94da4a9e9683817b246b58ce15fb81782"
        }
      ],
      "title": "vmxnet3: Fix packet corruption in vmxnet3_xdp_xmit_frame",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-58099",
    "datePublished": "2025-04-29T11:45:30.997Z",
    "dateReserved": "2025-03-06T15:52:09.189Z",
    "dateUpdated": "2025-05-04T10:10:03.443Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-58099\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-04-29T12:15:31.053\",\"lastModified\":\"2025-05-09T19:36:14.523\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nvmxnet3: Fix packet corruption in vmxnet3_xdp_xmit_frame\\n\\nAndrew and Nikolay reported connectivity issues with Cilium\u0027s service\\nload-balancing in case of vmxnet3.\\n\\nIf a BPF program for native XDP adds an encapsulation header such as\\nIPIP and transmits the packet out the same interface, then in case\\nof vmxnet3 a corrupted packet is being sent and subsequently dropped\\non the path.\\n\\nvmxnet3_xdp_xmit_frame() which is called e.g. via vmxnet3_run_xdp()\\nthrough vmxnet3_xdp_xmit_back() calculates an incorrect DMA address:\\n\\n  page = virt_to_page(xdpf-\u003edata);\\n  tbi-\u003edma_addr = page_pool_get_dma_addr(page) +\\n                  VMXNET3_XDP_HEADROOM;\\n  dma_sync_single_for_device(\u0026adapter-\u003epdev-\u003edev,\\n                             tbi-\u003edma_addr, buf_size,\\n                             DMA_TO_DEVICE);\\n\\nThe above assumes a fixed offset (VMXNET3_XDP_HEADROOM), but the XDP\\nBPF program could have moved xdp-\u003edata. While the passed buf_size is\\ncorrect (xdpf-\u003elen), the dma_addr needs to have a dynamic offset which\\ncan be calculated as xdpf-\u003edata - (void *)xdpf, that is, xdp-\u003edata -\\nxdp-\u003edata_hard_start.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: vmxnet3: Se corrige la corrupci\u00f3n de paquetes en vmxnet3_xdp_xmit_frame. Andrew y Nikolay informaron sobre problemas de conectividad con el balanceo de carga del servicio de Cilium en el caso de vmxnet3. Si un programa BPF para XDP nativo a\u00f1ade un encabezado de encapsulaci\u00f3n como IPIP y transmite el paquete por la misma interfaz, en el caso de vmxnet3 se env\u00eda un paquete da\u00f1ado que posteriormente se descarta en la ruta. vmxnet3_xdp_xmit_frame(), que se llama, por ejemplo, mediante vmxnet3_run_xdp() a trav\u00e9s de vmxnet3_xdp_xmit_back(), calcula una direcci\u00f3n DMA incorrecta: page = virt_to_page(xdpf-\u0026gt;data); tbi-\u0026gt;dma_addr = page_pool_get_dma_addr(page) + VMXNET3_XDP_HEADROOM; dma_sync_single_for_device(\u0026amp;adapter-\u0026gt;pdev-\u0026gt;dev, tbi-\u0026gt;dma_addr, buf_size, DMA_TO_DEVICE); Lo anterior asume un desplazamiento fijo (VMXNET3_XDP_HEADROOM), pero el programa XDP BPF podr\u00eda haber movido xdp-\u0026gt;data. Si bien el buf_size pasado es correcto (xdpf-\u0026gt;len), dma_addr debe tener un desplazamiento din\u00e1mico que se puede calcular como xdpf-\u0026gt;data - (void *)xdpf, es decir, xdp-\u0026gt;data - xdp-\u0026gt;data_hard_start.\"}],\"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:N/I:N/A:H\",\"baseScore\":5.5,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":3.6}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-787\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.6\",\"versionEndExcluding\":\"6.6.59\",\"matchCriteriaId\":\"7DD6A680-9CD9-4AC0-B481-31440B98FFD9\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.11.6\",\"matchCriteriaId\":\"E4486B12-007B-4794-9857-F07145637AA1\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"7F361E1D-580F-4A2D-A509-7615F73167A1\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"925478D0-3E3D-4E6F-ACD5-09F28D5DF82C\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"3C95E234-D335-4B6C-96BF-E2CEBD8654ED\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/4678adf94da4a9e9683817b246b58ce15fb81782\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/59ba6cdadb9c26b606a365eb9c9b25eb2052622d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/f82eb34fb59a8fb96c19f4f492c20eb774140bb5\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading...

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.