CVE-2026-90268 (GCVE-0-2026-90268)

Vulnerability from cvelistv5 – Published: 2026-09-17 16:08 – Updated: 2026-09-18 17:54
VLAI
Title
scsi: sd: Fix error handling in sd_probe() after large pool creation failure
Summary
In the Linux kernel, the following vulnerability has been resolved: scsi: sd: Fix error handling in sd_probe() after large pool creation failure After device_add(&sdkp->disk_dev) succeeds, sd_large_pool_create() failure must unregister disk_dev and let scsi_disk_release() free sdkp. Going through out_free_index kfree()s an already registered device and leaks the sysfs entry.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 7179e626b76eb42f2529c6f6dd6ba88ea2445372 , < 748a14a0d41cfe3017251c11b314f85045414942 (git)
Affected: 7179e626b76eb42f2529c6f6dd6ba88ea2445372 , < e3cc6ea1a745e7f5d326f919a428b244fa119d8f (git)
guessed Create a notification for this product.
Linux Linux Affected: 7.1
Unaffected: 0 , < 7.1 (semver)
Unaffected: 7.2.6 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc1 , ≤ * (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/scsi/sd.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "748a14a0d41cfe3017251c11b314f85045414942",
              "status": "affected",
              "version": "7179e626b76eb42f2529c6f6dd6ba88ea2445372",
              "versionType": "git"
            },
            {
              "lessThan": "e3cc6ea1a745e7f5d326f919a428b244fa119d8f",
              "status": "affected",
              "version": "7179e626b76eb42f2529c6f6dd6ba88ea2445372",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/scsi/sd.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "7.1"
            },
            {
              "lessThan": "7.1",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.6",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.6",
                  "versionStartIncluding": "7.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc1",
                  "versionStartIncluding": "7.1",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: sd: Fix error handling in sd_probe() after large pool creation failure\n\nAfter device_add(\u0026sdkp-\u003edisk_dev) succeeds, sd_large_pool_create()\nfailure must unregister disk_dev and let scsi_disk_release() free\nsdkp. Going through out_free_index kfree()s an already registered device\nand leaks the sysfs entry."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.1,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - After iscsi_scan_session()-\u003escsi_scan_target()-\u003escsi_probe_and_add_lun() binds TYPE_DISK, sd_probe()-\u003esd_revalidate_disk()-\u003eread_capacity_16() takes the Logical Block Length from the target\u2019s READ CAPACITY(16) Data-In at buffer[8] (or READ CAPACITY(10) at buffer[4]) over iSCSI TCP; that value is what enters the sd_large_pool_create() error path.\nAC:H - The bad goto is taken only when sd_large_page_pool is still NULL and mempool_create_page_pool(SD_MEMPOOL_SIZE=2, get_order(BLK_MAX_BLOCK_SIZE)) fails its GFP_KERNEL order-4 preallocation of two 64K pages; a remote target cannot force that allocator failure or whether an earlier large-sector disk already created the pool.\nPR:N - The attacker is the iSCSI target supplying INQUIRY PDT=TYPE_DISK and the READ CAPACITY block length during automatic LUN scan; scsi_bus_probe()-\u003esd_probe() runs on the initiator with no capability check against the target, and iSCSI is commonly deployed without CHAP.\nUI:N - Once the session is ISCSI_SESSION_LOGGED_IN, iscsi_scan_session work calls scsi_scan_target, which invokes sd_probe and sd_revalidate_disk with no open(), mount, or operator action; the target alone presents the LUN and the capacity response.\nS:U - kfree(sdkp) while sdkp-\u003edisk_dev remains registered after device_add() corrupts only the initiator kernel\u2019s device-model/sysfs state for that scsi_disk; it does not cross a VM, IOMMU, or other security-authority boundary.\nC:H - out_free_index kfree()s the scsi_disk that embeds the still-registered disk_dev, so later sysfs reads of sd_disk_groups attributes via to_scsi_disk() and scsi_disk_release() operate on a freed heap object, giving a use-after-free read primitive.\nI:H - The same kfree leaves disk_dev, gd-\u003eprivate_data, and the sdev drvdata set by dev_set_drvdata() pointing at freed sdkp; writable scsi_disk sysfs stores and scsi_disk_release()\u2019s second kfree/ida_free then write through that UAF, enabling heap corruption and control-flow hijack.\nA:H - Use-after-free of the registered scsi_disk, including scsi_disk_release() running on already-freed memory (double-free of sdkp and a second ida_free of sdkp-\u003eindex), oopses or panics when udev, sysfs, or parent sdev removal touches disk_dev."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-18T17:54:15.152Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/748a14a0d41cfe3017251c11b314f85045414942"
        },
        {
          "url": "https://git.kernel.org/stable/c/e3cc6ea1a745e7f5d326f919a428b244fa119d8f"
        }
      ],
      "title": "scsi: sd: Fix error handling in sd_probe() after large pool creation failure",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-90268",
    "datePublished": "2026-09-17T16:08:03.312Z",
    "dateReserved": "2026-09-11T19:38:34.796Z",
    "dateUpdated": "2026-09-18T17:54:15.152Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-90268",
      "date": "2026-09-29",
      "epss": "0.00454",
      "percentile": "0.36922"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/scsi/sd.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "748a14a0d41cfe3017251c11b314f85045414942",
                    "status": "affected",
                    "version": "7179e626b76eb42f2529c6f6dd6ba88ea2445372",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "e3cc6ea1a745e7f5d326f919a428b244fa119d8f",
                    "status": "affected",
                    "version": "7179e626b76eb42f2529c6f6dd6ba88ea2445372",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/scsi/sd.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "7.1"
                  },
                  {
                    "lessThan": "7.1",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.6",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3-rc1",
                    "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\nscsi: sd: Fix error handling in sd_probe() after large pool creation failure\n\nAfter device_add(\u0026sdkp-\u003edisk_dev) succeeds, sd_large_pool_create()\nfailure must unregister disk_dev and let scsi_disk_release() free\nsdkp. Going through out_free_index kfree()s an already registered device\nand leaks the sysfs entry."
          }
        ],
        "id": "CVE-2026-90268",
        "lastModified": "2026-09-18T18:17:51.443",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "HIGH",
                "attackVector": "NETWORK",
                "availabilityImpact": "HIGH",
                "baseScore": 8.1,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 2.2,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-09-17T17:17:23.360",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/748a14a0d41cfe3017251c11b314f85045414942"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/e3cc6ea1a745e7f5d326f919a428b244fa119d8f"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-22T16:29:41Z",
      "cve": "CVE-2026-90268",
      "id": "CVE-2026-90268",
      "initial_release_date": "2026-09-18T00:19:02Z",
      "product_status:known_not_affected": "347",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-90268",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-90268.json",
      "version": "4"
    }
  }
}



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…