Skip to main content

Linux Kernel CVE-2026-74751

| EUVDEUVD-2026-66581 CRITICAL
2026-08-26 Linux GHSA-ghc8-jmvh-q86v
Critical
Disputed · 9.4 Vendor: Linux
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Run code on RISC-V host with Zbb kernel
  2. Delivery
    Reach kernel path calling strnlen on aligned buffer
  3. Exploit
    count multiple of SZREG ending at page boundary
  4. Execution
    Loop over-reads word past s+count
  5. Persist
    Fault on unmapped next page
  6. Impact
    Kernel oops / denial of service

Vulnerability Assessment

Exploitation Conditions

Exploitation requires all of: (1) a Linux kernel compiled for the RISC-V architecture with the Zbb-optimized strnlen assembly active; (2) a strnlen() call where the source pointer is SZREG-aligned and count is an exact multiple of SZREG, so the computed boundary equals s+count; and (3) the address s+count falling on a page boundary whose next page is unmapped, so the one-word over-read actually faults. Limiting factors: the defect is architecture-local (RISC-V only, no network reachability despite the feed's AV:N), the count==0 and all-bytes-in-first-word cases are already handled, and the buffer alignment/length/page-adjacency alignment is generally determined by kernel callers rather than freely chosen by an attacker, making reliable triggering difficult outside of specifically crafted call sites.

Impact

The supplied signals conflict sharply and should not be taken at face value. The feed carries CVSS 9.4 with vector AV:N/AC:L/PR:N/UI:N/C:H/I:L/A:H, but the underlying defect is an architecture-specific kernel-internal read one word past a buffer - there is no network-reachable surface, and the observable effect described (loading an unmapped page) is a fault/oops, i.e. availability impact, not the high confidentiality the vector claims. AV:N and C:H are almost certainly automated over-scoring by the Linux CNA pipeline; a local vector with primarily availability impact is far more defensible. No EPSS score, KEV listing, SSVC decision, or POC is present in the data, and no CWE was assigned. Realistically this is a low-priority, RISC-V-only correctness/robustness fix: exploitation requires the vulnerable Zbb code path, a caller passing an aligned buffer with count a multiple of the register width, and that buffer ending precisely at an unmapped page boundary - conditions that arise incidentally rather than being attacker-steerable in most contexts. Treat the 9.4 as unreliable and prioritize by exposure to RISC-V systems, not by the headline number.

Exploit ScenarioDerived

On a RISC-V system with the Zbb extension, kernel code calls strnlen() on an aligned buffer whose length is a multiple of the register size and which ends exactly at a page boundary with the following page unmapped; the optimized loop reads one word past the buffer and triggers a kernel page fault, producing an oops or panic. No public exploit exists, and because the triggering alignment/mapping conditions are largely incidental rather than attacker-controlled, weaponization for anything beyond a local denial of service is not demonstrated.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 27, 2026

Out-of-bounds read in the RISC-V ZBB-optimized strnlen() routine of the Linux kernel allows the aligned-word loop to load one machine word past the caller-supplied count boundary; when the source is aligned and count is a multiple of the register size, the extra load lands exactly at s+count and faults if that address sits on an unmapped page boundary. The affected code path only runs on RISC-V hardware exposing the Zbb bitmanip extension. This has been fixed upstream (stable commits e697e30f and 5d588c68); no public exploit identified at time of analysis, and the CNA's 9.4 network-vector scoring is inconsistent with an arch-local kernel string-length primitive.

RemediationAI

Update to a kernel build that includes the upstream fix - Upstream fix available (stable commits e697e30f3dd2da3a1df7dc0980546d5b53aea4b6 and 5d588c684833e678a0008eb69c33190f01a65f4b); a specific released tag is not independently confirmed from the provided data, so pull the fix from your distribution's stable kernel update once it lands. There is no runtime configuration workaround for the string routine itself; if you must run an unpatched RISC-V kernel, the only architectural mitigation is to build the kernel without the Zbb-optimized string routines (disable RISCV_ISA_ZBB / the bitmanip string acceleration), which forces the generic C strnlen at a small performance cost on RISC-V string operations. Non-RISC-V systems require no action. Track the two git.kernel.org commit URLs above for backport status to your kernel series.

Affected VersionsENISA

Linux 7.1
Linux 5ba15d419fab848a3813eb56bbcad00e291fbc49 <e697e30f3dd2da3a1df7dc0980546d5b53aea4b6
Linux patch: 7.1.10
Linux patch: 0
Linux 5ba15d419fab848a3813eb56bbcad00e291fbc49 <5d588c684833e678a0008eb69c33190f01a65f4b
Linux patch: 7.2

Affected Packages

euvd linux no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

strnlen() is a core kernel string primitive; RISC-V provides a hand-written assembly variant accelerated with the Zbb (basic bit-manipulation) extension using orc.b to detect a NUL byte within a word. The optimized loop advances a word at a time and performs the boundary check (bgeu t0, t4) AFTER the REG_L load, with the boundary t4 = (s + count) & -SZREG. For aligned s and count that is a multiple of SZREG, t4 == s + count, so the loop dereferences the word starting at s+count - one word beyond the caller's permitted range. The root cause is a classic off-by-word out-of-bounds read (CWE-125 class, though CWE is listed N/A in the feed): the range guard is computed from s+count rather than the last valid byte s+count-1. The fix recomputes the aligned boundary from (s + count - 1), adds a pre-loop guard for the case where all valid bytes fall in the first word, and relies on the existing minu clamp to keep the returned length correct.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Sources disagree (Medium–Critical)
Vendor (Linux) PRIMARY 9.4 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:H
vuln.today AI 4.7 MEDIUM

Arch-local RISC-V kernel over-read reachable only via local code with specific alignment/page conditions (AV:L/PR:L/AC:H); effect is a fault/oops, so A:H with no confidentiality or integrity impact.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:H/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE 5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Red Hat 5.5 MEDIUM

vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.

CVSS VectorVendor: Linux

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
Low
Availability
High

Lifecycle Timeline

4
CVSS changed
Aug 27, 2026 - 06:22 NVD
9.4 (CRITICAL)
Patch available
Aug 26, 2026 - 16:17 EUVD
CVE Published
Aug 26, 2026 - 14:36 cve.org
UNKNOWN (no severity yet)
CVE Published
Aug 26, 2026 - 14:36 cve.org
CRITICAL 9.4

DescriptionCVE.org

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

riscv: lib: Fix ZBB strnlen reading past count boundary

The ZBB-optimized strnlen loop loads one word ahead before checking the aligned boundary:

REG_L t1, SZREG(t0) // load next word addi t0, t0, SZREG // advance orc.b t1, t1 bgeu t0, t4, 4f // boundary check AFTER load

where t4 = (s + count) & -SZREG. When s is aligned and count is a multiple of SZREG, t4 equals s + count and the loop loads a full word starting at exactly s + count. If s + count falls on a page boundary with the next page unmapped, this faults.

Fix by computing the aligned boundary from the last valid byte (s + count - 1) instead of s + count. This makes the loop stop at the word containing the last valid byte rather than potentially loading the word after it. The count == 0 case is already handled by the beqz early exit.

Also add a pre-loop guard (bgeu t0, t4) for the case where all valid bytes fit within the first word. With the adjusted boundary, t4 can equal t0, and entering the loop with stale register state from the first-word processing would produce incorrect results.

The final minu clamp ensures the result is still correct when the last loaded word extends past s + count - 1 within the same aligned word.

Executive ViewAI

Why It Matters

CVE-2026-74751 is a critical out-of-bounds read in Linux kernel RISC-V optimization that can cause system faults or crashes. The vulnerability affects only systems running RISC-V processors with the Zbb bitmanip extension enabled, representing a narrow subset of enterprise infrastructure. Organizations without RISC-V systems face no direct risk; those with RISC-V deployments require immediate kernel patching.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 74% exploitable
Prevalence
Low
RISC-V-only Zbb kernel code path; niche production hardware footprint
Data Quality
3 sources
Confidence: Low

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Medium

Priority Score

47
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +47
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 16.0 Not-Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy