GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2026-43067 (GCVE-0-2026-43067)

Vulnerability from cvelistv5 – Published: 2026-05-05 15:23 – Updated: 2026-08-05 12:25
VLAI
Title
ext4: handle wraparound when searching for blocks for indirect mapped blocks
Summary
In the Linux kernel, the following vulnerability has been resolved: ext4: handle wraparound when searching for blocks for indirect mapped blocks Commit 4865c768b563 ("ext4: always allocate blocks only from groups inode can use") restricts what blocks will be allocated for indirect block based files to block numbers that fit within 32-bit block numbers. However, when using a review bot running on the latest Gemini LLM to check this commit when backporting into an LTS based kernel, it raised this concern: If ac->ac_g_ex.fe_group is >= ngroups (for instance, if the goal group was populated via stream allocation from s_mb_last_groups), then start will be >= ngroups. Does this allow allocating blocks beyond the 32-bit limit for indirect block mapped files? The commit message mentions that ext4_mb_scan_groups_linear() takes care to not select unsupported groups. However, its loop uses group = *start, and the very first iteration will call ext4_mb_scan_group() with this unsupported group because next_linear_group() is only called at the end of the iteration. After reviewing the code paths involved and considering the LLM review, I determined that this can happen when there is a file system where some files/directories are extent-mapped and others are indirect-block mapped. To address this, add a safety clamp in ext4_mb_scan_groups().
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 9d89b9d55e25cb340c5b4b769876edc551b7a9ff , < f89bba144938921a2249237ad04a0183ff3f8930 (git)
Affected: 1b0edd6022a3f44ce87fea9959a9310f4628fbea , < 83170a05908b6cf2fb3235d3065bf613ff866f3c (git)
Affected: 9eea2f57d11b30049ff996ac3eff6e0dc8089e5f , < 4bec4a498ce86314d470ae6144120461f2138c29 (git)
Affected: 34c803edc0b3365a42efcf9815acab63b4cf54e0 , < 12624c5b724a81e14e532972b40d863b0de3b7d1 (git)
Affected: 321ed8d559c951e71ad2d2d69a4cf0445644e865 , < 2a368ccddfc492a0aa951e2caef2985f20e96503 (git)
Affected: 4865c768b563deff1b6a6384e74a62f143427b42 , < bb81702370fad22c06ca12b6e1648754dbc37e0f (git)
Affected: 16fce6b6c0b247258c6c217fce5a48abf50f6964 (git)
Affected: 5.15.203 , < 5.16 (semver)
guessed Create a notification for this product.
Linux Linux Affected: 6.1.167 , < 6.1.168 (semver)
Affected: 6.6.130 , < 6.6.134 (semver)
Affected: 6.12.77 , < 6.12.80 (semver)
Affected: 6.18.14 , < 6.18.21 (semver)
Affected: 6.19.4 , < 6.19.11 (semver)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/ext4/mballoc.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "f89bba144938921a2249237ad04a0183ff3f8930",
              "status": "affected",
              "version": "9d89b9d55e25cb340c5b4b769876edc551b7a9ff",
              "versionType": "git"
            },
            {
              "lessThan": "83170a05908b6cf2fb3235d3065bf613ff866f3c",
              "status": "affected",
              "version": "1b0edd6022a3f44ce87fea9959a9310f4628fbea",
              "versionType": "git"
            },
            {
              "lessThan": "4bec4a498ce86314d470ae6144120461f2138c29",
              "status": "affected",
              "version": "9eea2f57d11b30049ff996ac3eff6e0dc8089e5f",
              "versionType": "git"
            },
            {
              "lessThan": "12624c5b724a81e14e532972b40d863b0de3b7d1",
              "status": "affected",
              "version": "34c803edc0b3365a42efcf9815acab63b4cf54e0",
              "versionType": "git"
            },
            {
              "lessThan": "2a368ccddfc492a0aa951e2caef2985f20e96503",
              "status": "affected",
              "version": "321ed8d559c951e71ad2d2d69a4cf0445644e865",
              "versionType": "git"
            },
            {
              "lessThan": "bb81702370fad22c06ca12b6e1648754dbc37e0f",
              "status": "affected",
              "version": "4865c768b563deff1b6a6384e74a62f143427b42",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "16fce6b6c0b247258c6c217fce5a48abf50f6964",
              "versionType": "git"
            },
            {
              "lessThan": "5.16",
              "status": "affected",
              "version": "5.15.203",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/ext4/mballoc.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "6.1.168",
              "status": "affected",
              "version": "6.1.167",
              "versionType": "semver"
            },
            {
              "lessThan": "6.6.134",
              "status": "affected",
              "version": "6.6.130",
              "versionType": "semver"
            },
            {
              "lessThan": "6.12.80",
              "status": "affected",
              "version": "6.12.77",
              "versionType": "semver"
            },
            {
              "lessThan": "6.18.21",
              "status": "affected",
              "version": "6.18.14",
              "versionType": "semver"
            },
            {
              "lessThan": "6.19.11",
              "status": "affected",
              "version": "6.19.4",
              "versionType": "semver"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.168",
                  "versionStartIncluding": "6.1.167",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.134",
                  "versionStartIncluding": "6.6.130",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.80",
                  "versionStartIncluding": "6.12.77",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.21",
                  "versionStartIncluding": "6.18.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.19.11",
                  "versionStartIncluding": "6.19.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.15.203",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\next4: handle wraparound when searching for blocks for indirect mapped blocks\n\nCommit 4865c768b563 (\"ext4: always allocate blocks only from groups\ninode can use\") restricts what blocks will be allocated for indirect\nblock based files to block numbers that fit within 32-bit block\nnumbers.\n\nHowever, when using a review bot running on the latest Gemini LLM to\ncheck this commit when backporting into an LTS based kernel, it raised\nthis concern:\n\n   If ac-\u003eac_g_ex.fe_group is \u003e= ngroups (for instance, if the goal\n   group was populated via stream allocation from s_mb_last_groups),\n   then start will be \u003e= ngroups.\n\n   Does this allow allocating blocks beyond the 32-bit limit for\n   indirect block mapped files? The commit message mentions that\n   ext4_mb_scan_groups_linear() takes care to not select unsupported\n   groups. However, its loop uses group = *start, and the very first\n   iteration will call ext4_mb_scan_group() with this unsupported\n   group because next_linear_group() is only called at the end of the\n   iteration.\n\nAfter reviewing the code paths involved and considering the LLM\nreview, I determined that this can happen when there is a file system\nwhere some files/directories are extent-mapped and others are\nindirect-block mapped.  To address this, add a safety clamp in\next4_mb_scan_groups()."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 9.8,
            "baseSeverity": "CRITICAL",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - In a reasonable high-impact deployment, a writable ext4 filesystem can be exported by in-kernel NFS or ksmbd, whose WRITE handlers enter the same VFS/ext4 allocation path. Local writes also reach it, but network is the highest defensible vector for an exported writable share.\nAC:L - Once the affected large mixed-format ext4 filesystem state exists, triggering is a normal file allocation/write path with no race or probabilistic memory condition. The attacker can drive stream allocation and indirect-file allocation through repeated writes.\nPR:N - A writable anonymous or guest NFS/SMB export can reach the vulnerable write path without local credentials or kernel capabilities. Even locally, only ordinary write permission to an affected file is needed, not administrative privilege.\nUI:N - No victim action is required after the vulnerable filesystem/share is available. The attacker triggers allocation directly by writing data.\nS:U - The impact remains within the kernel/filesystem security authority. This is not a VM escape, IOMMU bypass, or cross-authority sandbox escape.\nC:H - The bug can allocate a physical block above the 32-bit indirect-block limit and then store it through a 32-bit indirect pointer, wrapping the file mapping to another on-disk block. That can expose arbitrary file data from the same filesystem through the attacker\u0027s file.\nI:H - The wrapped indirect pointer can make attacker writes target blocks that were not actually allocated to the file. This can overwrite other file data or corrupt the filesystem.\nA:H - Filesystem corruption can make data unavailable and can force ext4 errors or read-only/remediation states. Repeated writes can reliably recreate the corruption on an affected deployment."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:25:42.475Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/f89bba144938921a2249237ad04a0183ff3f8930"
        },
        {
          "url": "https://git.kernel.org/stable/c/83170a05908b6cf2fb3235d3065bf613ff866f3c"
        },
        {
          "url": "https://git.kernel.org/stable/c/4bec4a498ce86314d470ae6144120461f2138c29"
        },
        {
          "url": "https://git.kernel.org/stable/c/12624c5b724a81e14e532972b40d863b0de3b7d1"
        },
        {
          "url": "https://git.kernel.org/stable/c/2a368ccddfc492a0aa951e2caef2985f20e96503"
        },
        {
          "url": "https://git.kernel.org/stable/c/bb81702370fad22c06ca12b6e1648754dbc37e0f"
        }
      ],
      "title": "ext4: handle wraparound when searching for blocks for indirect mapped blocks",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-43067",
    "datePublished": "2026-05-05T15:23:26.717Z",
    "dateReserved": "2026-05-01T14:12:55.981Z",
    "dateUpdated": "2026-08-05T12:25:42.475Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-43067",
      "date": "2026-09-15",
      "epss": "0.00403",
      "percentile": "0.33914"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-43067\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-05-05T16:16:15.937\",\"lastModified\":\"2026-06-17T10:48:52.307\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\next4: handle wraparound when searching for blocks for indirect mapped blocks\\n\\nCommit 4865c768b563 (\\\"ext4: always allocate blocks only from groups\\ninode can use\\\") restricts what blocks will be allocated for indirect\\nblock based files to block numbers that fit within 32-bit block\\nnumbers.\\n\\nHowever, when using a review bot running on the latest Gemini LLM to\\ncheck this commit when backporting into an LTS based kernel, it raised\\nthis concern:\\n\\n   If ac-\u003eac_g_ex.fe_group is \u003e= ngroups (for instance, if the goal\\n   group was populated via stream allocation from s_mb_last_groups),\\n   then start will be \u003e= ngroups.\\n\\n   Does this allow allocating blocks beyond the 32-bit limit for\\n   indirect block mapped files? The commit message mentions that\\n   ext4_mb_scan_groups_linear() takes care to not select unsupported\\n   groups. However, its loop uses group = *start, and the very first\\n   iteration will call ext4_mb_scan_group() with this unsupported\\n   group because next_linear_group() is only called at the end of the\\n   iteration.\\n\\nAfter reviewing the code paths involved and considering the LLM\\nreview, I determined that this can happen when there is a file system\\nwhere some files/directories are extent-mapped and others are\\nindirect-block mapped.  To address this, add a safety clamp in\\next4_mb_scan_groups().\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"fs/ext4/mballoc.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"9d89b9d55e25cb340c5b4b769876edc551b7a9ff\",\"lessThan\":\"f89bba144938921a2249237ad04a0183ff3f8930\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"1b0edd6022a3f44ce87fea9959a9310f4628fbea\",\"lessThan\":\"83170a05908b6cf2fb3235d3065bf613ff866f3c\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"9eea2f57d11b30049ff996ac3eff6e0dc8089e5f\",\"lessThan\":\"4bec4a498ce86314d470ae6144120461f2138c29\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"34c803edc0b3365a42efcf9815acab63b4cf54e0\",\"lessThan\":\"12624c5b724a81e14e532972b40d863b0de3b7d1\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"321ed8d559c951e71ad2d2d69a4cf0445644e865\",\"lessThan\":\"2a368ccddfc492a0aa951e2caef2985f20e96503\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"4865c768b563deff1b6a6384e74a62f143427b42\",\"lessThan\":\"bb81702370fad22c06ca12b6e1648754dbc37e0f\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"16fce6b6c0b247258c6c217fce5a48abf50f6964\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"5.15.203\",\"lessThan\":\"5.16\",\"versionType\":\"semver\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"fs/ext4/mballoc.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.1.167\",\"lessThan\":\"6.1.168\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"6.6.130\",\"lessThan\":\"6.6.134\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"6.12.77\",\"lessThan\":\"6.12.80\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"6.18.14\",\"lessThan\":\"6.18.21\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"6.19.4\",\"lessThan\":\"6.19.11\",\"versionType\":\"semver\",\"status\":\"affected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":9.8,\"baseSeverity\":\"CRITICAL\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":3.9,\"impactScore\":5.9}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.15.203\",\"versionEndExcluding\":\"5.16\",\"matchCriteriaId\":\"65BC3363-9FA5-4980-B120-042521BD0F34\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.6.130\",\"versionEndExcluding\":\"6.6.134\",\"matchCriteriaId\":\"B71F66A1-26CE-4A17-BBAB-34A1AE897567\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.12.77\",\"versionEndExcluding\":\"6.12.80\",\"matchCriteriaId\":\"C8D55175-C5FF-47BC-BC65-A2B06E3021A1\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.18.14\",\"versionEndExcluding\":\"6.18.21\",\"matchCriteriaId\":\"DEA57E4E-36B0-40D5-98B9-6A50348C9E74\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.19.4\",\"versionEndExcluding\":\"6.19.11\",\"matchCriteriaId\":\"A67B0458-DAE3-4940-BBB2-1A4D263AF27B\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.1.167:*:*:*:*:*:*:*\",\"matchCriteriaId\":\"B898A4FB-4E74-40F7-B523-B71FFB681B6D\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/12624c5b724a81e14e532972b40d863b0de3b7d1\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/2a368ccddfc492a0aa951e2caef2985f20e96503\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/4bec4a498ce86314d470ae6144120461f2138c29\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/83170a05908b6cf2fb3235d3065bf613ff866f3c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/bb81702370fad22c06ca12b6e1648754dbc37e0f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/f89bba144938921a2249237ad04a0183ff3f8930\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-07-03T14:57:28+00:00",
      "cve": "CVE-2026-43067",
      "id": "CVE-2026-43067",
      "initial_release_date": "2026-05-05T00:00:00+00:00",
      "product_status:known_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: ext4: handle wraparound when searching for blocks for indirect mapped blocks",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-43067.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-06T01:21:48Z",
      "cve": "CVE-2026-43067",
      "id": "CVE-2026-43067",
      "initial_release_date": "2026-05-06T01:40:35Z",
      "product_status:known_not_affected": "293",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-43067",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-43067.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…