CVE-2026-74306 (GCVE-0-2026-74306)

Vulnerability from cvelistv5 – Published: 2026-08-15 05:58 – Updated: 2026-08-17 05:45
VLAI
Title
vfio/qat: fix f_pos race in qat_vf_resume_write()
Summary
In the Linux kernel, the following vulnerability has been resolved: vfio/qat: fix f_pos race in qat_vf_resume_write() qat_vf_resume_write() checks filp->f_pos before taking migf->lock, but copies into the migration-state buffer after taking the lock and re-reading the shared file position. Two concurrent writers could therefore pass the bounds check with the old offset, then have the second writer copy after the first advanced f_pos, writing past the end of the migration-state buffer. Take migf->lock before doing the boundary checks.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: bb208810b1abf1c84870cfbe1cc9cf1a1d35c607 , < 6465af0004dc1b067129a26ef44f19cdf13bbce6 (git)
Affected: bb208810b1abf1c84870cfbe1cc9cf1a1d35c607 , < d416dcefdbac90d96b22485fd93f28229ad9984b (git)
Affected: bb208810b1abf1c84870cfbe1cc9cf1a1d35c607 , < b6fd7a40a66485c8aa8156d8fcf50b95cb8ba281 (git)
Affected: bb208810b1abf1c84870cfbe1cc9cf1a1d35c607 , < 4ec5e932e636896e97e4c6a8205b0ac76d52421a (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.10
Unaffected: 0 , < 6.10 (semver)
Unaffected: 6.12.97 , ≤ 6.12.* (semver)
Unaffected: 6.18.40 , ≤ 6.18.* (semver)
Unaffected: 7.1.5 , ≤ 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/vfio/pci/qat/main.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "6465af0004dc1b067129a26ef44f19cdf13bbce6",
              "status": "affected",
              "version": "bb208810b1abf1c84870cfbe1cc9cf1a1d35c607",
              "versionType": "git"
            },
            {
              "lessThan": "d416dcefdbac90d96b22485fd93f28229ad9984b",
              "status": "affected",
              "version": "bb208810b1abf1c84870cfbe1cc9cf1a1d35c607",
              "versionType": "git"
            },
            {
              "lessThan": "b6fd7a40a66485c8aa8156d8fcf50b95cb8ba281",
              "status": "affected",
              "version": "bb208810b1abf1c84870cfbe1cc9cf1a1d35c607",
              "versionType": "git"
            },
            {
              "lessThan": "4ec5e932e636896e97e4c6a8205b0ac76d52421a",
              "status": "affected",
              "version": "bb208810b1abf1c84870cfbe1cc9cf1a1d35c607",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/vfio/pci/qat/main.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.10"
            },
            {
              "lessThan": "6.10",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.97",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.40",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.5",
              "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.12.97",
                  "versionStartIncluding": "6.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.40",
                  "versionStartIncluding": "6.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.5",
                  "versionStartIncluding": "6.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.10",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvfio/qat: fix f_pos race in qat_vf_resume_write()\n\nqat_vf_resume_write() checks filp-\u003ef_pos before taking migf-\u003elock, but\ncopies into the migration-state buffer after taking the lock and\nre-reading the shared file position.\n\nTwo concurrent writers could therefore pass the bounds check with the\nold offset, then have the second writer copy after the first advanced\nf_pos, writing past the end of the migration-state buffer.\n\nTake migf-\u003elock before doing the boundary checks."
        }
      ],
      "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 - Exploitation requires local write() syscalls on a VFIO live-migration resume fd returned by VFIO_DEVICE_FEATURE_MIG_DEVICE_STATE ioctl on an opened QAT VFIO PCI device; there is no network, adjacent-wireless, or physical-device attack path to this code.\nAC:L - An attacker with the migration fd controls both racing writers (e.g., concurrent threads or dup\u0027d fds sharing f_pos) and can repeatedly trigger the TOCTOU window near the buffer end until the overflow succeeds; no uncontrollable victim timing or memory layout is required.\nPR:L - Exploitation requires only local access to an assigned Intel QAT VFIO device migration fd (typical QEMU/cloud/HPC VFIO clients), not real root in the init namespace; capabilities like CAP_NET_ADMIN via user namespaces do not grant this path.\nUI:N - No victim interaction is required; the attacker drives VFIO migration state transitions and concurrent writes to the resume fd programmatically without any separate user or administrator action during exploitation.\nS:U - The flaw corrupts host kernel heap memory from a VFIO client context and does not by itself cross an IOMMU, VM-guest, or other distinct security authority boundary; impact remains host kernel compromise/DoS within the same authority.\nC:H - The race yields an attacker-controlled heap out-of-bounds write past the 4096-byte migration-state kmalloc buffer, which can corrupt adjacent kernel objects and be leveraged for arbitrary kernel memory disclosure, not merely a bounded leak.\nI:H - copy_from_user() writes attacker-controlled data beyond mig_dev-\u003estate, enabling heap corruption and potential arbitrary kernel write or code-execution primitives through grooming of adjacent kmalloc objects.\nA:H - Heap corruption from the out-of-bounds write can immediately panic or oops the kernel or destabilize the system even when full exploitation is not attempted, satisfying high availability impact for kernel memory corruption."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:45:40.501Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/6465af0004dc1b067129a26ef44f19cdf13bbce6"
        },
        {
          "url": "https://git.kernel.org/stable/c/d416dcefdbac90d96b22485fd93f28229ad9984b"
        },
        {
          "url": "https://git.kernel.org/stable/c/b6fd7a40a66485c8aa8156d8fcf50b95cb8ba281"
        },
        {
          "url": "https://git.kernel.org/stable/c/4ec5e932e636896e97e4c6a8205b0ac76d52421a"
        }
      ],
      "title": "vfio/qat: fix f_pos race in qat_vf_resume_write()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74306",
    "datePublished": "2026-08-15T05:58:07.313Z",
    "dateReserved": "2026-08-15T05:44:03.883Z",
    "dateUpdated": "2026-08-17T05:45:40.501Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-74306",
      "date": "2026-09-21",
      "epss": "0.00129",
      "percentile": "0.02863"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/vfio/pci/qat/main.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "6465af0004dc1b067129a26ef44f19cdf13bbce6",
                    "status": "affected",
                    "version": "bb208810b1abf1c84870cfbe1cc9cf1a1d35c607",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "d416dcefdbac90d96b22485fd93f28229ad9984b",
                    "status": "affected",
                    "version": "bb208810b1abf1c84870cfbe1cc9cf1a1d35c607",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "b6fd7a40a66485c8aa8156d8fcf50b95cb8ba281",
                    "status": "affected",
                    "version": "bb208810b1abf1c84870cfbe1cc9cf1a1d35c607",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "4ec5e932e636896e97e4c6a8205b0ac76d52421a",
                    "status": "affected",
                    "version": "bb208810b1abf1c84870cfbe1cc9cf1a1d35c607",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/vfio/pci/qat/main.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.10"
                  },
                  {
                    "lessThan": "6.10",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.97",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.40",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.5",
                    "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\nvfio/qat: fix f_pos race in qat_vf_resume_write()\n\nqat_vf_resume_write() checks filp-\u003ef_pos before taking migf-\u003elock, but\ncopies into the migration-state buffer after taking the lock and\nre-reading the shared file position.\n\nTwo concurrent writers could therefore pass the bounds check with the\nold offset, then have the second writer copy after the first advanced\nf_pos, writing past the end of the migration-state buffer.\n\nTake migf-\u003elock before doing the boundary checks."
          }
        ],
        "id": "CVE-2026-74306",
        "lastModified": "2026-08-17T06:19:24.793",
        "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-08-15T06:22:30.357",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/4ec5e932e636896e97e4c6a8205b0ac76d52421a"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/6465af0004dc1b067129a26ef44f19cdf13bbce6"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/b6fd7a40a66485c8aa8156d8fcf50b95cb8ba281"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/d416dcefdbac90d96b22485fd93f28229ad9984b"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-20T16:37:55+00:00",
      "cve": "CVE-2026-74306",
      "id": "CVE-2026-74306",
      "initial_release_date": "2026-08-15T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: vfio/qat: fix f_pos race in qat_vf_resume_write()",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74306.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-15T01:23:12Z",
      "cve": "CVE-2026-74306",
      "id": "CVE-2026-74306",
      "initial_release_date": "2026-08-27T00:22:59Z",
      "product_status:known_affected": "29",
      "product_status:known_not_affected": "333",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-74306",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-74306.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…

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…