LiveActive security incident?Get immediate response
CVE Record

CVE-2025-38434: Revert "riscv: Define TASK_SIZE_MAX for __access_ok()"

In the Linux kernel, the following vulnerability has been resolved: Revert "riscv: Define TASK_SIZE_MAX for __access_ok()" This reverts commit ad5643cf2f69 ("riscv: Define TASK_SIZE_MAX for __access_ok()"). This commit changes TASK_SIZE_MAX to be LONG_MAX to optimize access_ok(), because the previous TASK_SIZE_MAX (default to TASK_SIZE) requires some computation. The reasoning was that all user addresses are less than LONG_MAX, and all kernel addresses are greater than LONG_MAX. Therefore access_ok() can filter kernel addresses. Addresses between TASK_SIZE and LONG_MAX are not valid user addresses, but access_ok() let them pass. That was thought to be okay, because they are not valid addresses at hardware level. Unfortunately, one case is missed: get_user_pages_fast() happily accepts addresses between TASK_SIZE and LONG_MAX. futex(), for instance, uses get_user_pages_fast(). This causes the problem reported by Robert [1]. Therefore, revert this commit. TASK_SIZE_MAX is changed to the default: TASK_SIZE. This unfortunately reduces performance, because TASK_SIZE is more expensive to compute compared to LONG_MAX. But correctness first, we can think about optimization later, if required.

HighCVSS 7.8Not KEV-listedUpdated
Glexia's TakeAutomated analysishigh

Security readout for executives and security teams

Plain-English summary

A Linux kernel flaw on RISC-V systems can allow a locally authenticated, low-privilege user to pass invalid memory addresses into kernel operations. The stated impact includes possible loss of confidentiality, integrity, and availability. Servers and devices not using RISC-V or the affected kernel code are not indicated as exposed.

Executive priority

Treat this as a high-priority patching item for affected RISC-V fleets, especially shared systems or devices permitting local accounts. It is less urgent for systems without RISC-V or without the vulnerable change. Require asset-level verification because the supplied affected-version data does not provide a clean universal fixed-version boundary.

Technical view

A RISC-V optimization set TASK_SIZE_MAX to LONG_MAX, causing access_ok() to accept addresses above the valid user-space boundary. get_user_pages_fast(), including through futex-related behavior, can accept this invalid range. Linux resolved the flaw by reverting the optimization and restoring TASK_SIZE as the boundary, prioritizing correctness despite potential performance cost.

Likely exposure

Exposure is limited to RISC-V Linux systems containing the faulty TASK_SIZE_MAX change. The supplied record identifies Linux 6.10 and affected later branches, but its version data is ambiguous and includes an unexplained "0" entry. Confirm exposure using the deployed kernel source, distribution advisories, and vendor backport information.

Exploitation context

The CVSS 3.1 vector describes local access, low privileges, low complexity, no user interaction, and potentially high confidentiality, integrity, and availability impact. The CVE is not listed as KEV in the supplied bundle, and no cited source establishes active exploitation or a public exploit.

Researcher notes

The fault is an address-range validation mismatch: access_ok() permits TASK_SIZE-to-LONG_MAX addresses, while get_user_pages_fast() accepts them in a path reachable through operations such as futex. The resolution reverts commit ad5643cf2f69. The bundle provides three stable-kernel commits but does not map each commit to a precise branch or fixed release.

Mitigation direction

  • Update to a vendor-supported kernel containing the upstream or stable-branch revert.
  • Prioritize multi-user and externally administered RISC-V systems where untrusted users can obtain local access.
  • If updating is delayed, consult the Linux distribution vendor for supported mitigations and backport status.
  • Do not assume a kernel is safe from its version number alone; vendors may backport fixes.

Validation and detection

  • Confirm whether each system uses the RISC-V architecture.
  • Record the running kernel version, package release, and distribution vendor.
  • Check vendor advisories or changelogs for CVE-2025-38434 and the cited stable commits.
  • Verify the deployed kernel no longer defines the affected RISC-V TASK_SIZE_MAX behavior.
  • After remediation, confirm the fixed kernel is running rather than merely installed.
Prepared
Confidence
medium
Sources
5

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cve · low confidence lookup

CVE-2025-38434 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
High
CVSS
7.8 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
3Timeline events
0ADP providers
4Source links

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
7.8CVSS 3.1HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H1.85.9Linux

Vulnerability scoring details

Base CVSS 3.1 score

7.8High
CVSS 3.1 vector shape for CVE-2025-38434Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinuxad5643cf2f699989daa85d909403febd6712fccb, ad5643cf2f699989daa85d909403febd6712fccb, ad5643cf2f699989daa85d909403febd6712fccbunaffected
LinuxLinux6.10, 0, 6.12.36, 6.15.5, 6.16affected
Weakness

CWE details

No CWE listed

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.