CVE-2024-26632 (GCVE-0-2024-26632)

Vulnerability from cvelistv5 – Published: 2024-03-18 10:07 – Updated: 2026-08-05 11:26
VLAI
Title
block: Fix iterating over an empty bio with bio_for_each_folio_all
Summary
In the Linux kernel, the following vulnerability has been resolved: block: Fix iterating over an empty bio with bio_for_each_folio_all If the bio contains no data, bio_first_folio() calls page_folio() on a NULL pointer and oopses. Move the test that we've reached the end of the bio from bio_next_folio() to bio_first_folio(). [axboe: add unlikely() to error case]
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2024-03-18 15:42 UTC
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 640d1930bef4f87ec8d8d2b05f0f6edc1dfcf662 , < c6350b5cb78e9024c49eaee6fdb914ad2903a5fe (git)
Affected: 640d1930bef4f87ec8d8d2b05f0f6edc1dfcf662 , < a6bd8182137a12d22d3f2cee463271bdcb491659 (git)
Affected: 640d1930bef4f87ec8d8d2b05f0f6edc1dfcf662 , < ca3ede3f5893e2d26d4dbdef1eec28a8487fafde (git)
Affected: 640d1930bef4f87ec8d8d2b05f0f6edc1dfcf662 , < 7bed6f3d08b7af27b7015da8dc3acf2b9c1f21d7 (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.17
Unaffected: 0 , < 5.17 (semver)
Unaffected: 6.1.75 , ≤ 6.1.* (semver)
Unaffected: 6.6.14 , ≤ 6.6.* (semver)
Unaffected: 6.7.2 , ≤ 6.7.* (semver)
Unaffected: 6.8 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-26632",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-03-18T15:42:33.391380Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-06-04T17:48:29.866Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-02T00:07:19.786Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/c6350b5cb78e9024c49eaee6fdb914ad2903a5fe"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/a6bd8182137a12d22d3f2cee463271bdcb491659"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/ca3ede3f5893e2d26d4dbdef1eec28a8487fafde"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/7bed6f3d08b7af27b7015da8dc3acf2b9c1f21d7"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "include/linux/bio.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "c6350b5cb78e9024c49eaee6fdb914ad2903a5fe",
              "status": "affected",
              "version": "640d1930bef4f87ec8d8d2b05f0f6edc1dfcf662",
              "versionType": "git"
            },
            {
              "lessThan": "a6bd8182137a12d22d3f2cee463271bdcb491659",
              "status": "affected",
              "version": "640d1930bef4f87ec8d8d2b05f0f6edc1dfcf662",
              "versionType": "git"
            },
            {
              "lessThan": "ca3ede3f5893e2d26d4dbdef1eec28a8487fafde",
              "status": "affected",
              "version": "640d1930bef4f87ec8d8d2b05f0f6edc1dfcf662",
              "versionType": "git"
            },
            {
              "lessThan": "7bed6f3d08b7af27b7015da8dc3acf2b9c1f21d7",
              "status": "affected",
              "version": "640d1930bef4f87ec8d8d2b05f0f6edc1dfcf662",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "include/linux/bio.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.17"
            },
            {
              "lessThan": "5.17",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.75",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.14",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.7.*",
              "status": "unaffected",
              "version": "6.7.2",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.8",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.75",
                  "versionStartIncluding": "5.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.14",
                  "versionStartIncluding": "5.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.7.2",
                  "versionStartIncluding": "5.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.8",
                  "versionStartIncluding": "5.17",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nblock: Fix iterating over an empty bio with bio_for_each_folio_all\n\nIf the bio contains no data, bio_first_folio() calls page_folio() on a\nNULL pointer and oopses.  Move the test that we\u0027ve reached the end of\nthe bio from bio_next_folio() to bio_first_folio().\n\n[axboe: add unlikely() to error case]"
        }
      ],
      "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 - Triggered via local syscalls \u2014 `ioctl(SG_IO)` on a SCSI/block device fd, or `preadv2`/`pwritev2` with O_DIRECT \u2014 with no network-facing consumer of `bio_for_each_folio_all()` in the affected paths. No remote peer can reach `bio_first_folio()`.\nAC:L - Fully deterministic and race-free: the attacker just supplies a page-aligned but unmapped buffer so `iov_iter_extract_pages()` returns -EFAULT on the first iteration, leaving `bi_vcnt == 0` on the error path. syzbot produced a reliable C reproducer.\nPR:L - `scsi_cmd_allowed()` grants read-safe SG_IO commands to any user who can open the device (no CAP_SYS_RAWIO), and desktop/kiosk seat ACLs, `disk`/`cdrom` group membership, or container device grants provide that to unprivileged users; the bcachefs `O_DIRECT` path (fs/bcachefs/fs-io-direct.c:142) needs only an ordinary file. Real root in the init namespace is not required.\nUI:N - The attacking process performs the entire sequence itself with a single ioctl or direct-I/O syscall against an already-present device or file. No victim action, mount, or file-open by another user is involved.\nS:U - The uninitialized-bvec dereference and its consequences are confined to the kernel\u0027s own security authority on the same host, with no hypervisor, IOMMU, or sandbox boundary crossed.\nC:H - `bio_first_folio()` reads an uninitialized `bio_vec` from recycled mempool memory and `bio_check_pages_dirty()` then branches on `folio_test_dirty()` of that stale pointer, disclosing kernel heap state; the resulting page-refcount corruption is leverageable into arbitrary memory disclosure.\nI:H - `__bio_release_pages()` performs `folio_mark_dirty()` and `unpin_user_page()` on the stale, groomable `bv_page` for `bv_len` bytes, dropping refcounts on pages that were never pinned \u2014 a refcount underflow that yields premature free and a page-level use-after-free write primitive.\nA:H - syzbot reproduced both a NULL pointer dereference in `__bio_release_pages()` and a general protection fault in `bio_first_folio()`; either oopses the kernel and can be re-triggered at will by an unprivileged process."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:26:25.799Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/c6350b5cb78e9024c49eaee6fdb914ad2903a5fe"
        },
        {
          "url": "https://git.kernel.org/stable/c/a6bd8182137a12d22d3f2cee463271bdcb491659"
        },
        {
          "url": "https://git.kernel.org/stable/c/ca3ede3f5893e2d26d4dbdef1eec28a8487fafde"
        },
        {
          "url": "https://git.kernel.org/stable/c/7bed6f3d08b7af27b7015da8dc3acf2b9c1f21d7"
        }
      ],
      "title": "block: Fix iterating over an empty bio with bio_for_each_folio_all",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-26632",
    "datePublished": "2024-03-18T10:07:48.908Z",
    "dateReserved": "2024-02-19T14:20:24.136Z",
    "dateUpdated": "2026-08-05T11:26:25.799Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2024-26632",
      "date": "2026-09-23",
      "epss": "0.00236",
      "percentile": "0.14896"
    },
    "fkie_nvd": {
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nblock: Fix iterating over an empty bio with bio_for_each_folio_all\n\nIf the bio contains no data, bio_first_folio() calls page_folio() on a\nNULL pointer and oopses.  Move the test that we\u0027ve reached the end of\nthe bio from bio_next_folio() to bio_first_folio().\n\n[axboe: add unlikely() to error case]"
        },
        {
          "lang": "es",
          "value": "En el kernel de Linux, se resolvi\u00f3 la siguiente vulnerabilidad: bloque: corrige la iteraci\u00f3n sobre una biograf\u00eda vac\u00eda con bio_for_each_folio_all Si la biograf\u00eda no contiene datos, bio_first_folio() llama a page_folio() en un puntero NULL y \u00a1vaya! Mueve la prueba de que hemos llegado al final de la biograf\u00eda de bio_next_folio() a bio_first_folio(). [axboe: agregue improbable() al caso de error]"
        }
      ],
      "id": "CVE-2024-26632",
      "lastModified": "2024-11-21T09:02:43.700",
      "published": "2024-03-18T11:15:09.697",
      "references": [
        {
          "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
          "url": "https://git.kernel.org/stable/c/7bed6f3d08b7af27b7015da8dc3acf2b9c1f21d7"
        },
        {
          "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
          "url": "https://git.kernel.org/stable/c/a6bd8182137a12d22d3f2cee463271bdcb491659"
        },
        {
          "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
          "url": "https://git.kernel.org/stable/c/c6350b5cb78e9024c49eaee6fdb914ad2903a5fe"
        },
        {
          "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
          "url": "https://git.kernel.org/stable/c/ca3ede3f5893e2d26d4dbdef1eec28a8487fafde"
        },
        {
          "source": "af854a3a-2127-422b-91ae-364da2661108",
          "url": "https://git.kernel.org/stable/c/7bed6f3d08b7af27b7015da8dc3acf2b9c1f21d7"
        },
        {
          "source": "af854a3a-2127-422b-91ae-364da2661108",
          "url": "https://git.kernel.org/stable/c/a6bd8182137a12d22d3f2cee463271bdcb491659"
        },
        {
          "source": "af854a3a-2127-422b-91ae-364da2661108",
          "url": "https://git.kernel.org/stable/c/c6350b5cb78e9024c49eaee6fdb914ad2903a5fe"
        },
        {
          "source": "af854a3a-2127-422b-91ae-364da2661108",
          "url": "https://git.kernel.org/stable/c/ca3ede3f5893e2d26d4dbdef1eec28a8487fafde"
        }
      ],
      "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "vulnStatus": "Awaiting Analysis"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "include/linux/bio.h"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "c6350b5cb78e9024c49eaee6fdb914ad2903a5fe",
                    "status": "affected",
                    "version": "640d1930bef4f87ec8d8d2b05f0f6edc1dfcf662",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "a6bd8182137a12d22d3f2cee463271bdcb491659",
                    "status": "affected",
                    "version": "640d1930bef4f87ec8d8d2b05f0f6edc1dfcf662",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "ca3ede3f5893e2d26d4dbdef1eec28a8487fafde",
                    "status": "affected",
                    "version": "640d1930bef4f87ec8d8d2b05f0f6edc1dfcf662",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "7bed6f3d08b7af27b7015da8dc3acf2b9c1f21d7",
                    "status": "affected",
                    "version": "640d1930bef4f87ec8d8d2b05f0f6edc1dfcf662",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "include/linux/bio.h"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "5.17"
                  },
                  {
                    "lessThan": "5.17",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.1.*",
                    "status": "unaffected",
                    "version": "6.1.75",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.6.*",
                    "status": "unaffected",
                    "version": "6.6.14",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.7.*",
                    "status": "unaffected",
                    "version": "6.7.2",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "6.8",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "configurations": [
          {
            "nodes": [
              {
                "cpeMatch": [
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "DB5C8DA6-49C9-4423-ACFE-969306B07B9E",
                    "versionEndExcluding": "6.1.75",
                    "versionStartIncluding": "5.17",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "5C6B50A6-3D8B-4CE2-BDCC-A098609CBA14",
                    "versionEndExcluding": "6.6.14",
                    "versionStartIncluding": "6.2",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "7229C448-E0C9-488B-8939-36BA5254065E",
                    "versionEndExcluding": "6.7.2",
                    "versionStartIncluding": "6.7",
                    "vulnerable": true
                  }
                ],
                "negate": false,
                "operator": "OR"
              }
            ]
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nblock: Fix iterating over an empty bio with bio_for_each_folio_all\n\nIf the bio contains no data, bio_first_folio() calls page_folio() on a\nNULL pointer and oopses.  Move the test that we\u0027ve reached the end of\nthe bio from bio_next_folio() to bio_first_folio().\n\n[axboe: add unlikely() to error case]"
          },
          {
            "lang": "es",
            "value": "En el kernel de Linux, se resolvi\u00f3 la siguiente vulnerabilidad: bloque: corrige la iteraci\u00f3n sobre una biograf\u00eda vac\u00eda con bio_for_each_folio_all Si la biograf\u00eda no contiene datos, bio_first_folio() llama a page_folio() en un puntero NULL y \u00a1vaya! Mueve la prueba de que hemos llegado al final de la biograf\u00eda de bio_next_folio() a bio_first_folio(). [axboe: agregue improbable() al caso de error]"
          }
        ],
        "id": "CVE-2024-26632",
        "lastModified": "2026-08-04T11:16:51.397",
        "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"
            },
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 5.5,
                "baseSeverity": "MEDIUM",
                "confidentialityImpact": "NONE",
                "integrityImpact": "NONE",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 3.6,
              "source": "nvd@nist.gov",
              "type": "Primary"
            }
          ],
          "ssvcV203": [
            {
              "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "ssvcData": {
                "id": "CVE-2024-26632",
                "options": [
                  {
                    "exploitation": "none"
                  },
                  {
                    "automatable": "no"
                  },
                  {
                    "technicalImpact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-03-18T15:42:33.391380Z",
                "version": "2.0.3"
              }
            }
          ]
        },
        "published": "2024-03-18T11:15:09.697",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/7bed6f3d08b7af27b7015da8dc3acf2b9c1f21d7"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/a6bd8182137a12d22d3f2cee463271bdcb491659"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/c6350b5cb78e9024c49eaee6fdb914ad2903a5fe"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/ca3ede3f5893e2d26d4dbdef1eec28a8487fafde"
          },
          {
            "source": "af854a3a-2127-422b-91ae-364da2661108",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/7bed6f3d08b7af27b7015da8dc3acf2b9c1f21d7"
          },
          {
            "source": "af854a3a-2127-422b-91ae-364da2661108",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/a6bd8182137a12d22d3f2cee463271bdcb491659"
          },
          {
            "source": "af854a3a-2127-422b-91ae-364da2661108",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/c6350b5cb78e9024c49eaee6fdb914ad2903a5fe"
          },
          {
            "source": "af854a3a-2127-422b-91ae-364da2661108",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/ca3ede3f5893e2d26d4dbdef1eec28a8487fafde"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Modified",
        "weaknesses": [
          {
            "description": [
              {
                "lang": "en",
                "value": "CWE-476"
              }
            ],
            "source": "nvd@nist.gov",
            "type": "Primary"
          }
        ]
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-04T19:13:24+00:00",
      "cve": "CVE-2024-26632",
      "id": "CVE-2024-26632",
      "initial_release_date": "2024-03-18T00:00:00+00:00",
      "product_status:known_not_affected": "198",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: block: Fix iterating over an empty bio with bio_for_each_folio_all",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2024/cve-2024-26632.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-31T00:46:09Z",
      "cve": "CVE-2024-26632",
      "id": "CVE-2024-26632",
      "initial_release_date": "2024-03-19T03:36:32Z",
      "product_status:known_affected": "394",
      "product_status:known_not_affected": "425",
      "product_status:recommended": "353",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2024-26632",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2024-26632.json",
      "version": "82"
    },
    "vulnrichment": {
      "containers": {
        "adp": [
          {
            "providerMetadata": {
              "dateUpdated": "2024-08-02T00:07:19.786Z",
              "orgId": "af854a3a-2127-422b-91ae-364da2661108",
              "shortName": "CVE"
            },
            "references": [
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://git.kernel.org/stable/c/c6350b5cb78e9024c49eaee6fdb914ad2903a5fe"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://git.kernel.org/stable/c/a6bd8182137a12d22d3f2cee463271bdcb491659"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://git.kernel.org/stable/c/ca3ede3f5893e2d26d4dbdef1eec28a8487fafde"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://git.kernel.org/stable/c/7bed6f3d08b7af27b7015da8dc3acf2b9c1f21d7"
              }
            ],
            "title": "CVE Program Container"
          },
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2024-26632",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2024-03-18T15:42:33.391380Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2024-05-23T19:01:18.395Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "Linux",
              "programFiles": [
                "include/linux/bio.h"
              ],
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "vendor": "Linux",
              "versions": [
                {
                  "lessThan": "c6350b5cb78e9024c49eaee6fdb914ad2903a5fe",
                  "status": "affected",
                  "version": "640d1930bef4f87ec8d8d2b05f0f6edc1dfcf662",
                  "versionType": "git"
                },
                {
                  "lessThan": "a6bd8182137a12d22d3f2cee463271bdcb491659",
                  "status": "affected",
                  "version": "640d1930bef4f87ec8d8d2b05f0f6edc1dfcf662",
                  "versionType": "git"
                },
                {
                  "lessThan": "ca3ede3f5893e2d26d4dbdef1eec28a8487fafde",
                  "status": "affected",
                  "version": "640d1930bef4f87ec8d8d2b05f0f6edc1dfcf662",
                  "versionType": "git"
                },
                {
                  "lessThan": "7bed6f3d08b7af27b7015da8dc3acf2b9c1f21d7",
                  "status": "affected",
                  "version": "640d1930bef4f87ec8d8d2b05f0f6edc1dfcf662",
                  "versionType": "git"
                }
              ]
            },
            {
              "defaultStatus": "affected",
              "product": "Linux",
              "programFiles": [
                "include/linux/bio.h"
              ],
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "vendor": "Linux",
              "versions": [
                {
                  "status": "affected",
                  "version": "5.17"
                },
                {
                  "lessThan": "5.17",
                  "status": "unaffected",
                  "version": "0",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "6.1.*",
                  "status": "unaffected",
                  "version": "6.1.75",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "6.6.*",
                  "status": "unaffected",
                  "version": "6.6.14",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "6.7.*",
                  "status": "unaffected",
                  "version": "6.7.2",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "*",
                  "status": "unaffected",
                  "version": "6.8",
                  "versionType": "original_commit_for_fix"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "6.1.75",
                      "versionStartIncluding": "5.17",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "6.6.14",
                      "versionStartIncluding": "5.17",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "6.7.2",
                      "versionStartIncluding": "5.17",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "6.8",
                      "versionStartIncluding": "5.17",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nblock: Fix iterating over an empty bio with bio_for_each_folio_all\n\nIf the bio contains no data, bio_first_folio() calls page_folio() on a\nNULL pointer and oopses.  Move the test that we\u0027ve reached the end of\nthe bio from bio_next_folio() to bio_first_folio().\n\n[axboe: add unlikely() to error case]"
            }
          ],
          "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 - Triggered via local syscalls \u2014 `ioctl(SG_IO)` on a SCSI/block device fd, or `preadv2`/`pwritev2` with O_DIRECT \u2014 with no network-facing consumer of `bio_for_each_folio_all()` in the affected paths. No remote peer can reach `bio_first_folio()`.\nAC:L - Fully deterministic and race-free: the attacker just supplies a page-aligned but unmapped buffer so `iov_iter_extract_pages()` returns -EFAULT on the first iteration, leaving `bi_vcnt == 0` on the error path. syzbot produced a reliable C reproducer.\nPR:L - `scsi_cmd_allowed()` grants read-safe SG_IO commands to any user who can open the device (no CAP_SYS_RAWIO), and desktop/kiosk seat ACLs, `disk`/`cdrom` group membership, or container device grants provide that to unprivileged users; the bcachefs `O_DIRECT` path (fs/bcachefs/fs-io-direct.c:142) needs only an ordinary file. Real root in the init namespace is not required.\nUI:N - The attacking process performs the entire sequence itself with a single ioctl or direct-I/O syscall against an already-present device or file. No victim action, mount, or file-open by another user is involved.\nS:U - The uninitialized-bvec dereference and its consequences are confined to the kernel\u0027s own security authority on the same host, with no hypervisor, IOMMU, or sandbox boundary crossed.\nC:H - `bio_first_folio()` reads an uninitialized `bio_vec` from recycled mempool memory and `bio_check_pages_dirty()` then branches on `folio_test_dirty()` of that stale pointer, disclosing kernel heap state; the resulting page-refcount corruption is leverageable into arbitrary memory disclosure.\nI:H - `__bio_release_pages()` performs `folio_mark_dirty()` and `unpin_user_page()` on the stale, groomable `bv_page` for `bv_len` bytes, dropping refcounts on pages that were never pinned \u2014 a refcount underflow that yields premature free and a page-level use-after-free write primitive.\nA:H - syzbot reproduced both a NULL pointer dereference in `__bio_release_pages()` and a general protection fault in `bio_first_folio()`; either oopses the kernel and can be re-triggered at will by an unprivileged process."
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-05T11:26:25.799Z",
            "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "shortName": "Linux"
          },
          "references": [
            {
              "url": "https://git.kernel.org/stable/c/c6350b5cb78e9024c49eaee6fdb914ad2903a5fe"
            },
            {
              "url": "https://git.kernel.org/stable/c/a6bd8182137a12d22d3f2cee463271bdcb491659"
            },
            {
              "url": "https://git.kernel.org/stable/c/ca3ede3f5893e2d26d4dbdef1eec28a8487fafde"
            },
            {
              "url": "https://git.kernel.org/stable/c/7bed6f3d08b7af27b7015da8dc3acf2b9c1f21d7"
            }
          ],
          "title": "block: Fix iterating over an empty bio with bio_for_each_folio_all",
          "x_generator": {
            "engine": "bippy-1.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "assignerShortName": "Linux",
        "cveId": "CVE-2024-26632",
        "datePublished": "2024-03-18T10:07:48.908Z",
        "dateReserved": "2024-02-19T14:20:24.136Z",
        "dateUpdated": "2026-08-05T11:26:25.799Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}



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…

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…