CVE-2026-68442 (GCVE-0-2026-68442)

Vulnerability from cvelistv5 – Published: 2026-08-12 00:07 – Updated: 2026-08-17 05:05
VLAI
Title
btrfs: don't propagate EXTENT_FLAG_LOGGING to split extent maps
Summary
In the Linux kernel, the following vulnerability has been resolved: btrfs: don't propagate EXTENT_FLAG_LOGGING to split extent maps When btrfs_drop_extent_map_range() splits an extent map, the new split maps inherit the original map's flags through a local 'flags' variable. Commit f86f7a75e2fb ("btrfs: use the flags of an extent map to identify the compression type") changed the EXTENT_FLAG_LOGGING clearing to operate on em->flags instead of that local 'flags' copy, so a split of an extent map that is currently being logged wrongly inherits EXTENT_FLAG_LOGGING. The flag is then never cleared on the split, and when it is freed while still on the inode's modified_extents list (for example by the extent map shrinker) it trips the WARN_ON(!list_empty(&em->list)) in btrfs_free_extent_map() and leads to a use-after-free. Clear EXTENT_FLAG_LOGGING from the local 'flags' copy used for the splits and only clear EXTENT_FLAG_PINNED from em->flags, restoring the behaviour prior to f86f7a75e2fb.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9 , < 2a9246a424f45f33a1b8367052611ebe874868ad (git)
Affected: f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9 , < 9304713b70e7e1450e3a76e758836fe5391bfa95 (git)
Affected: f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9 , < 0e465c63f103a5ce6849614d6bda048d70eebec8 (git)
Affected: f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9 , < 5eff4d5b17fa1950e80bfd1ba43dc0699e61a644 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.8
Unaffected: 0 , < 6.8 (semver)
Unaffected: 6.12.101 , ≤ 6.12.* (semver)
Unaffected: 6.18.42 , ≤ 6.18.* (semver)
Unaffected: 7.1.6 , ≤ 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": [
            "fs/btrfs/extent_map.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "2a9246a424f45f33a1b8367052611ebe874868ad",
              "status": "affected",
              "version": "f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9",
              "versionType": "git"
            },
            {
              "lessThan": "9304713b70e7e1450e3a76e758836fe5391bfa95",
              "status": "affected",
              "version": "f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9",
              "versionType": "git"
            },
            {
              "lessThan": "0e465c63f103a5ce6849614d6bda048d70eebec8",
              "status": "affected",
              "version": "f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9",
              "versionType": "git"
            },
            {
              "lessThan": "5eff4d5b17fa1950e80bfd1ba43dc0699e61a644",
              "status": "affected",
              "version": "f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/btrfs/extent_map.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.8"
            },
            {
              "lessThan": "6.8",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.101",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.42",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.6",
              "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.101",
                  "versionStartIncluding": "6.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.42",
                  "versionStartIncluding": "6.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.6",
                  "versionStartIncluding": "6.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.8",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: don\u0027t propagate EXTENT_FLAG_LOGGING to split extent maps\n\nWhen btrfs_drop_extent_map_range() splits an extent map, the new split\nmaps inherit the original map\u0027s flags through a local \u0027flags\u0027 variable.\nCommit f86f7a75e2fb (\"btrfs: use the flags of an extent map to identify\nthe compression type\") changed the EXTENT_FLAG_LOGGING clearing to\noperate on em-\u003eflags instead of that local \u0027flags\u0027 copy, so a split of\nan extent map that is currently being logged wrongly inherits\nEXTENT_FLAG_LOGGING.\n\nThe flag is then never cleared on the split, and when it is freed while\nstill on the inode\u0027s modified_extents list (for example by the extent\nmap shrinker) it trips the WARN_ON(!list_empty(\u0026em-\u003elist)) in\nbtrfs_free_extent_map() and leads to a use-after-free.\n\nClear EXTENT_FLAG_LOGGING from the local \u0027flags\u0027 copy used for the\nsplits and only clear EXTENT_FLAG_PINNED from em-\u003eflags, restoring the\nbehaviour prior to f86f7a75e2fb."
        }
      ],
      "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 in the btrfs in-memory extent map code, reached only through local file operations (write/writeback, fallocate punch hole, truncate, clone, fsync) on a btrfs filesystem; no remote protocol data is involved.\nAC:L - Although the flag is only mis-propagated while an fsync has an extent map flagged for logging, the attacker controls both sides of the race - one thread loops fsync() while another loops writes/punch-hole on the same file - and the resulting bogus map is then freed deterministically by any later drop of that range.\nPR:L - Any unprivileged local user who can create and write a file on a btrfs filesystem (btrfs is the default root fs on several major distros, and /tmp or a home directory suffices) can drive the splitting and logging paths; no capabilities are required.\nUI:N - The attacker performs all the required operations itself (write, punch hole, fsync on its own file); no victim action or administrator involvement is needed.\nS:U - The corruption is confined to kernel memory within the same security authority; there is no crossing of a VM, IOMMU, or other boundary.\nC:H - The freed extent_map stays linked in the inode\u0027s modified_extents list, so later traversal in btrfs_log_changed_extents() dereferences freed slab memory; an attacker who reallocates the object controls what is read back, giving a use-after-free read primitive usable to disclose kernel memory.\nI:H - The dangling list node is written through by list_del_init()/list_add_tail() during fsync, writing attacker-influenced pointers into and from a freed heap object; such list-corruption use-after-frees are the classic basis for arbitrary write and privilege escalation.\nA:H - The bug already trips WARN_ON(!list_empty(\u0026em-\u003elist)) and then operates on freed memory, causing list corruption and an oops or panic (immediately fatal with panic_on_warn or list debugging enabled), which an unprivileged user can trigger repeatedly."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:05:39.676Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/2a9246a424f45f33a1b8367052611ebe874868ad"
        },
        {
          "url": "https://git.kernel.org/stable/c/9304713b70e7e1450e3a76e758836fe5391bfa95"
        },
        {
          "url": "https://git.kernel.org/stable/c/0e465c63f103a5ce6849614d6bda048d70eebec8"
        },
        {
          "url": "https://git.kernel.org/stable/c/5eff4d5b17fa1950e80bfd1ba43dc0699e61a644"
        }
      ],
      "title": "btrfs: don\u0027t propagate EXTENT_FLAG_LOGGING to split extent maps",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-68442",
    "datePublished": "2026-08-12T00:07:31.981Z",
    "dateReserved": "2026-07-30T09:28:09.394Z",
    "dateUpdated": "2026-08-17T05:05:39.676Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-68442",
      "date": "2026-09-21",
      "epss": "0.00117",
      "percentile": "0.01882"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "fs/btrfs/extent_map.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "2a9246a424f45f33a1b8367052611ebe874868ad",
                    "status": "affected",
                    "version": "f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "9304713b70e7e1450e3a76e758836fe5391bfa95",
                    "status": "affected",
                    "version": "f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "0e465c63f103a5ce6849614d6bda048d70eebec8",
                    "status": "affected",
                    "version": "f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "5eff4d5b17fa1950e80bfd1ba43dc0699e61a644",
                    "status": "affected",
                    "version": "f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "fs/btrfs/extent_map.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.8"
                  },
                  {
                    "lessThan": "6.8",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.101",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.42",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.6",
                    "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\nbtrfs: don\u0027t propagate EXTENT_FLAG_LOGGING to split extent maps\n\nWhen btrfs_drop_extent_map_range() splits an extent map, the new split\nmaps inherit the original map\u0027s flags through a local \u0027flags\u0027 variable.\nCommit f86f7a75e2fb (\"btrfs: use the flags of an extent map to identify\nthe compression type\") changed the EXTENT_FLAG_LOGGING clearing to\noperate on em-\u003eflags instead of that local \u0027flags\u0027 copy, so a split of\nan extent map that is currently being logged wrongly inherits\nEXTENT_FLAG_LOGGING.\n\nThe flag is then never cleared on the split, and when it is freed while\nstill on the inode\u0027s modified_extents list (for example by the extent\nmap shrinker) it trips the WARN_ON(!list_empty(\u0026em-\u003elist)) in\nbtrfs_free_extent_map() and leads to a use-after-free.\n\nClear EXTENT_FLAG_LOGGING from the local \u0027flags\u0027 copy used for the\nsplits and only clear EXTENT_FLAG_PINNED from em-\u003eflags, restoring the\nbehaviour prior to f86f7a75e2fb."
          }
        ],
        "id": "CVE-2026-68442",
        "lastModified": "2026-08-17T06:17:53.260",
        "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-12T00:17:44.477",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/0e465c63f103a5ce6849614d6bda048d70eebec8"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/2a9246a424f45f33a1b8367052611ebe874868ad"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/5eff4d5b17fa1950e80bfd1ba43dc0699e61a644"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/9304713b70e7e1450e3a76e758836fe5391bfa95"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-31T11:13:15+00:00",
      "cve": "CVE-2026-68442",
      "id": "CVE-2026-68442",
      "initial_release_date": "2026-08-12T00:00:00+00:00",
      "product_status:known_affected": "77",
      "product_status:known_not_affected": "200",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: btrfs: don\u0027t propagate EXTENT_FLAG_LOGGING to split extent maps",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-68442.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-15T01:33:44Z",
      "cve": "CVE-2026-68442",
      "id": "CVE-2026-68442",
      "initial_release_date": "2026-08-12T16:21:53Z",
      "product_status:known_affected": "29",
      "product_status:known_not_affected": "345",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-68442",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-68442.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…