CVE-2026-64053 (GCVE-0-2026-64053)

Vulnerability from cvelistv5 – Published: 2026-07-19 15:39 – Updated: 2026-08-05 12:38
VLAI
Title
block: don't overwrite bip_vcnt in bio_integrity_copy_user()
Summary
In the Linux kernel, the following vulnerability has been resolved: block: don't overwrite bip_vcnt in bio_integrity_copy_user() bio_integrity_add_page() already sets bip_vcnt to 1 for the bounce segment. Overwriting it with nr_vecs breaks bip_vcnt <= bip_max_vcnt on WRITE (bip_max_vcnt is 1), so the gap-merge checks in block/blk.h read past the bip_vec[] flex array. On READ the read is in bounds but lands on a saved user bvec instead of the bounce. The line was added for split propagation, but bio_integrity_clone() doesn't copy bip_vcnt and BIP_CLONE_FLAGS excludes BIP_COPY_USER.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 3991657ae7074c3c497bf095093178bed37ea1b4 , < d18160c9525c63c203656fefd847e94b538cd4a4 (git)
Affected: 3991657ae7074c3c497bf095093178bed37ea1b4 , < 0d48654af4d1390c888389206cc13b51b82c30e6 (git)
Affected: 3991657ae7074c3c497bf095093178bed37ea1b4 , < 066be1439593a381b1a29663becfcfe0c92363e7 (git)
Affected: 3991657ae7074c3c497bf095093178bed37ea1b4 , < 637ad3a56a3b889527d1dacea6fea2a8bd648140 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.11
Unaffected: 0 , < 6.11 (semver)
Unaffected: 6.12.92 , ≤ 6.12.* (semver)
Unaffected: 6.18.34 , ≤ 6.18.* (semver)
Unaffected: 7.0.11 , ≤ 7.0.* (semver)
Unaffected: 7.1 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "block/bio-integrity.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "d18160c9525c63c203656fefd847e94b538cd4a4",
              "status": "affected",
              "version": "3991657ae7074c3c497bf095093178bed37ea1b4",
              "versionType": "git"
            },
            {
              "lessThan": "0d48654af4d1390c888389206cc13b51b82c30e6",
              "status": "affected",
              "version": "3991657ae7074c3c497bf095093178bed37ea1b4",
              "versionType": "git"
            },
            {
              "lessThan": "066be1439593a381b1a29663becfcfe0c92363e7",
              "status": "affected",
              "version": "3991657ae7074c3c497bf095093178bed37ea1b4",
              "versionType": "git"
            },
            {
              "lessThan": "637ad3a56a3b889527d1dacea6fea2a8bd648140",
              "status": "affected",
              "version": "3991657ae7074c3c497bf095093178bed37ea1b4",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "block/bio-integrity.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.11"
            },
            {
              "lessThan": "6.11",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.92",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.34",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.0.*",
              "status": "unaffected",
              "version": "7.0.11",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.92",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.34",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0.11",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nblock: don\u0027t overwrite bip_vcnt in bio_integrity_copy_user()\n\nbio_integrity_add_page() already sets bip_vcnt to 1 for the bounce\nsegment. Overwriting it with nr_vecs breaks bip_vcnt \u003c= bip_max_vcnt\non WRITE (bip_max_vcnt is 1), so the gap-merge checks in block/blk.h\nread past the bip_vec[] flex array. On READ the read is in bounds\nbut lands on a saved user bvec instead of the bounce.\n\nThe line was added for split propagation, but bio_integrity_clone()\ndoesn\u0027t copy bip_vcnt and BIP_CLONE_FLAGS excludes BIP_COPY_USER."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is only reachable via local syscalls on an integrity-capable block device\u2014io_uring read/write with PI attributes (`IOCB_HAS_METADATA` \u2192 `bio_integrity_map_iter()`) or NVMe ioctls (`NVME_IOCTL_SUBMIT_IO`/`NVME_IOCTL_IO_CMD` \u2192 `blk_rq_integrity_map_user()`). No network-facing server path (ksmbd, nfsd, nvmet) calls `bio_integrity_copy_user()`.\nAC:L - An attacker fully controls the conditions needed to hit the copy path and trigger the bad index: misaligned or multi-segment integrity user buffers force `copy=true`, multi-page scatter yields `nr_bvecs\u003e1`, and concurrent O_DIRECT integrity writes to the same queue trigger `integrity_req_gap_*_merge()` that dereferences the corrupted `bip_vcnt`.\nPR:L - No kernel capabilities or init-namespace root are required beyond permission to open and perform O_DIRECT I/O on an integrity-enabled block device (`/dev/nvme*`, SCSI DIF disk); io_uring and NVMe ioctls are available to any local user granted device access (e.g., disk group, container volume mounts on storage nodes).\nUI:N - Exploitation is self-initiated by the attacker issuing crafted integrity I/O; no victim interaction such as mounting a filesystem or opening a file is required.\nS:U - Impact is confined to kernel memory safety within the block-integrity path on the host; it does not cross a VM, IOMMU, or sandbox security boundary.\nC:H - On WRITE, `bip_vcnt` is incorrectly set to `nr_vecs` while `bip_max_vcnt` is 1, so `integrity_req_gap_back_merge()`/`integrity_req_gap_front_merge()` in `block/blk.h` index `bip_vec[bip_vcnt-1]` past the single-slot kmalloc flex array, causing an out-of-bounds read of adjacent kernel heap memory that can disclose kernel pointers and other sensitive data.\nI:H - The corrupted `bip_vcnt` breaks integrity metadata bookkeeping during bio/request merging; on READ it causes gap-merge logic to consult saved user bvecs instead of the kernel bounce buffer, and the heap OOB read corrupts kernel memory-safety invariants in ways that can be chained toward further memory corruption or control-flow manipulation.\nA:H - With large `nr_bvecs` (up to `BIO_MAX_VECS`), the out-of-bounds `bip_vec` access can extend far beyond the kmalloc object boundary and provoke a kernel oops/page fault during merge processing; even without full exploitation, the integrity path malfunction can destabilize the I/O stack."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:38:43.588Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/d18160c9525c63c203656fefd847e94b538cd4a4"
        },
        {
          "url": "https://git.kernel.org/stable/c/0d48654af4d1390c888389206cc13b51b82c30e6"
        },
        {
          "url": "https://git.kernel.org/stable/c/066be1439593a381b1a29663becfcfe0c92363e7"
        },
        {
          "url": "https://git.kernel.org/stable/c/637ad3a56a3b889527d1dacea6fea2a8bd648140"
        }
      ],
      "title": "block: don\u0027t overwrite bip_vcnt in bio_integrity_copy_user()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-64053",
    "datePublished": "2026-07-19T15:39:35.854Z",
    "dateReserved": "2026-07-19T07:54:57.029Z",
    "dateUpdated": "2026-08-05T12:38:43.588Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-64053",
      "date": "2026-09-21",
      "epss": "0.00129",
      "percentile": "0.02869"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "block/bio-integrity.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "d18160c9525c63c203656fefd847e94b538cd4a4",
                    "status": "affected",
                    "version": "3991657ae7074c3c497bf095093178bed37ea1b4",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "0d48654af4d1390c888389206cc13b51b82c30e6",
                    "status": "affected",
                    "version": "3991657ae7074c3c497bf095093178bed37ea1b4",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "066be1439593a381b1a29663becfcfe0c92363e7",
                    "status": "affected",
                    "version": "3991657ae7074c3c497bf095093178bed37ea1b4",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "637ad3a56a3b889527d1dacea6fea2a8bd648140",
                    "status": "affected",
                    "version": "3991657ae7074c3c497bf095093178bed37ea1b4",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "block/bio-integrity.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.11"
                  },
                  {
                    "lessThan": "6.11",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.92",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.34",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.0.*",
                    "status": "unaffected",
                    "version": "7.0.11",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.1",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "configurations": [
          {
            "nodes": [
              {
                "cpeMatch": [
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "AFEC5E32-5D1A-40AF-B543-F621484B76AA",
                    "versionEndExcluding": "6.12.92",
                    "versionStartIncluding": "6.11",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "A4B1EF6D-18D7-4838-BC37-7499D5DCC3C0",
                    "versionEndExcluding": "6.18.34",
                    "versionStartIncluding": "6.13",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "0520D091-FC52-4A50-AF07-70AE7D08B750",
                    "versionEndExcluding": "7.0.11",
                    "versionStartIncluding": "6.19",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:*",
                    "matchCriteriaId": "B1EF7059-E670-45F4-B422-54C40FA86390",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:*",
                    "matchCriteriaId": "0D38F0BF-A728-4133-A358-D44A2F7EE6D6",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:7.1:rc3:*:*:*:*:*:*",
                    "matchCriteriaId": "EC732D08-5F7B-46D9-B154-E60C7F4F0A97",
                    "vulnerable": true
                  }
                ],
                "negate": false,
                "operator": "OR"
              }
            ]
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nblock: don\u0027t overwrite bip_vcnt in bio_integrity_copy_user()\n\nbio_integrity_add_page() already sets bip_vcnt to 1 for the bounce\nsegment. Overwriting it with nr_vecs breaks bip_vcnt \u003c= bip_max_vcnt\non WRITE (bip_max_vcnt is 1), so the gap-merge checks in block/blk.h\nread past the bip_vec[] flex array. On READ the read is in bounds\nbut lands on a saved user bvec instead of the bounce.\n\nThe line was added for split propagation, but bio_integrity_clone()\ndoesn\u0027t copy bip_vcnt and BIP_CLONE_FLAGS excludes BIP_COPY_USER."
          }
        ],
        "id": "CVE-2026-64053",
        "lastModified": "2026-09-02T21:09:42.357",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-07-19T16:17:45.730",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/066be1439593a381b1a29663becfcfe0c92363e7"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/0d48654af4d1390c888389206cc13b51b82c30e6"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/637ad3a56a3b889527d1dacea6fea2a8bd648140"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/d18160c9525c63c203656fefd847e94b538cd4a4"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Analyzed",
        "weaknesses": [
          {
            "description": [
              {
                "lang": "en",
                "value": "NVD-CWE-noinfo"
              }
            ],
            "source": "nvd@nist.gov",
            "type": "Primary"
          }
        ]
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-07-21T07:04:35+00:00",
      "cve": "CVE-2026-64053",
      "id": "CVE-2026-64053",
      "initial_release_date": "2026-07-19T00:00:00+00:00",
      "product_status:known_affected": "184",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: block: don\u0027t overwrite bip_vcnt in bio_integrity_copy_user()",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-64053.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "important",
      "current_release_date": "2026-09-15T01:56:41Z",
      "cve": "CVE-2026-64053",
      "id": "CVE-2026-64053",
      "initial_release_date": "2026-07-21T13:00:30Z",
      "product_status:known_affected": "29",
      "product_status:known_not_affected": "345",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-64053",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-64053.json",
      "version": "5"
    }
  }
}



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…

Detection rules are retrieved from Rulezet.

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…