CVE-2026-98348 (GCVE-0-2026-98348)

Vulnerability from cvelistv5 – Published: 2026-10-06 08:46 – Updated: 2026-10-07 06:50
VLAI
Title
wifi: libipw: reject too-short association responses
Summary
In the Linux kernel, the following vulnerability has been resolved: wifi: libipw: reject too-short association responses libipw_handle_assoc_resp() reads the capability, status and aid fields of the 30-byte association response prefix and then computes the information element length as stats->len - sizeof(*frame) stats->len is a u16 and sizeof() has type size_t, so the subtraction is evaluated as size_t and wraps instead of going negative. Truncating that to the u16 length parameter of libipw_parse_info_param() turns a frame shorter than the fixed fields into a length near 64 KiB, and the parser then reads past the receive buffer. Both the ipw2100 and ipw2200 management receive paths reach this function having established only that the frame carries the generic 24-byte three-address header. Reject the frame before any fixed field is touched. Found by an AI-assisted review of length arithmetic in management frame parsers. Verified with a KUnit case under Generic KASAN on arm64 under QEMU; I do not have the hardware, so it is not tested on a real device.
Impacted products
Vendor Product Version
Linux Linux Affected: 9e8571affd1c54b9638b4ff9844e47aae07310f6 , < 766268b429ae26d8ca599031fa962b0fe4673120 (git)
Affected: 9e8571affd1c54b9638b4ff9844e47aae07310f6 , < d70bdb84cf1782039384c1ffa7a18b0303c286a7 (git)
Affected: 9e8571affd1c54b9638b4ff9844e47aae07310f6 , < 400b89217058fac672134a0d4092c8493dadb8ad (git)
Affected: 9e8571affd1c54b9638b4ff9844e47aae07310f6 , < 46aa75291056b6dc5faaf956dffdb3e9662477b0 (git)
Affected: 9e8571affd1c54b9638b4ff9844e47aae07310f6 , < e3025ecdb2057f866c09e059fc1466e81d6f243e (git)
Affected: 9e8571affd1c54b9638b4ff9844e47aae07310f6 , < 14cb425ba1f3a5d849e3bbc3d02d84e0ae195dbb (git)
Affected: 9e8571affd1c54b9638b4ff9844e47aae07310f6 , < af1b69be19c34e28c0ae54bee954b58cd076969a (git)
Affected: 9e8571affd1c54b9638b4ff9844e47aae07310f6 , < adb7118b7d2cfd7e8213c17d7d2829f353017754 (git)
Create a notification for this product.
Linux Linux Affected: 2.6.15
Unaffected: 0 , < 2.6.15 (semver)
Unaffected: 5.10.271 , ≤ 5.10.* (semver)
Unaffected: 5.15.222 , ≤ 5.15.* (semver)
Unaffected: 6.1.189 , ≤ 6.1.* (semver)
Unaffected: 6.6.158 , ≤ 6.6.* (semver)
Unaffected: 6.12.112 , ≤ 6.12.* (semver)
Unaffected: 6.18.54 , ≤ 6.18.* (semver)
Unaffected: 7.2.8 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc4 , ≤ * (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/wireless/intel/ipw2x00/libipw_rx.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "766268b429ae26d8ca599031fa962b0fe4673120",
              "status": "affected",
              "version": "9e8571affd1c54b9638b4ff9844e47aae07310f6",
              "versionType": "git"
            },
            {
              "lessThan": "d70bdb84cf1782039384c1ffa7a18b0303c286a7",
              "status": "affected",
              "version": "9e8571affd1c54b9638b4ff9844e47aae07310f6",
              "versionType": "git"
            },
            {
              "lessThan": "400b89217058fac672134a0d4092c8493dadb8ad",
              "status": "affected",
              "version": "9e8571affd1c54b9638b4ff9844e47aae07310f6",
              "versionType": "git"
            },
            {
              "lessThan": "46aa75291056b6dc5faaf956dffdb3e9662477b0",
              "status": "affected",
              "version": "9e8571affd1c54b9638b4ff9844e47aae07310f6",
              "versionType": "git"
            },
            {
              "lessThan": "e3025ecdb2057f866c09e059fc1466e81d6f243e",
              "status": "affected",
              "version": "9e8571affd1c54b9638b4ff9844e47aae07310f6",
              "versionType": "git"
            },
            {
              "lessThan": "14cb425ba1f3a5d849e3bbc3d02d84e0ae195dbb",
              "status": "affected",
              "version": "9e8571affd1c54b9638b4ff9844e47aae07310f6",
              "versionType": "git"
            },
            {
              "lessThan": "af1b69be19c34e28c0ae54bee954b58cd076969a",
              "status": "affected",
              "version": "9e8571affd1c54b9638b4ff9844e47aae07310f6",
              "versionType": "git"
            },
            {
              "lessThan": "adb7118b7d2cfd7e8213c17d7d2829f353017754",
              "status": "affected",
              "version": "9e8571affd1c54b9638b4ff9844e47aae07310f6",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/wireless/intel/ipw2x00/libipw_rx.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "2.6.15"
            },
            {
              "lessThan": "2.6.15",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.271",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.222",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.189",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.158",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.112",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.54",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.8",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc4",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.271",
                  "versionStartIncluding": "2.6.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.222",
                  "versionStartIncluding": "2.6.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.189",
                  "versionStartIncluding": "2.6.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.158",
                  "versionStartIncluding": "2.6.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.112",
                  "versionStartIncluding": "2.6.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.54",
                  "versionStartIncluding": "2.6.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.8",
                  "versionStartIncluding": "2.6.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc4",
                  "versionStartIncluding": "2.6.15",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: libipw: reject too-short association responses\n\nlibipw_handle_assoc_resp() reads the capability, status and aid fields\nof the 30-byte association response prefix and then computes the\ninformation element length as\n\n\tstats-\u003elen - sizeof(*frame)\n\nstats-\u003elen is a u16 and sizeof() has type size_t, so the subtraction is\nevaluated as size_t and wraps instead of going negative.  Truncating\nthat to the u16 length parameter of libipw_parse_info_param() turns a\nframe shorter than the fixed fields into a length near 64 KiB, and the\nparser then reads past the receive buffer.\n\nBoth the ipw2100 and ipw2200 management receive paths reach this\nfunction having established only that the frame carries the generic\n24-byte three-address header.\n\nReject the frame before any fixed field is touched.\n\nFound by an AI-assisted review of length arithmetic in management frame\nparsers.  Verified with a KUnit case under Generic KASAN on arm64 under\nQEMU; I do not have the hardware, so it is not tested on a real device."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.1,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:A - The malformed input is an 802.11 Association Response management frame received over the air. ipw2100 (isr_rx path) and ipw2200 (ipw_handle_mgmt_packet) send it through libipw_rx_mgt() into libipw_handle_assoc_resp(). The attacker must be within WiFi radio range.\nAC:L - The attacker only has to send an ASSOC_RESP frame of 24-29 bytes. The drivers check only for the 24-byte header, so stats-\u003elen - sizeof(*frame) (30) wraps to about 64K in the u16 length passed to libipw_parse_info_param(). No race or special state is involved.\nPR:N - libipw_rx_mgt() processes management frames before any 802.11 authentication or key exchange. An unauthenticated nearby transmitter can inject the frame.\nUI:N - The frame is processed in the receive path as soon as the interface is up. The victim does nothing.\nS:U - The out-of-bounds read stays inside the host kernel\u0027s own memory and crosses no virtualization or IOMMU boundary.\nC:L - libipw_parse_info_param() walks up to about 64KB of memory past the receive buffer. Those bytes only fill a local libipw_network on the stack, and through the QoS IE path the qos_data that goes to firmware. Nothing is returned to the attacker, so the disclosure is limited and indirect.\nI:N - The bug is read-only. Every copy from the parsed IEs is bounded (min() on ssid/rates, an exact-size check in libipw_read_qos_param_element) and lands in the fixed-size local network struct, so nothing is written out of bounds.\nA:H - Iterating about 64KB of information elements past a few-KB skb/DMA receive buffer can hit unmapped pages (or KASAN/KFENCE) and oops the kernel. Any station in range can resend the short frame repeatedly."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-07T06:50:10.352Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/766268b429ae26d8ca599031fa962b0fe4673120"
        },
        {
          "url": "https://git.kernel.org/stable/c/d70bdb84cf1782039384c1ffa7a18b0303c286a7"
        },
        {
          "url": "https://git.kernel.org/stable/c/400b89217058fac672134a0d4092c8493dadb8ad"
        },
        {
          "url": "https://git.kernel.org/stable/c/46aa75291056b6dc5faaf956dffdb3e9662477b0"
        },
        {
          "url": "https://git.kernel.org/stable/c/e3025ecdb2057f866c09e059fc1466e81d6f243e"
        },
        {
          "url": "https://git.kernel.org/stable/c/14cb425ba1f3a5d849e3bbc3d02d84e0ae195dbb"
        },
        {
          "url": "https://git.kernel.org/stable/c/af1b69be19c34e28c0ae54bee954b58cd076969a"
        },
        {
          "url": "https://git.kernel.org/stable/c/adb7118b7d2cfd7e8213c17d7d2829f353017754"
        }
      ],
      "title": "wifi: libipw: reject too-short association responses",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-98348",
    "datePublished": "2026-10-06T08:46:36.927Z",
    "dateReserved": "2026-09-25T10:25:14.343Z",
    "dateUpdated": "2026-10-07T06:50:10.352Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-98348",
      "date": "2026-10-08",
      "epss": "0.00261",
      "percentile": "0.16403"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/wireless/intel/ipw2x00/libipw_rx.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "766268b429ae26d8ca599031fa962b0fe4673120",
                    "status": "affected",
                    "version": "9e8571affd1c54b9638b4ff9844e47aae07310f6",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "d70bdb84cf1782039384c1ffa7a18b0303c286a7",
                    "status": "affected",
                    "version": "9e8571affd1c54b9638b4ff9844e47aae07310f6",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "400b89217058fac672134a0d4092c8493dadb8ad",
                    "status": "affected",
                    "version": "9e8571affd1c54b9638b4ff9844e47aae07310f6",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "46aa75291056b6dc5faaf956dffdb3e9662477b0",
                    "status": "affected",
                    "version": "9e8571affd1c54b9638b4ff9844e47aae07310f6",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "e3025ecdb2057f866c09e059fc1466e81d6f243e",
                    "status": "affected",
                    "version": "9e8571affd1c54b9638b4ff9844e47aae07310f6",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "14cb425ba1f3a5d849e3bbc3d02d84e0ae195dbb",
                    "status": "affected",
                    "version": "9e8571affd1c54b9638b4ff9844e47aae07310f6",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "af1b69be19c34e28c0ae54bee954b58cd076969a",
                    "status": "affected",
                    "version": "9e8571affd1c54b9638b4ff9844e47aae07310f6",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "adb7118b7d2cfd7e8213c17d7d2829f353017754",
                    "status": "affected",
                    "version": "9e8571affd1c54b9638b4ff9844e47aae07310f6",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/wireless/intel/ipw2x00/libipw_rx.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "2.6.15"
                  },
                  {
                    "lessThan": "2.6.15",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.10.*",
                    "status": "unaffected",
                    "version": "5.10.271",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.15.*",
                    "status": "unaffected",
                    "version": "5.15.222",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.1.*",
                    "status": "unaffected",
                    "version": "6.1.189",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.6.*",
                    "status": "unaffected",
                    "version": "6.6.158",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.112",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.54",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.8",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3-rc4",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: libipw: reject too-short association responses\n\nlibipw_handle_assoc_resp() reads the capability, status and aid fields\nof the 30-byte association response prefix and then computes the\ninformation element length as\n\n\tstats-\u003elen - sizeof(*frame)\n\nstats-\u003elen is a u16 and sizeof() has type size_t, so the subtraction is\nevaluated as size_t and wraps instead of going negative.  Truncating\nthat to the u16 length parameter of libipw_parse_info_param() turns a\nframe shorter than the fixed fields into a length near 64 KiB, and the\nparser then reads past the receive buffer.\n\nBoth the ipw2100 and ipw2200 management receive paths reach this\nfunction having established only that the frame carries the generic\n24-byte three-address header.\n\nReject the frame before any fixed field is touched.\n\nFound by an AI-assisted review of length arithmetic in management frame\nparsers.  Verified with a KUnit case under Generic KASAN on arm64 under\nQEMU; I do not have the hardware, so it is not tested on a real device."
          }
        ],
        "id": "CVE-2026-98348",
        "lastModified": "2026-10-07T07:17:09.817",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "ADJACENT_NETWORK",
                "availabilityImpact": "HIGH",
                "baseScore": 7.1,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "LOW",
                "integrityImpact": "NONE",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 2.8,
              "impactScore": 4.2,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-10-06T09:18:27.963",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/14cb425ba1f3a5d849e3bbc3d02d84e0ae195dbb"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/400b89217058fac672134a0d4092c8493dadb8ad"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/46aa75291056b6dc5faaf956dffdb3e9662477b0"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/766268b429ae26d8ca599031fa962b0fe4673120"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/adb7118b7d2cfd7e8213c17d7d2829f353017754"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/af1b69be19c34e28c0ae54bee954b58cd076969a"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/d70bdb84cf1782039384c1ffa7a18b0303c286a7"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/e3025ecdb2057f866c09e059fc1466e81d6f243e"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-10-08T16:47:00Z",
      "cve": "CVE-2026-98348",
      "id": "CVE-2026-98348",
      "initial_release_date": "2026-10-08T16:47:00Z",
      "product_status:known_affected": "301",
      "product_status:known_not_affected": "46",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-98348",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-98348.json",
      "version": "2"
    }
  }
}



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…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…