Skip to content
Heist/ feed
Back to feed
Unrated

CVE-2026-98677 affecting package kernel 6.6.157.1-1

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: iio: adc: ad_sigma_delta: fix use-after-free on unbind ad_sd_buffer_postenable() allocates sigma_delta->samples_buf with devm_krealloc() at runtime, so its devres entry sits after all probe-time entries of the driver. devm resources are released in reverse allocation order, which means unbind frees samples_buf before iio_device_unregister() disables the buffers and detaches the trigger pollfunc. The data ready IRQ is still enabled at that point, so ad_sd_trigger_handler() can still run and memcpy() incoming samples into the freed samples_buf. Fix this by preallocating the buffer in devm_ad_sd_setup_buffer_and_trigger(), before the triggered buffer and the IRQ are set up, so it is freed only after iio_device_unregister() has drained the trigger handler via free_irq(). Size it for the worst case of all sequencer slots being active; ad_sd_validate_scan_mask() already caps the number of active channels at num_slots. This issue was found by an in-house static analysis tool.

Products
kernel
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-98677
Confirmed fixed CVEs
Not specified
Updated in this feed
1 Nov 2026, 17:23 UTC · Revision 1

Source evidence

CVE-2026-98677 affecting package kernel 6.6.157.1-1

core-osv · Original source

Published 18 Oct 2026, 16:17 UTC

In the Linux kernel, the following vulnerability has been resolved: iio: adc: ad_sigma_delta: fix use-after-free on unbind ad_sd_buffer_postenable() allocates sigma_delta->samples_buf with devm_krealloc() at runtime, so its devres entry sits after all probe-time entries of the driver. devm resources are released in reverse allocation order, which means unbind frees samples_buf before iio_device_unregister() disables the buffers and detaches the trigger pollfunc. The data ready IRQ is still enabled at that point, so ad_sd_trigger_handler() can still run and memcpy() incoming samples into the freed samples_buf. Fix this by preallocating the buffer in devm_ad_sd_setup_buffer_and_trigger(), before the triggered buffer and the IRQ are set up, so it is freed only after iio_device_unregister() has drained the trigger handler via free_irq(). Size it for the worst case of all sequencer slots being active; ad_sd_validate_scan_mask() already caps the number of active channels at num_slots. This issue was found by an in-house static analysis tool.

osv:AZL-108731

kernel

Fixed versions: Not specified

Complete source record
{
  "id": "41d0d187366bc3613208592d5db9620c4e68b49ee9d4bd1fe29a4cb1b27cd396",
  "url": "https://osv.dev/vulnerability/AZL-108731",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "CVE-2026-98677 affecting package kernel 6.6.157.1-1",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: iio: adc: ad_sigma_delta: fix use-after-free on unbind ad_sd_buffer_postenable() allocates sigma_delta->samples_buf with devm_krealloc() at runtime, so its devres entry sits after all probe-time entries of the driver. devm resources are released in reverse allocation order, which means unbind frees samples_buf before iio_device_unregister() disables the buffers and detaches the trigger pollfunc. The data ready IRQ is still enabled at that point, so ad_sd_trigger_handler() can still run and memcpy() incoming samples into the freed samples_buf. Fix this by preallocating the buffer in devm_ad_sd_setup_buffer_and_trigger(), before the triggered buffer and the IRQ are set up, so it is freed only after iio_device_unregister() has drained the trigger handler via free_irq(). Size it for the worst case of all sequencer slots being active; ad_sd_validate_scan_mask() already caps the number of active channels at num_slots. This issue was found by an in-house static analysis tool.",
    "evidence": "osv:AZL-108731",
    "products": [
      {
        "name": {
          "value": "kernel",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "AZL-108731",
      "aliases": [
        "AZL-108731"
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "last_affected": "6.6.157.1-1"
                }
              ]
            }
          ],
          "package": {
            "name": "kernel",
            "purl": "pkg:rpm/azure-linux/kernel",
            "ecosystem": "Azure Linux:3"
          },
          "database_specific": {
            "source": "https://github.com/microsoft/AzureLinuxVulnerabilityData/blob/main/osv/AZL-108731.json"
          }
        }
      ],
      "modified": "2026-10-27T05:36:16Z",
      "provider": "osv",
      "upstream": [
        "CVE-2026-98677"
      ],
      "references": [
        "https://nvd.nist.gov/vuln/detail/CVE-2026-98677"
      ]
    },
    "related_cves": [
      {
        "value": "CVE-2026-98677",
        "evidence": "/upstream"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 460402,
  "published_at": "2026-10-18T16:17:21+00:00"
}