# CVE-2026-97906: bootconfig: Fix integer overflow in initrd size check

> A crafted initrd can cause an integer overflow in the Linux kernel bootconfig parser, leading to a fatal page fault and system crash during early boot.

- **Severity:** Not scored
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Local or same network only
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 25 Sep 2026
- **Updated:** 21 Oct 2026
- **Also known as:** AZL-104358, BELL-CVE-2026-97906, DEBIAN-CVE-2026-97906, GHSA-rh89-37w4-pmjq, UBUNTU-CVE-2026-97906

## What is CVE-2026-97906?

CVE-2026-97906 is a vulnerability in Linux, published on 25 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim.

### Official description

In the Linux kernel, the following vulnerability has been resolved:

bootconfig: Fix integer overflow in initrd size check

Sashiko reported that in get_boot_config_from_initrd(), a crafted initrd
with a huge bootconfig size (such as 0xFFFFFFFF) can cause the pointer
arithmetic:

    data = ((void *)hdr) - size;

to wrap around on 32-bit systems (or when pointer subtraction overflows).
Because data wraps around, the subsequent bounds check:

    if ((unsigned long)data < initrd_start)

evaluates to false, bypassing the check. The kernel then calls
xbc_calc_checksum(data, size), which attempts to read 4GB of memory,
hitting unmapped pages and triggering a fatal kernel page fault during
early boot. Furthermore, on 64-bit systems with an initrd > 4.29 GB, an
unbounded 32-bit size can similarly bypass the initrd_start check.

Fix this by:
1. Ensuring the initrd is at least large enough to contain the bootconfig
   footer and verifying hdr is within the initrd bounds.
2. Checking that size does not exceed XBC_DATA_MAX and does not exceed
   the available space between initrd_start and hdr before performing
   pointer subtraction.

## Which versions are affected by CVE-2026-97906?


## How do I fix CVE-2026-97906?

Apply the vendor's patch.

## Is CVE-2026-97906 being exploited?

There is no known exploitation of CVE-2026-97906 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-97906 and fix it if it is affected.

What it is: CVE-2026-97906 is a vulnerability in Linux, published on 25 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2026-97906 in the wild and no public exploit code.

Affected product: Linux. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-97906/ (Markdown: https://insights.sbomify.com/CVE-2026-97906/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-97906
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-97906
- OSV: https://osv.dev/vulnerability/CVE-2026-97906

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-97906/
Summaries are generated and may contain mistakes; the official description above is the record.
