CVE-2026-74472 (GCVE-0-2026-74472)

Vulnerability from cvelistv5 – Published: 2026-08-15 12:27 – Updated: 2026-08-19 16:37
VLAI
Title
ublk: reset kernel-owned dev_info fields in ublk_ctrl_add_dev()
Summary
In the Linux kernel, the following vulnerability has been resolved: ublk: reset kernel-owned dev_info fields in ublk_ctrl_add_dev() ublk_ctrl_add_dev() memcpy()s the userspace ublksrv_ctrl_dev_info into ub->dev_info and then fixes up the fields the driver owns, but misses ->state and ->ublksrv_pid. A device added with ->state = UBLK_S_DEV_LIVE passes the "->state != UBLK_S_DEV_DEAD" test that ublk_stop_dev_unlocked() uses as its proxy for "a disk is attached", while ->ub_disk is still NULL, so DEL_DEV right after ADD_DEV oopses in del_gendisk(). UBLK_S_DEV_QUIESCED plus UBLK_F_USER_RECOVERY dies one step earlier, in ublk_force_abort_dev(). A poisoned ->state also gets START_USER_RECOVERY and the char device read/write path onto a device that was never started, and wedges START_DEV at -EEXIST. A poisoned ->ublksrv_pid just makes GET_DEV_INFO report an unrelated task as the ublk server. Reset both after the memcpy(), as ublk_detach_disk() does. Userspace only ever reads these back, so correcting them silently breaks nothing. ADD_DEV has copied ->state in unsanitized since ublk was merged, but back then it was harmless: the gendisk was allocated during ADD_DEV, and both teardown and the START_DEV -EEXIST check keyed off disk_live() rather than ->state. The oops became reachable once the disk allocation moved to START_DEV and those checks switched to ->state.
Severity
No CVSS data available.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 6d9e6dfdf3b207701471f364121c67eefb000682 , < 787c944502e7e63d20a9201bada77e0dd924f458 (git)
Affected: 6d9e6dfdf3b207701471f364121c67eefb000682 , < ee41b00858ca65b4428e99efe39a4277c1f043d2 (git)
Affected: 6d9e6dfdf3b207701471f364121c67eefb000682 , < b67ce16b26ad0f14cfd6071013840aa95f823bea (git)
Affected: 6d9e6dfdf3b207701471f364121c67eefb000682 , < 205feb72e5beb3140e4e1403b6cff30cf739bab9 (git)
Affected: 6d9e6dfdf3b207701471f364121c67eefb000682 , < 127033b79383a3e78361d7e971588aa8849f5124 (git)
Affected: 6d9e6dfdf3b207701471f364121c67eefb000682 , < e65848e4ce352bac9e3465099354c8b8f845391f (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.0
Unaffected: 0 , < 6.0 (semver)
Unaffected: 6.1.183 , ≤ 6.1.* (semver)
Unaffected: 6.6.151 , ≤ 6.6.* (semver)
Unaffected: 6.12.103 , ≤ 6.12.* (semver)
Unaffected: 6.18.44 , ≤ 6.18.* (semver)
Unaffected: 7.1.8 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (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/block/ublk_drv.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "787c944502e7e63d20a9201bada77e0dd924f458",
              "status": "affected",
              "version": "6d9e6dfdf3b207701471f364121c67eefb000682",
              "versionType": "git"
            },
            {
              "lessThan": "ee41b00858ca65b4428e99efe39a4277c1f043d2",
              "status": "affected",
              "version": "6d9e6dfdf3b207701471f364121c67eefb000682",
              "versionType": "git"
            },
            {
              "lessThan": "b67ce16b26ad0f14cfd6071013840aa95f823bea",
              "status": "affected",
              "version": "6d9e6dfdf3b207701471f364121c67eefb000682",
              "versionType": "git"
            },
            {
              "lessThan": "205feb72e5beb3140e4e1403b6cff30cf739bab9",
              "status": "affected",
              "version": "6d9e6dfdf3b207701471f364121c67eefb000682",
              "versionType": "git"
            },
            {
              "lessThan": "127033b79383a3e78361d7e971588aa8849f5124",
              "status": "affected",
              "version": "6d9e6dfdf3b207701471f364121c67eefb000682",
              "versionType": "git"
            },
            {
              "lessThan": "e65848e4ce352bac9e3465099354c8b8f845391f",
              "status": "affected",
              "version": "6d9e6dfdf3b207701471f364121c67eefb000682",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/block/ublk_drv.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.0"
            },
            {
              "lessThan": "6.0",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.183",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.151",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.103",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.44",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.8",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.183",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.151",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.103",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.44",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.8",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nublk: reset kernel-owned dev_info fields in ublk_ctrl_add_dev()\n\nublk_ctrl_add_dev() memcpy()s the userspace ublksrv_ctrl_dev_info into\nub-\u003edev_info and then fixes up the fields the driver owns, but misses\n-\u003estate and -\u003eublksrv_pid.\n\nA device added with -\u003estate = UBLK_S_DEV_LIVE passes the\n\"-\u003estate != UBLK_S_DEV_DEAD\" test that ublk_stop_dev_unlocked() uses as its\nproxy for \"a disk is attached\", while -\u003eub_disk is still NULL, so DEL_DEV\nright after ADD_DEV oopses in del_gendisk().  UBLK_S_DEV_QUIESCED plus\nUBLK_F_USER_RECOVERY dies one step earlier, in ublk_force_abort_dev().  A\npoisoned -\u003estate also gets START_USER_RECOVERY and the char device\nread/write path onto a device that was never started, and wedges START_DEV\nat -EEXIST.  A poisoned -\u003eublksrv_pid just makes GET_DEV_INFO report an\nunrelated task as the ublk server.\n\nReset both after the memcpy(), as ublk_detach_disk() does.  Userspace only\never reads these back, so correcting them silently breaks nothing.\n\nADD_DEV has copied -\u003estate in unsanitized since ublk was merged, but back\nthen it was harmless: the gendisk was allocated during ADD_DEV, and both\nteardown and the START_DEV -EEXIST check keyed off disk_live() rather than\n-\u003estate.  The oops became reachable once the disk allocation moved to\nSTART_DEV and those checks switched to -\u003estate."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-19T16:37:23.182Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/787c944502e7e63d20a9201bada77e0dd924f458"
        },
        {
          "url": "https://git.kernel.org/stable/c/ee41b00858ca65b4428e99efe39a4277c1f043d2"
        },
        {
          "url": "https://git.kernel.org/stable/c/b67ce16b26ad0f14cfd6071013840aa95f823bea"
        },
        {
          "url": "https://git.kernel.org/stable/c/205feb72e5beb3140e4e1403b6cff30cf739bab9"
        },
        {
          "url": "https://git.kernel.org/stable/c/127033b79383a3e78361d7e971588aa8849f5124"
        },
        {
          "url": "https://git.kernel.org/stable/c/e65848e4ce352bac9e3465099354c8b8f845391f"
        }
      ],
      "title": "ublk: reset kernel-owned dev_info fields in ublk_ctrl_add_dev()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74472",
    "datePublished": "2026-08-15T12:27:08.759Z",
    "dateReserved": "2026-08-15T05:44:03.902Z",
    "dateUpdated": "2026-08-19T16:37:23.182Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-74472",
      "date": "2026-09-21",
      "epss": "0.00173",
      "percentile": "0.06982"
    },
    "microsoft_vex": {
      "current_release_date": "2026-08-23T14:59:11.000Z",
      "cve": "CVE-2026-74472",
      "id": "msrc_CVE-2026-74472",
      "initial_release_date": "2026-08-23T14:59:11.000Z",
      "product_status:known_not_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "ublk: reset kernel-owned dev_info fields in ublk_ctrl_add_dev()",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-74472.json",
      "version": "1"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/block/ublk_drv.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "787c944502e7e63d20a9201bada77e0dd924f458",
                    "status": "affected",
                    "version": "6d9e6dfdf3b207701471f364121c67eefb000682",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "ee41b00858ca65b4428e99efe39a4277c1f043d2",
                    "status": "affected",
                    "version": "6d9e6dfdf3b207701471f364121c67eefb000682",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "b67ce16b26ad0f14cfd6071013840aa95f823bea",
                    "status": "affected",
                    "version": "6d9e6dfdf3b207701471f364121c67eefb000682",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "205feb72e5beb3140e4e1403b6cff30cf739bab9",
                    "status": "affected",
                    "version": "6d9e6dfdf3b207701471f364121c67eefb000682",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "127033b79383a3e78361d7e971588aa8849f5124",
                    "status": "affected",
                    "version": "6d9e6dfdf3b207701471f364121c67eefb000682",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "e65848e4ce352bac9e3465099354c8b8f845391f",
                    "status": "affected",
                    "version": "6d9e6dfdf3b207701471f364121c67eefb000682",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/block/ublk_drv.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.0"
                  },
                  {
                    "lessThan": "6.0",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.1.*",
                    "status": "unaffected",
                    "version": "6.1.183",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.6.*",
                    "status": "unaffected",
                    "version": "6.6.151",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.103",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.44",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.8",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.2",
                    "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\nublk: reset kernel-owned dev_info fields in ublk_ctrl_add_dev()\n\nublk_ctrl_add_dev() memcpy()s the userspace ublksrv_ctrl_dev_info into\nub-\u003edev_info and then fixes up the fields the driver owns, but misses\n-\u003estate and -\u003eublksrv_pid.\n\nA device added with -\u003estate = UBLK_S_DEV_LIVE passes the\n\"-\u003estate != UBLK_S_DEV_DEAD\" test that ublk_stop_dev_unlocked() uses as its\nproxy for \"a disk is attached\", while -\u003eub_disk is still NULL, so DEL_DEV\nright after ADD_DEV oopses in del_gendisk().  UBLK_S_DEV_QUIESCED plus\nUBLK_F_USER_RECOVERY dies one step earlier, in ublk_force_abort_dev().  A\npoisoned -\u003estate also gets START_USER_RECOVERY and the char device\nread/write path onto a device that was never started, and wedges START_DEV\nat -EEXIST.  A poisoned -\u003eublksrv_pid just makes GET_DEV_INFO report an\nunrelated task as the ublk server.\n\nReset both after the memcpy(), as ublk_detach_disk() does.  Userspace only\never reads these back, so correcting them silently breaks nothing.\n\nADD_DEV has copied -\u003estate in unsanitized since ublk was merged, but back\nthen it was harmless: the gendisk was allocated during ADD_DEV, and both\nteardown and the START_DEV -EEXIST check keyed off disk_live() rather than\n-\u003estate.  The oops became reachable once the disk allocation moved to\nSTART_DEV and those checks switched to -\u003estate."
          }
        ],
        "id": "CVE-2026-74472",
        "lastModified": "2026-08-19T17:21:04.490",
        "metrics": {},
        "published": "2026-08-15T13:17:51.953",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/127033b79383a3e78361d7e971588aa8849f5124"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/205feb72e5beb3140e4e1403b6cff30cf739bab9"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/787c944502e7e63d20a9201bada77e0dd924f458"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/b67ce16b26ad0f14cfd6071013840aa95f823bea"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/e65848e4ce352bac9e3465099354c8b8f845391f"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/ee41b00858ca65b4428e99efe39a4277c1f043d2"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-19T17:41:05+00:00",
      "cve": "CVE-2026-74472",
      "id": "CVE-2026-74472",
      "initial_release_date": "2026-08-15T00:00:00+00:00",
      "product_status:known_affected": "76",
      "product_status:known_not_affected": "198",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: ublk: reset kernel-owned dev_info fields in ublk_ctrl_add_dev()",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74472.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-15T01:20:35Z",
      "cve": "CVE-2026-74472",
      "id": "CVE-2026-74472",
      "initial_release_date": "2026-08-15T23:52:17Z",
      "product_status:known_affected": "123",
      "product_status:known_not_affected": "239",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-74472",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-74472.json",
      "version": "7"
    }
  }
}



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…