CVE-2025-38570 (GCVE-0-2025-38570)

Vulnerability from cvelistv5 – Published: 2025-08-19 17:02 – Updated: 2026-08-05 12:02
VLAI
Title
eth: fbnic: unlink NAPIs from queues on error to open
Summary
In the Linux kernel, the following vulnerability has been resolved: eth: fbnic: unlink NAPIs from queues on error to open CI hit a UaF in fbnic in the AF_XDP portion of the queues.py test. The UaF is in the __sk_mark_napi_id_once() call in xsk_bind(), NAPI has been freed. Looks like the device failed to open earlier, and we lack clearing the NAPI pointer from the queue.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 557d02238e05eb66b9aba9a1f90f3a2131c6c887 , < 21d3f8441c7f317b93ba6a8029610c8b7e3773db (git)
Affected: 557d02238e05eb66b9aba9a1f90f3a2131c6c887 , < 4b59f9deff3bdb52b223c85048f1d2924803b817 (git)
Affected: 557d02238e05eb66b9aba9a1f90f3a2131c6c887 , < 4b31bcb025cb497da2b01f87173108ff32d350d2 (git)
Create a notification for this product.
Linux Linux Affected: 6.14
Unaffected: 0 , < 6.14 (semver)
Unaffected: 6.15.10 , ≤ 6.15.* (semver)
Unaffected: 6.16.1 , ≤ 6.16.* (semver)
Unaffected: 6.17 , ≤ * (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/meta/fbnic/fbnic_netdev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "21d3f8441c7f317b93ba6a8029610c8b7e3773db",
              "status": "affected",
              "version": "557d02238e05eb66b9aba9a1f90f3a2131c6c887",
              "versionType": "git"
            },
            {
              "lessThan": "4b59f9deff3bdb52b223c85048f1d2924803b817",
              "status": "affected",
              "version": "557d02238e05eb66b9aba9a1f90f3a2131c6c887",
              "versionType": "git"
            },
            {
              "lessThan": "4b31bcb025cb497da2b01f87173108ff32d350d2",
              "status": "affected",
              "version": "557d02238e05eb66b9aba9a1f90f3a2131c6c887",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/meta/fbnic/fbnic_netdev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.14"
            },
            {
              "lessThan": "6.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.15.*",
              "status": "unaffected",
              "version": "6.15.10",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.16.*",
              "status": "unaffected",
              "version": "6.16.1",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.17",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.15.10",
                  "versionStartIncluding": "6.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.16.1",
                  "versionStartIncluding": "6.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.17",
                  "versionStartIncluding": "6.14",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\neth: fbnic: unlink NAPIs from queues on error to open\n\nCI hit a UaF in fbnic in the AF_XDP portion of the queues.py test.\nThe UaF is in the __sk_mark_napi_id_once() call in xsk_bind(),\nNAPI has been freed. Looks like the device failed to open earlier,\nand we lack clearing the NAPI pointer from the queue."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The dangling NAPI pointer is created by a local netdev administrative operation (link up) and dereferenced through local syscalls \u2014 `bind()` on an AF_XDP socket or a netdev-genl queue query. No remote peer data reaches this code path.\nAC:L - Once the failed open leaves the pointers dangling, the UAF is a persistent state rather than a race window, and `xsk_bind()` with `XDP_COPY` reaches `rxq-\u003enapi-\u003enapi_id` deterministically on the down device for every queue index, repeatable at will. The open failure itself is attacker-influenceable (`-ENOMEM` in `fbnic_tlv_msg_alloc()`/`request_irq()` under attacker-generated memory pressure, or an unready FW mailbox) and link-up can be retried indefinitely.\nPR:L - Both required capabilities are namespaced \u2014 `ns_capable(net-\u003euser_ns, CAP_NET_ADMIN)` for RTM_SETLINK link-up and `ns_capable(net-\u003euser_ns, CAP_NET_RAW)` for AF_XDP socket creation \u2014 so an unprivileged user in a user-namespace-owned netns with the NIC delegated (container/passthrough deployments) can perform the whole sequence without real root.\nUI:N - The attacker performs both the link-up that fails and the subsequent AF_XDP bind; no action by any other user or victim process is needed.\nS:U - The freed object and the corrupted pointers both live in kernel memory under the same security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - This is a use-after-free read of a freed `fbnic_napi_vector` slab object, and the attacker can spray the freed allocation before triggering the read; the value is then exfiltrated to userspace via `getsockopt(SO_INCOMING_NAPI_ID)`, giving a repeatable read primitive over reclaimed kernel heap.\nI:H - Stale `struct napi_struct *` pointers persist in the netdev\u0027s rx and tx queue structures after the backing allocation is freed; per UAF treatment this heap-reuse condition is exploitable for controlling reclaimed object contents and hijacking dependent state.\nA:H - Dereferencing the freed vector \u2014 potentially after the slab page has been returned to the page allocator \u2014 produces an oops or panic, and the condition can be re-triggered against every queue index on the affected interface."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:02:58.557Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/21d3f8441c7f317b93ba6a8029610c8b7e3773db"
        },
        {
          "url": "https://git.kernel.org/stable/c/4b59f9deff3bdb52b223c85048f1d2924803b817"
        },
        {
          "url": "https://git.kernel.org/stable/c/4b31bcb025cb497da2b01f87173108ff32d350d2"
        }
      ],
      "title": "eth: fbnic: unlink NAPIs from queues on error to open",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-38570",
    "datePublished": "2025-08-19T17:02:50.677Z",
    "dateReserved": "2025-04-16T04:51:24.025Z",
    "dateUpdated": "2026-08-05T12:02:58.557Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-38570",
      "date": "2026-08-05",
      "epss": "0.00162",
      "percentile": "0.05851"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-38570\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-08-19T17:15:33.810\",\"lastModified\":\"2026-07-30T06:23:27.127\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\neth: fbnic: unlink NAPIs from queues on error to open\\n\\nCI hit a UaF in fbnic in the AF_XDP portion of the queues.py test.\\nThe UaF is in the __sk_mark_napi_id_once() call in xsk_bind(),\\nNAPI has been freed. Looks like the device failed to open earlier,\\nand we lack clearing the NAPI pointer from the queue.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: eth: fbnic: al desvincular NAPIs de las colas en caso de error al abrir CI, se encontr\u00f3 una UaF en fbnic en la secci\u00f3n AF_XDP de la prueba queues.py. La UaF se encuentra en la llamada __sk_mark_napi_id_once() en xsk_bind(); la NAPI se ha liberado. Parece que el dispositivo no se abri\u00f3 previamente y nos falta borrar el puntero NAPI de la cola.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/net/ethernet/meta/fbnic/fbnic_netdev.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"557d02238e05eb66b9aba9a1f90f3a2131c6c887\",\"lessThan\":\"21d3f8441c7f317b93ba6a8029610c8b7e3773db\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"557d02238e05eb66b9aba9a1f90f3a2131c6c887\",\"lessThan\":\"4b59f9deff3bdb52b223c85048f1d2924803b817\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"557d02238e05eb66b9aba9a1f90f3a2131c6c887\",\"lessThan\":\"4b31bcb025cb497da2b01f87173108ff32d350d2\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/net/ethernet/meta/fbnic/fbnic_netdev.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.14\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.14\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.15.10\",\"lessThanOrEqual\":\"6.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.16.1\",\"lessThanOrEqual\":\"6.16.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.17\",\"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: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},{\"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-416\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.14\",\"versionEndExcluding\":\"6.15.10\",\"matchCriteriaId\":\"70478C0C-058C-4CC8-99CB-6F578E74194C\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.16\",\"versionEndExcluding\":\"6.16.1\",\"matchCriteriaId\":\"58182352-D7DF-4CC9-841E-03C1D852C3FB\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/21d3f8441c7f317b93ba6a8029610c8b7e3773db\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/4b31bcb025cb497da2b01f87173108ff32d350d2\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/4b59f9deff3bdb52b223c85048f1d2924803b817\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "None",
      "current_release_date": "2026-06-30T10:23:30+00:00",
      "cve": "CVE-2025-38570",
      "id": "CVE-2025-38570",
      "initial_release_date": "2025-08-19T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: eth: fbnic: unlink NAPIs from queues on error to open",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-38570.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "important",
      "current_release_date": "2026-07-31T01:08:31Z",
      "cve": "CVE-2025-38570",
      "id": "CVE-2025-38570",
      "initial_release_date": "2025-08-19T23:23:43Z",
      "product_status:known_not_affected": "416",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2025-38570",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2025-38570.json",
      "version": "6"
    }
  }
}



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…