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

CVE-2026-89566 (GCVE-0-2026-89566)

Vulnerability from cvelistv5 – Published: 2026-09-11 19:44 – Updated: 2026-09-11 19:44
VLAI
Title
jbd2: check need_resched() when skipping busy checkpoint buffers
Summary
In the Linux kernel, the following vulnerability has been resolved: jbd2: check need_resched() when skipping busy checkpoint buffers journal_shrink_one_cp_list() skips busy checkpoint buffers when called with JBD2_SHRINK_BUSY_SKIP. The continue statement on this path also skips the need_resched() check at the end of the loop body. Consequently, when a checkpoint list contains mostly busy buffers, the shrinker can walk the entire list while holding journal->j_list_lock, even when a reschedule has been requested. Large checkpoint lists under memory pressure can therefore cause long lock hold times and leave other CPUs spinning on j_list_lock, resulting in soft lockups or RCU stalls. Route the busy-buffer path through the need_resched() check so that the shrinker can release j_list_lock and reschedule promptly, restoring parity with the clean-buffer path, which already checks need_resched(). This does not change which checkpoint buffers are eligible for removal.
Severity
No CVSS data available.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: b98dba273a0e47dbfade89c9af73c5b012a4eabb , < f83c23286e54180cdc83a36463a60003534cc290 (git)
Affected: b98dba273a0e47dbfade89c9af73c5b012a4eabb , < f9182a85991a0ad5cd2940df6db75f40ad90028c (git)
Affected: b98dba273a0e47dbfade89c9af73c5b012a4eabb , < 595cac7f1b32d009b97f83dd2b2d6a1a445e9bb4 (git)
Affected: b98dba273a0e47dbfade89c9af73c5b012a4eabb , < f213e12ff5c9590b1034ae8da0e6d09665c772d0 (git)
Affected: 9c31bb2684f8035beca0275349d19d679b679ffb (git)
Affected: 5fda50e262e65bd553ff777c4b280afd1495a18b (git)
Affected: 557fda9ed70ebf8eda2620ba3d746215285a1303 (git)
Affected: 5.15.129 , < 5.16 (semver)
Affected: 6.1.50 , < 6.2 (semver)
Affected: 6.4.13 , < 6.5 (semver)
guessed Create a notification for this product.
Linux Linux Affected: 6.5
Unaffected: 0 , < 6.5 (semver)
Unaffected: 6.12.109 , ≤ 6.12.* (semver)
Unaffected: 6.18.50 , ≤ 6.18.* (semver)
Unaffected: 7.2.4 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc1 , ≤ * (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/jbd2/checkpoint.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "f83c23286e54180cdc83a36463a60003534cc290",
              "status": "affected",
              "version": "b98dba273a0e47dbfade89c9af73c5b012a4eabb",
              "versionType": "git"
            },
            {
              "lessThan": "f9182a85991a0ad5cd2940df6db75f40ad90028c",
              "status": "affected",
              "version": "b98dba273a0e47dbfade89c9af73c5b012a4eabb",
              "versionType": "git"
            },
            {
              "lessThan": "595cac7f1b32d009b97f83dd2b2d6a1a445e9bb4",
              "status": "affected",
              "version": "b98dba273a0e47dbfade89c9af73c5b012a4eabb",
              "versionType": "git"
            },
            {
              "lessThan": "f213e12ff5c9590b1034ae8da0e6d09665c772d0",
              "status": "affected",
              "version": "b98dba273a0e47dbfade89c9af73c5b012a4eabb",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "9c31bb2684f8035beca0275349d19d679b679ffb",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "5fda50e262e65bd553ff777c4b280afd1495a18b",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "557fda9ed70ebf8eda2620ba3d746215285a1303",
              "versionType": "git"
            },
            {
              "lessThan": "5.16",
              "status": "affected",
              "version": "5.15.129",
              "versionType": "semver"
            },
            {
              "lessThan": "6.2",
              "status": "affected",
              "version": "6.1.50",
              "versionType": "semver"
            },
            {
              "lessThan": "6.5",
              "status": "affected",
              "version": "6.4.13",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/jbd2/checkpoint.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.5"
            },
            {
              "lessThan": "6.5",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.109",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.50",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.109",
                  "versionStartIncluding": "6.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.50",
                  "versionStartIncluding": "6.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.4",
                  "versionStartIncluding": "6.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc1",
                  "versionStartIncluding": "6.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.15.129",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.1.50",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.4.13",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\njbd2: check need_resched() when skipping busy checkpoint buffers\n\njournal_shrink_one_cp_list() skips busy checkpoint buffers when called\nwith JBD2_SHRINK_BUSY_SKIP.  The continue statement on this path also\nskips the need_resched() check at the end of the loop body.\n\nConsequently, when a checkpoint list contains mostly busy buffers, the\nshrinker can walk the entire list while holding journal-\u003ej_list_lock,\neven when a reschedule has been requested.  Large checkpoint lists under\nmemory pressure can therefore cause long lock hold times and leave other\nCPUs spinning on j_list_lock, resulting in soft lockups or RCU stalls.\n\nRoute the busy-buffer path through the need_resched() check so that the\nshrinker can release j_list_lock and reschedule promptly, restoring\nparity with the clean-buffer path, which already checks need_resched().\nThis does not change which checkpoint buffers are eligible for removal."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-11T19:44:36.599Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/f83c23286e54180cdc83a36463a60003534cc290"
        },
        {
          "url": "https://git.kernel.org/stable/c/f9182a85991a0ad5cd2940df6db75f40ad90028c"
        },
        {
          "url": "https://git.kernel.org/stable/c/595cac7f1b32d009b97f83dd2b2d6a1a445e9bb4"
        },
        {
          "url": "https://git.kernel.org/stable/c/f213e12ff5c9590b1034ae8da0e6d09665c772d0"
        }
      ],
      "title": "jbd2: check need_resched() when skipping busy checkpoint buffers",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-89566",
    "datePublished": "2026-09-11T19:44:36.599Z",
    "dateReserved": "2026-09-11T19:38:34.726Z",
    "dateUpdated": "2026-09-11T19:44:36.599Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-89566",
      "date": "2026-09-17",
      "epss": "0.002",
      "percentile": "0.10079"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-89566\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-09-11T20:19:40.550\",\"lastModified\":\"2026-09-11T20:19:40.550\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\njbd2: check need_resched() when skipping busy checkpoint buffers\\n\\njournal_shrink_one_cp_list() skips busy checkpoint buffers when called\\nwith JBD2_SHRINK_BUSY_SKIP.  The continue statement on this path also\\nskips the need_resched() check at the end of the loop body.\\n\\nConsequently, when a checkpoint list contains mostly busy buffers, the\\nshrinker can walk the entire list while holding journal-\u003ej_list_lock,\\neven when a reschedule has been requested.  Large checkpoint lists under\\nmemory pressure can therefore cause long lock hold times and leave other\\nCPUs spinning on j_list_lock, resulting in soft lockups or RCU stalls.\\n\\nRoute the busy-buffer path through the need_resched() check so that the\\nshrinker can release j_list_lock and reschedule promptly, restoring\\nparity with the clean-buffer path, which already checks need_resched().\\nThis does not change which checkpoint buffers are eligible for removal.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"fs/jbd2/checkpoint.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"b98dba273a0e47dbfade89c9af73c5b012a4eabb\",\"lessThan\":\"f83c23286e54180cdc83a36463a60003534cc290\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"b98dba273a0e47dbfade89c9af73c5b012a4eabb\",\"lessThan\":\"f9182a85991a0ad5cd2940df6db75f40ad90028c\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"b98dba273a0e47dbfade89c9af73c5b012a4eabb\",\"lessThan\":\"595cac7f1b32d009b97f83dd2b2d6a1a445e9bb4\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"b98dba273a0e47dbfade89c9af73c5b012a4eabb\",\"lessThan\":\"f213e12ff5c9590b1034ae8da0e6d09665c772d0\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"9c31bb2684f8035beca0275349d19d679b679ffb\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"5fda50e262e65bd553ff777c4b280afd1495a18b\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"557fda9ed70ebf8eda2620ba3d746215285a1303\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"5.15.129\",\"lessThan\":\"5.16\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"6.1.50\",\"lessThan\":\"6.2\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"6.4.13\",\"lessThan\":\"6.5\",\"versionType\":\"semver\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"fs/jbd2/checkpoint.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.5\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.5\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.109\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.50\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2.4\",\"lessThanOrEqual\":\"7.2.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.3-rc1\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/595cac7f1b32d009b97f83dd2b2d6a1a445e9bb4\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/f213e12ff5c9590b1034ae8da0e6d09665c772d0\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/f83c23286e54180cdc83a36463a60003534cc290\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/f9182a85991a0ad5cd2940df6db75f40ad90028c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Low",
      "current_release_date": "2026-09-14T18:27:18+00:00",
      "cve": "CVE-2026-89566",
      "id": "CVE-2026-89566",
      "initial_release_date": "2026-09-11T00:00:00+00:00",
      "product_status:known_affected": "199",
      "product_status:known_not_affected": "77",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: jbd2: check need_resched() when skipping busy checkpoint buffers",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-89566.json",
      "version": "3"
    }
  }
}



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…