CVE-2025-38533 (GCVE-0-2025-38533)

Vulnerability from cvelistv5 – Published: 2025-08-16 11:12 – Updated: 2026-08-05 12:02
VLAI
Title
net: libwx: fix the using of Rx buffer DMA
Summary
In the Linux kernel, the following vulnerability has been resolved: net: libwx: fix the using of Rx buffer DMA The wx_rx_buffer structure contained two DMA address fields: 'dma' and 'page_dma'. However, only 'page_dma' was actually initialized and used to program the Rx descriptor. But 'dma' was uninitialized and used in some paths. This could lead to undefined behavior, including DMA errors or use-after-free, if the uninitialized 'dma' was used. Althrough such error has not yet occurred, it is worth fixing in the code.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 3c47e8ae113a68da47987750d9896e325d0aeedd , < 027701180a7bcb64c42eab291133ef0c87b5b6c5 (git)
Affected: 3c47e8ae113a68da47987750d9896e325d0aeedd , < ba7c793f96c1c2b944bb6f423d7243f3afc30fe9 (git)
Affected: 3c47e8ae113a68da47987750d9896e325d0aeedd , < 05c37b574997892a40a0e9b9b88a481566b2367d (git)
Affected: 3c47e8ae113a68da47987750d9896e325d0aeedd , < 5fd77cc6bd9b368431a815a780e407b7781bcca0 (git)
Create a notification for this product.
Linux Linux Affected: 6.3
Unaffected: 0 , < 6.3 (semver)
Unaffected: 6.6.100 , ≤ 6.6.* (semver)
Unaffected: 6.12.40 , ≤ 6.12.* (semver)
Unaffected: 6.15.8 , ≤ 6.15.* (semver)
Unaffected: 6.16 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/wangxun/libwx/wx_lib.c",
            "drivers/net/ethernet/wangxun/libwx/wx_type.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "027701180a7bcb64c42eab291133ef0c87b5b6c5",
              "status": "affected",
              "version": "3c47e8ae113a68da47987750d9896e325d0aeedd",
              "versionType": "git"
            },
            {
              "lessThan": "ba7c793f96c1c2b944bb6f423d7243f3afc30fe9",
              "status": "affected",
              "version": "3c47e8ae113a68da47987750d9896e325d0aeedd",
              "versionType": "git"
            },
            {
              "lessThan": "05c37b574997892a40a0e9b9b88a481566b2367d",
              "status": "affected",
              "version": "3c47e8ae113a68da47987750d9896e325d0aeedd",
              "versionType": "git"
            },
            {
              "lessThan": "5fd77cc6bd9b368431a815a780e407b7781bcca0",
              "status": "affected",
              "version": "3c47e8ae113a68da47987750d9896e325d0aeedd",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/wangxun/libwx/wx_lib.c",
            "drivers/net/ethernet/wangxun/libwx/wx_type.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.3"
            },
            {
              "lessThan": "6.3",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.100",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.40",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.15.*",
              "status": "unaffected",
              "version": "6.15.8",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.16",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.100",
                  "versionStartIncluding": "6.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.40",
                  "versionStartIncluding": "6.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.15.8",
                  "versionStartIncluding": "6.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.16",
                  "versionStartIncluding": "6.3",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: libwx: fix the using of Rx buffer DMA\n\nThe wx_rx_buffer structure contained two DMA address fields: \u0027dma\u0027 and\n\u0027page_dma\u0027. However, only \u0027page_dma\u0027 was actually initialized and used\nto program the Rx descriptor. But \u0027dma\u0027 was uninitialized and used in\nsome paths.\n\nThis could lead to undefined behavior, including DMA errors or\nuse-after-free, if the uninitialized \u0027dma\u0027 was used. Althrough such\nerror has not yet occurred, it is worth fixing in the code."
        }
      ],
      "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 defective cache-maintenance calls live in the libwx NAPI receive path (`wx_clean_rx_irq` \u2192 `wx_get_rx_buffer`/`wx_dma_sync_frag`/`wx_alloc_rx_buffers`), driven entirely by frames the NIC receives, including IP traffic routed from arbitrary remote hosts. The frag-sync offset and length are taken directly from remote packet geometry, so an off-link attacker fully drives the code path.\nAC:L - `bi-\u003edma` is deterministically zero on every ring configure (`memset` in `wx_configure_rx_ring`), so every refill and every received packet mis-syncs with 100% reliability \u2014 no race, no memory-layout dependency, no timing window. Simply directing traffic at the interface triggers it.\nPR:N - The path is reached from hardware interrupt/NAPI context on packet arrival, before any protocol parsing, authentication, or socket demultiplexing. An unauthenticated remote sender needs no credentials at all, and the buggy sync also fires on ordinary interface bring-up.\nUI:N - No victim action is needed; an administratively up interface processes attacker-supplied frames automatically. The initial buffer fill in `wx_configure_rx_ring` executes the bad sync even with no traffic.\nS:U - The device descriptor was programmed with the correct `page_dma`, so there is no IOMMU or DMA-boundary bypass \u2014 only CPU-side cache maintenance at a bogus address. Impact stays within the kernel\u0027s own security authority.\nC:H - Because the real Rx buffer is never invalidated for CPU access, `wx_build_skb()` copies whatever stale cache contents cover the page \u2014 residual kernel data or prior packets \u2014 into the skb and delivers it via `napi_gro_receive()` to local sockets or back onto the wire. That is an unbounded disclosure of kernel memory contents to a remote party.\nI:H - The skipped `for_device` clean lets dirty CPU cache lines write back over DMA\u0027d packet data, and the bogus `dcache_inval_poc` over `phys_to_virt(0)` discards dirty cache lines belonging to unrelated kernel memory at physical page 0. This is silent kernel memory corruption at an address the driver does not own.\nA:H - On non-coherent platforms the cache-maintenance instruction is issued against `phys_to_virt(0)`, which is outside the linear map whenever DRAM does not start at physical 0, producing an unhandled kernel data abort; corruption of kernel data at physical page 0 likewise leads to a panic. Any remote packet stream sustains the condition."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:02:43.501Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/027701180a7bcb64c42eab291133ef0c87b5b6c5"
        },
        {
          "url": "https://git.kernel.org/stable/c/ba7c793f96c1c2b944bb6f423d7243f3afc30fe9"
        },
        {
          "url": "https://git.kernel.org/stable/c/05c37b574997892a40a0e9b9b88a481566b2367d"
        },
        {
          "url": "https://git.kernel.org/stable/c/5fd77cc6bd9b368431a815a780e407b7781bcca0"
        }
      ],
      "title": "net: libwx: fix the using of Rx buffer DMA",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-38533",
    "datePublished": "2025-08-16T11:12:25.978Z",
    "dateReserved": "2025-04-16T04:51:24.023Z",
    "dateUpdated": "2026-08-05T12:02:43.501Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-38533",
      "date": "2026-08-08",
      "epss": "0.0029",
      "percentile": "0.21175"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-38533\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-08-16T12:15:28.957\",\"lastModified\":\"2026-07-30T06:23:24.630\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nnet: libwx: fix the using of Rx buffer DMA\\n\\nThe wx_rx_buffer structure contained two DMA address fields: \u0027dma\u0027 and\\n\u0027page_dma\u0027. However, only \u0027page_dma\u0027 was actually initialized and used\\nto program the Rx descriptor. But \u0027dma\u0027 was uninitialized and used in\\nsome paths.\\n\\nThis could lead to undefined behavior, including DMA errors or\\nuse-after-free, if the uninitialized \u0027dma\u0027 was used. Althrough such\\nerror has not yet occurred, it is worth fixing in the code.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: net: libwx: correcci\u00f3n del uso del DMA del b\u00fafer Rx. La estructura wx_rx_buffer conten\u00eda dos campos de direcci\u00f3n DMA: \u0027dma\u0027 y \u0027page_dma\u0027. Sin embargo, solo \u0027page_dma\u0027 se inicializ\u00f3 y se utiliz\u00f3 para programar el descriptor Rx. Sin embargo, \u0027dma\u0027 no se inicializ\u00f3 y se utiliz\u00f3 en algunas rutas. Esto podr\u00eda provocar un comportamiento indefinido, incluyendo errores de DMA o use after free, si se utilizaba \u0027dma\u0027 sin inicializar. Si bien este error a\u00fan no se ha producido, conviene corregirlo en el c\u00f3digo.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/net/ethernet/wangxun/libwx/wx_lib.c\",\"drivers/net/ethernet/wangxun/libwx/wx_type.h\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"3c47e8ae113a68da47987750d9896e325d0aeedd\",\"lessThan\":\"027701180a7bcb64c42eab291133ef0c87b5b6c5\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"3c47e8ae113a68da47987750d9896e325d0aeedd\",\"lessThan\":\"ba7c793f96c1c2b944bb6f423d7243f3afc30fe9\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"3c47e8ae113a68da47987750d9896e325d0aeedd\",\"lessThan\":\"05c37b574997892a40a0e9b9b88a481566b2367d\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"3c47e8ae113a68da47987750d9896e325d0aeedd\",\"lessThan\":\"5fd77cc6bd9b368431a815a780e407b7781bcca0\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/net/ethernet/wangxun/libwx/wx_lib.c\",\"drivers/net/ethernet/wangxun/libwx/wx_type.h\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.3\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.3\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.100\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.40\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.15.8\",\"lessThanOrEqual\":\"6.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.16\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"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}]},\"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.3\",\"versionEndExcluding\":\"6.6.100\",\"matchCriteriaId\":\"2FFFB27A-1108-4092-B495-80F39EDD8FF9\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.12.40\",\"matchCriteriaId\":\"0099D5A4-B157-4D36-8858-982C7D579030\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.13\",\"versionEndExcluding\":\"6.15.8\",\"matchCriteriaId\":\"C7AFE5B0-F3B1-4D30-B8BF-EDA0385C4746\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.16:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"6D4894DB-CCFE-4602-B1BF-3960B2E19A01\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.16:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"09709862-E348-4378-8632-5A7813EDDC86\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.16:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"415BF58A-8197-43F5-B3D7-D1D63057A26E\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.16:rc4:*:*:*:*:*:*\",\"matchCriteriaId\":\"A0517869-312D-4429-80C2-561086E1421C\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.16:rc5:*:*:*:*:*:*\",\"matchCriteriaId\":\"85421F4E-C863-4ABF-B4B4-E887CC2F7F92\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.16:rc6:*:*:*:*:*:*\",\"matchCriteriaId\":\"3827F0D4-5FEE-4181-B267-5A45E7CA11FC\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/027701180a7bcb64c42eab291133ef0c87b5b6c5\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/05c37b574997892a40a0e9b9b88a481566b2367d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/5fd77cc6bd9b368431a815a780e407b7781bcca0\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/ba7c793f96c1c2b944bb6f423d7243f3afc30fe9\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-07-30T09:04:17+00:00",
      "cve": "CVE-2025-38533",
      "id": "CVE-2025-38533",
      "initial_release_date": "2025-08-16T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: net: libwx: fix the using of Rx buffer DMA",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-38533.json",
      "version": "3"
    }
  }
}



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…