CVE-2026-98189 (GCVE-0-2026-98189)

Vulnerability from cvelistv5 – Published: 2026-10-06 08:44 – Updated: 2026-10-06 08:44
VLAI
Title
wifi: wilc1000: fix RX buffer OOB-write in wilc_wlan_handle_isr_ext()
Summary
In the Linux kernel, the following vulnerability has been resolved: wifi: wilc1000: fix RX buffer OOB-write in wilc_wlan_handle_isr_ext() wilc_wlan_handle_isr_ext() takes the RX transfer size from the device-reported interrupt status register (a 15-bit field shifted left by 2, up to 131068 bytes) and reads that many bytes from the device into rx_buffer, which is only WILC_RX_BUFF_SIZE (96K) large. The wrap check only handles the current offset; the size itself is never compared against the buffer, so a bogus SDIO device can make the driver OOB-write rx_buffer by up to ~32K with data it controls. The oversized transfer also leaves rx_buffer_offset past the end of the buffer, after which the unsigned wrap check stops working and the overflow can repeat. Drop any transfer whose size exceeds the RX buffer, acknowledging the data interrupt and re-arming the RX engine so the bogus frame is discarded and reception can continue. This also restores the rx_buffer_offset <= WILC_RX_BUFF_SIZE invariant the wrap check relies on. This is not expected to change driver behavior in most cases: without this check, an oversized transfer would most likely corrupt neighboring kernel memory instead of completing anyway, and the drop path performs the same interrupt acknowledgment and RX engine re-arming as the normal path, so subsequent transfers are received unaffected. Discovered by Atuin - Automated Vulnerability Discovery Engine.
Severity
No CVSS data available.
Impacted products
Vendor Product Version
Linux Linux Affected: c5c77ba18ea66aa05441c71e38473efb787705a4 , < 3ddb88e237bc1e59fd37b1cf369f3b6c2dedae26 (git)
Affected: c5c77ba18ea66aa05441c71e38473efb787705a4 , < 9f6a276ade936a8803f9f3df217c2368944dc321 (git)
Affected: c5c77ba18ea66aa05441c71e38473efb787705a4 , < aeb44a456d126d89863230eef0187e77e6441995 (git)
Affected: c5c77ba18ea66aa05441c71e38473efb787705a4 , < 612ed9224eae70c53c0c88cb0990e0f9b709280a (git)
Affected: c5c77ba18ea66aa05441c71e38473efb787705a4 , < 304a5d72a04a3979a6434088c8d9c5172c2a908e (git)
Affected: c5c77ba18ea66aa05441c71e38473efb787705a4 , < 4f86fb6f9dce04f697da85806ad96a932fc2f079 (git)
Affected: c5c77ba18ea66aa05441c71e38473efb787705a4 , < 14dcf4c3d74c878175b19d3da5986f83f26b1dd5 (git)
Affected: c5c77ba18ea66aa05441c71e38473efb787705a4 , < c1ba7f7f18465e259cf1b4d9c73fc73853d7f790 (git)
Create a notification for this product.
Linux Linux Affected: 4.2
Unaffected: 0 , < 4.2 (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/microchip/wilc1000/wlan.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "3ddb88e237bc1e59fd37b1cf369f3b6c2dedae26",
              "status": "affected",
              "version": "c5c77ba18ea66aa05441c71e38473efb787705a4",
              "versionType": "git"
            },
            {
              "lessThan": "9f6a276ade936a8803f9f3df217c2368944dc321",
              "status": "affected",
              "version": "c5c77ba18ea66aa05441c71e38473efb787705a4",
              "versionType": "git"
            },
            {
              "lessThan": "aeb44a456d126d89863230eef0187e77e6441995",
              "status": "affected",
              "version": "c5c77ba18ea66aa05441c71e38473efb787705a4",
              "versionType": "git"
            },
            {
              "lessThan": "612ed9224eae70c53c0c88cb0990e0f9b709280a",
              "status": "affected",
              "version": "c5c77ba18ea66aa05441c71e38473efb787705a4",
              "versionType": "git"
            },
            {
              "lessThan": "304a5d72a04a3979a6434088c8d9c5172c2a908e",
              "status": "affected",
              "version": "c5c77ba18ea66aa05441c71e38473efb787705a4",
              "versionType": "git"
            },
            {
              "lessThan": "4f86fb6f9dce04f697da85806ad96a932fc2f079",
              "status": "affected",
              "version": "c5c77ba18ea66aa05441c71e38473efb787705a4",
              "versionType": "git"
            },
            {
              "lessThan": "14dcf4c3d74c878175b19d3da5986f83f26b1dd5",
              "status": "affected",
              "version": "c5c77ba18ea66aa05441c71e38473efb787705a4",
              "versionType": "git"
            },
            {
              "lessThan": "c1ba7f7f18465e259cf1b4d9c73fc73853d7f790",
              "status": "affected",
              "version": "c5c77ba18ea66aa05441c71e38473efb787705a4",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/wireless/microchip/wilc1000/wlan.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.2"
            },
            {
              "lessThan": "4.2",
              "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": "4.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.222",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.189",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.158",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.112",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.54",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.8",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc4",
                  "versionStartIncluding": "4.2",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: wilc1000: fix RX buffer OOB-write in wilc_wlan_handle_isr_ext()\n\nwilc_wlan_handle_isr_ext() takes the RX transfer size from the\ndevice-reported interrupt status register (a 15-bit field shifted left by 2,\nup to 131068 bytes) and reads that many bytes from the device into\nrx_buffer, which is only WILC_RX_BUFF_SIZE (96K) large. The wrap\ncheck only handles the current offset; the size itself is never\ncompared against the buffer, so a bogus SDIO device can make the driver\nOOB-write rx_buffer by up to ~32K with data it controls.\n\nThe oversized transfer also leaves rx_buffer_offset past the end of\nthe buffer, after which the unsigned wrap check stops working and\nthe overflow can repeat.\n\nDrop any transfer whose size exceeds the RX buffer, acknowledging\nthe data interrupt and re-arming the RX engine so the bogus frame is\ndiscarded and reception can continue. This also restores the\nrx_buffer_offset \u003c= WILC_RX_BUFF_SIZE invariant the wrap check\nrelies on.\n\nThis is not expected to change driver behavior in most cases:\nwithout this check, an oversized transfer would most likely\ncorrupt neighboring kernel memory instead of completing anyway, and\nthe drop path performs the same interrupt acknowledgment and RX\nengine re-arming as the normal path, so subsequent transfers are\nreceived unaffected.\n\nDiscovered by Atuin - Automated Vulnerability Discovery Engine."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-06T08:44:30.807Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/3ddb88e237bc1e59fd37b1cf369f3b6c2dedae26"
        },
        {
          "url": "https://git.kernel.org/stable/c/9f6a276ade936a8803f9f3df217c2368944dc321"
        },
        {
          "url": "https://git.kernel.org/stable/c/aeb44a456d126d89863230eef0187e77e6441995"
        },
        {
          "url": "https://git.kernel.org/stable/c/612ed9224eae70c53c0c88cb0990e0f9b709280a"
        },
        {
          "url": "https://git.kernel.org/stable/c/304a5d72a04a3979a6434088c8d9c5172c2a908e"
        },
        {
          "url": "https://git.kernel.org/stable/c/4f86fb6f9dce04f697da85806ad96a932fc2f079"
        },
        {
          "url": "https://git.kernel.org/stable/c/14dcf4c3d74c878175b19d3da5986f83f26b1dd5"
        },
        {
          "url": "https://git.kernel.org/stable/c/c1ba7f7f18465e259cf1b4d9c73fc73853d7f790"
        }
      ],
      "title": "wifi: wilc1000: fix RX buffer OOB-write in wilc_wlan_handle_isr_ext()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-98189",
    "datePublished": "2026-10-06T08:44:30.807Z",
    "dateReserved": "2026-09-25T10:25:14.323Z",
    "dateUpdated": "2026-10-06T08:44:30.807Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-98189",
      "date": "2026-10-09",
      "epss": "0.00184",
      "percentile": "0.07357"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/wireless/microchip/wilc1000/wlan.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "3ddb88e237bc1e59fd37b1cf369f3b6c2dedae26",
                    "status": "affected",
                    "version": "c5c77ba18ea66aa05441c71e38473efb787705a4",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "9f6a276ade936a8803f9f3df217c2368944dc321",
                    "status": "affected",
                    "version": "c5c77ba18ea66aa05441c71e38473efb787705a4",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "aeb44a456d126d89863230eef0187e77e6441995",
                    "status": "affected",
                    "version": "c5c77ba18ea66aa05441c71e38473efb787705a4",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "612ed9224eae70c53c0c88cb0990e0f9b709280a",
                    "status": "affected",
                    "version": "c5c77ba18ea66aa05441c71e38473efb787705a4",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "304a5d72a04a3979a6434088c8d9c5172c2a908e",
                    "status": "affected",
                    "version": "c5c77ba18ea66aa05441c71e38473efb787705a4",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "4f86fb6f9dce04f697da85806ad96a932fc2f079",
                    "status": "affected",
                    "version": "c5c77ba18ea66aa05441c71e38473efb787705a4",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "14dcf4c3d74c878175b19d3da5986f83f26b1dd5",
                    "status": "affected",
                    "version": "c5c77ba18ea66aa05441c71e38473efb787705a4",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "c1ba7f7f18465e259cf1b4d9c73fc73853d7f790",
                    "status": "affected",
                    "version": "c5c77ba18ea66aa05441c71e38473efb787705a4",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/wireless/microchip/wilc1000/wlan.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "4.2"
                  },
                  {
                    "lessThan": "4.2",
                    "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: wilc1000: fix RX buffer OOB-write in wilc_wlan_handle_isr_ext()\n\nwilc_wlan_handle_isr_ext() takes the RX transfer size from the\ndevice-reported interrupt status register (a 15-bit field shifted left by 2,\nup to 131068 bytes) and reads that many bytes from the device into\nrx_buffer, which is only WILC_RX_BUFF_SIZE (96K) large. The wrap\ncheck only handles the current offset; the size itself is never\ncompared against the buffer, so a bogus SDIO device can make the driver\nOOB-write rx_buffer by up to ~32K with data it controls.\n\nThe oversized transfer also leaves rx_buffer_offset past the end of\nthe buffer, after which the unsigned wrap check stops working and\nthe overflow can repeat.\n\nDrop any transfer whose size exceeds the RX buffer, acknowledging\nthe data interrupt and re-arming the RX engine so the bogus frame is\ndiscarded and reception can continue. This also restores the\nrx_buffer_offset \u003c= WILC_RX_BUFF_SIZE invariant the wrap check\nrelies on.\n\nThis is not expected to change driver behavior in most cases:\nwithout this check, an oversized transfer would most likely\ncorrupt neighboring kernel memory instead of completing anyway, and\nthe drop path performs the same interrupt acknowledgment and RX\nengine re-arming as the normal path, so subsequent transfers are\nreceived unaffected.\n\nDiscovered by Atuin - Automated Vulnerability Discovery Engine."
          }
        ],
        "id": "CVE-2026-98189",
        "lastModified": "2026-10-06T09:18:04.033",
        "metrics": {},
        "published": "2026-10-06T09:18:04.033",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/14dcf4c3d74c878175b19d3da5986f83f26b1dd5"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/304a5d72a04a3979a6434088c8d9c5172c2a908e"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/3ddb88e237bc1e59fd37b1cf369f3b6c2dedae26"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/4f86fb6f9dce04f697da85806ad96a932fc2f079"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/612ed9224eae70c53c0c88cb0990e0f9b709280a"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/9f6a276ade936a8803f9f3df217c2368944dc321"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/aeb44a456d126d89863230eef0187e77e6441995"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/c1ba7f7f18465e259cf1b4d9c73fc73853d7f790"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-10-08T23:35:52+00:00",
      "cve": "CVE-2026-98189",
      "id": "CVE-2026-98189",
      "initial_release_date": "2026-10-06T00:00:00+00:00",
      "product_status:known_not_affected": "277",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: wifi: wilc1000: fix RX buffer OOB-write in wilc_wlan_handle_isr_ext()",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-98189.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-10-08T16:51:07Z",
      "cve": "CVE-2026-98189",
      "id": "CVE-2026-98189",
      "initial_release_date": "2026-10-08T16:51:07Z",
      "product_status:known_affected": "297",
      "product_status:known_not_affected": "50",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-98189",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-98189.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…