CVE-2025-22108 (GCVE-0-2025-22108)

Vulnerability from cvelistv5 – Published: 2025-04-16 14:12 – Updated: 2026-08-05 11:56
VLAI
Title
bnxt_en: Mask the bd_cnt field in the TX BD properly
Summary
In the Linux kernel, the following vulnerability has been resolved: bnxt_en: Mask the bd_cnt field in the TX BD properly The bd_cnt field in the TX BD specifies the total number of BDs for the TX packet. The bd_cnt field has 5 bits and the maximum number supported is 32 with the value 0. CONFIG_MAX_SKB_FRAGS can be modified and the total number of SKB fragments can approach or exceed the maximum supported by the chip. Add a macro to properly mask the bd_cnt field so that the value 32 will be properly masked and set to 0 in the bd_cnd field. Without this patch, the out-of-range bd_cnt value will corrupt the TX BD and may cause TX timeout. The next patch will check for values exceeding 32.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 3948b05950fdd64002a5f182c65ba5cf2d53cf71 , < f60b41b815826f15c4d0323f923f398c423178d0 (git)
Affected: 3948b05950fdd64002a5f182c65ba5cf2d53cf71 , < 107b25db61122d8f990987895c2912927b8b6e3f (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.4
Unaffected: 0 , < 6.4 (semver)
Unaffected: 6.14.2 , ≤ 6.14.* (semver)
Unaffected: 6.15 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/broadcom/bnxt/bnxt.c",
            "drivers/net/ethernet/broadcom/bnxt/bnxt.h",
            "drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "f60b41b815826f15c4d0323f923f398c423178d0",
              "status": "affected",
              "version": "3948b05950fdd64002a5f182c65ba5cf2d53cf71",
              "versionType": "git"
            },
            {
              "lessThan": "107b25db61122d8f990987895c2912927b8b6e3f",
              "status": "affected",
              "version": "3948b05950fdd64002a5f182c65ba5cf2d53cf71",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/broadcom/bnxt/bnxt.c",
            "drivers/net/ethernet/broadcom/bnxt/bnxt.h",
            "drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.4"
            },
            {
              "lessThan": "6.4",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.14.*",
              "status": "unaffected",
              "version": "6.14.2",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.15",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.14.2",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.15",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbnxt_en: Mask the bd_cnt field in the TX BD properly\n\nThe bd_cnt field in the TX BD specifies the total number of BDs for\nthe TX packet.  The bd_cnt field has 5 bits and the maximum number\nsupported is 32 with the value 0.\n\nCONFIG_MAX_SKB_FRAGS can be modified and the total number of SKB\nfragments can approach or exceed the maximum supported by the chip.\nAdd a macro to properly mask the bd_cnt field so that the value 32\nwill be properly masked and set to 0 in the bd_cnd field.\n\nWithout this patch, the out-of-range bd_cnt value will corrupt the\nTX BD and may cause TX timeout.\n\nThe next patch will check for values exceeding 32."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.6,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - bnxt_en is a datacenter NIC typically deployed on routing/bridging/VM hosts, where an unauthenticated remote peer\u0027s burst of segments is coalesced by GRO into an skb with 30+ fragments and forwarded out the bnxt port, reaching bnxt_start_xmit() with no linearization because the driver advertises NETIF_F_SG.\nAC:L - On a kernel built with CONFIG_MAX_SKB_FRAGS \u003e= 30 (the configuration in which the flaw exists, used in BIG TCP deployments), the attacker reliably drives the fragment count simply by sending a sustained burst, with no race or memory-layout condition to win.\nPR:N - In the forwarding scenario the trigger is ordinary unauthenticated network traffic transiting the host; no credentials or local account are needed, and the locally-reachable variant requires only an unprivileged socket.\nUI:N - Transmission happens automatically as part of normal packet forwarding or socket I/O; no victim action is required.\nS:U - The malformed descriptor, ring desynchronization, and subsequent device reset are all confined to the host kernel and its NIC, within a single security authority.\nC:L - The mis-parsed bd_cnt makes the chip consume descriptors beyond those the driver posted, so stale ring entries pointing at already-unmapped buffers can be DMA\u0027d and emitted onto the wire, exposing a bounded amount of freed kernel buffer content to the attacker\u0027s network.\nI:L - The corrupted bd_cnt and length-hint bits cause mis-framed and truncated frames to be placed on the wire, and the resulting completion desync leads to dma_unmap calls with mismatched address/length against buffers the NIC still owns.\nA:H - The commit states the out-of-range bd_cnt corrupts the TX BD and causes TX timeout; the desynchronized completion path hits WARN_ON_ONCE(1) in bnxt_sched_reset_txr() and queues BNXT_RESET_TASK_SP_EVENT, forcing a full device reset and repeatable loss of network connectivity (an immediate panic on panic_on_warn systems)."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:56:48.530Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/f60b41b815826f15c4d0323f923f398c423178d0"
        },
        {
          "url": "https://git.kernel.org/stable/c/107b25db61122d8f990987895c2912927b8b6e3f"
        }
      ],
      "title": "bnxt_en: Mask the bd_cnt field in the TX BD properly",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-22108",
    "datePublished": "2025-04-16T14:12:55.737Z",
    "dateReserved": "2024-12-29T08:45:45.820Z",
    "dateUpdated": "2026-08-05T11:56:48.530Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-22108",
      "date": "2026-08-17",
      "epss": "0.00257",
      "percentile": "0.17522"
    },
    "microsoft_vex": {
      "current_release_date": "2026-06-28T01:48:20.000Z",
      "cve": "CVE-2025-22108",
      "id": "msrc_CVE-2025-22108",
      "initial_release_date": "2025-04-02T00:00:00.000Z",
      "product_status:under_investigation": "16",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "bnxt_en: Mask the bd_cnt field in the TX BD properly",
      "url": "https://msrc.microsoft.com/csaf/vex/2025/msrc_cve-2025-22108.json",
      "version": "13"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-22108\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-04-16T15:16:05.083\",\"lastModified\":\"2026-07-30T06:22:13.137\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nbnxt_en: Mask the bd_cnt field in the TX BD properly\\n\\nThe bd_cnt field in the TX BD specifies the total number of BDs for\\nthe TX packet.  The bd_cnt field has 5 bits and the maximum number\\nsupported is 32 with the value 0.\\n\\nCONFIG_MAX_SKB_FRAGS can be modified and the total number of SKB\\nfragments can approach or exceed the maximum supported by the chip.\\nAdd a macro to properly mask the bd_cnt field so that the value 32\\nwill be properly masked and set to 0 in the bd_cnd field.\\n\\nWithout this patch, the out-of-range bd_cnt value will corrupt the\\nTX BD and may cause TX timeout.\\n\\nThe next patch will check for values exceeding 32.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: bnxt_en: Enmascarar correctamente el campo bd_cnt en el TX BD El campo bd_cnt en el TX BD especifica el n\u00famero total de BD para el paquete TX. El campo bd_cnt tiene 5 bits y el n\u00famero m\u00e1ximo admitido es 32 con el valor 0. CONFIG_MAX_SKB_FRAGS se puede modificar y el n\u00famero total de fragmentos SKB puede acercarse o superar el m\u00e1ximo admitido por el chip. Agregue una macro para enmascarar correctamente el campo bd_cnt para que el valor 32 se enmascare correctamente y se establezca en 0 en el campo bd_cnd. Sin este parche, el valor bd_cnt fuera de rango corromper\u00e1 el TX BD y puede causar tiempo de espera de TX. El siguiente parche verificar\u00e1 los valores que excedan 32.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/net/ethernet/broadcom/bnxt/bnxt.c\",\"drivers/net/ethernet/broadcom/bnxt/bnxt.h\",\"drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"3948b05950fdd64002a5f182c65ba5cf2d53cf71\",\"lessThan\":\"f60b41b815826f15c4d0323f923f398c423178d0\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"3948b05950fdd64002a5f182c65ba5cf2d53cf71\",\"lessThan\":\"107b25db61122d8f990987895c2912927b8b6e3f\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/net/ethernet/broadcom/bnxt/bnxt.c\",\"drivers/net/ethernet/broadcom/bnxt/bnxt.h\",\"drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.4\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.4\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.14.2\",\"lessThanOrEqual\":\"6.14.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.15\",\"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:L/I:L/A:H\",\"baseScore\":8.6,\"baseSeverity\":\"HIGH\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"LOW\",\"integrityImpact\":\"LOW\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":3.9,\"impactScore\":4.7},{\"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\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.4\",\"versionEndExcluding\":\"6.14.2\",\"matchCriteriaId\":\"C226DDBC-3E96-4B0C-9791-77DE3AE5D84B\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/107b25db61122d8f990987895c2912927b8b6e3f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/f60b41b815826f15c4d0323f923f398c423178d0\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-07-30T09:36:57+00:00",
      "cve": "CVE-2025-22108",
      "id": "CVE-2025-22108",
      "initial_release_date": "2025-04-16T00:00:00+00:00",
      "product_status:known_affected": "184",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: bnxt_en: Mask the bd_cnt field in the TX BD properly",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-22108.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-12T00:07:04Z",
      "cve": "CVE-2025-22108",
      "id": "CVE-2025-22108",
      "initial_release_date": "2025-04-23T02:38:35Z",
      "product_status:known_affected": "394",
      "product_status:known_not_affected": "288",
      "product_status:recommended": "418",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2025-22108",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2025-22108.json",
      "version": "37"
    }
  }
}



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…