LiveActive security incident?Get immediate response
CVE Record

CVE-2024-40918: parisc: Try to fix random segmentation faults in package builds

In the Linux kernel, the following vulnerability has been resolved: parisc: Try to fix random segmentation faults in package builds PA-RISC systems with PA8800 and PA8900 processors have had problems with random segmentation faults for many years. Systems with earlier processors are much more stable. Systems with PA8800 and PA8900 processors have a large L2 cache which needs per page flushing for decent performance when a large range is flushed. The combined cache in these systems is also more sensitive to non-equivalent aliases than the caches in earlier systems. The majority of random segmentation faults that I have looked at appear to be memory corruption in memory allocated using mmap and malloc. My first attempt at fixing the random faults didn't work. On reviewing the cache code, I realized that there were two issues which the existing code didn't handle correctly. Both relate to cache move-in. Another issue is that the present bit in PTEs is racy. 1) PA-RISC caches have a mind of their own and they can speculatively load data and instructions for a page as long as there is a entry in the TLB for the page which allows move-in. TLBs are local to each CPU. Thus, the TLB entry for a page must be purged before flushing the page. This is particularly important on SMP systems. In some of the flush routines, the flush routine would be called and then the TLB entry would be purged. This was because the flush routine needed the TLB entry to do the flush. 2) My initial approach to trying the fix the random faults was to try and use flush_cache_page_if_present for all flush operations. This actually made things worse and led to a couple of hardware lockups. It finally dawned on me that some lines weren't being flushed because the pte check code was racy. This resulted in random inequivalent mappings to physical pages. The __flush_cache_page tmpalias flush sets up its own TLB entry and it doesn't need the existing TLB entry. As long as we can find the pte pointer for the vm page, we can get the pfn and physical address of the page. We can also purge the TLB entry for the page before doing the flush. Further, __flush_cache_page uses a special TLB entry that inhibits cache move-in. When switching page mappings, we need to ensure that lines are removed from the cache. It is not sufficient to just flush the lines to memory as they may come back. This made it clear that we needed to implement all the required flush operations using tmpalias routines. This includes flushes for user and kernel pages. After modifying the code to use tmpalias flushes, it became clear that the random segmentation faults were not fully resolved. The frequency of faults was worse on systems with a 64 MB L2 (PA8900) and systems with more CPUs (rp4440). The warning that I added to flush_cache_page_if_present to detect pages that couldn't be flushed triggered frequently on some systems. Helge and I looked at the pages that couldn't be flushed and found that the PTE was either cleared or for a swap page. Ignoring pages that were swapped out seemed okay but pages with cleared PTEs seemed problematic. I looked at routines related to pte_clear and noticed ptep_clear_flush. The default implementation just flushes the TLB entry. However, it was obvious that on parisc we need to flush the cache page as well. If we don't flush the cache page, stale lines will be left in the cache and cause random corruption. Once a PTE is cleared, there is no way to find the physical address associated with the PTE and flush the associated page at a later time. I implemented an updated change with a parisc specific version of ptep_clear_flush. It fixed the random data corruption on Helge's rp4440 and rp3440, as well as on my c8000. At this point, I realized that I could restore the code where we only flush in flush_cache_page_if_present if the page has been accessed. However, for this, we also need to flush the cache when the accessed bit is cleared in ---truncated---

HighCVSS 7.8Not KEV-listedUpdated
Glexia's TakeAutomated analysishigh

Security readout for executives and security teams

Plain-English summary

A Linux kernel cache-handling defect can cause memory corruption and unpredictable segmentation faults on PA-RISC systems, particularly those using PA8800 or PA8900 processors. The impact can include corrupted data, failed builds, and system instability. Exposure appears limited to this uncommon hardware architecture, so most Linux environments are unlikely to be affected.

Executive priority

Treat this as high priority for confirmed PA8800 or PA8900 Linux assets because corruption may undermine reliability and data integrity. Begin with asset discovery; this is not a fleet-wide Linux emergency. Systems on other processor architectures are not identified as affected by the supplied evidence.

Technical view

PA-RISC cache flushing did not reliably purge CPU-local TLB entries or remove stale cache lines before page mappings changed. Racy PTE checks could also miss required flushes, producing inequivalent mappings and memory corruption. The cited correction uses temporary-alias flush routines and PA-RISC-specific handling when PTE accessed or present state is cleared.

Likely exposure

Likely exposure is concentrated on Linux systems using PA8800 or PA8900 PA-RISC processors, especially SMP and PA8900 systems. The bundle identifies Linux 5.18, 6.6.35, 6.9.6, and 6.10 as affected, but does not provide an unambiguous complete version-range or fixed-version mapping. Confirm vendor backports individually.

Exploitation context

The supplied CVSS vector describes a local, low-privilege path requiring no user interaction, with potentially high confidentiality, integrity, and availability impact. However, the technical description documents random corruption and faults rather than a demonstrated attack chain. The CVE is not marked KEV, and the supplied sources provide no evidence of active exploitation.

Researcher notes

The strongest evidence concerns correctness failures in PA-RISC cache, TLB, and PTE transitions. PA8900 systems with 64 MB L2 cache and systems with more CPUs reportedly failed more frequently. CVSS indicates security impact, but the bundle lacks a demonstrated exploit, affected-range clarity, and evidence that corruption is reliably attacker-controlled.

Mitigation direction

  • Inventory PA-RISC hosts using PA8800 or PA8900 processors and record their running kernel builds.
  • Apply vendor-supported kernel updates incorporating the applicable cited stable fixes.
  • Prioritize SMP and PA8900 systems because the source reports higher fault frequency there.
  • If updates are unavailable, obtain vendor guidance rather than assuming a safe configuration.

Validation and detection

  • Confirm each running kernel contains the applicable cited commit or a documented vendor backport.
  • Verify processor model, PA-RISC architecture, kernel version, and SMP status during exposure review.
  • Review package-build and system logs for unexplained segmentation faults or memory-corruption symptoms.
  • Run appropriate vendor or kernel regression testing after updating and monitor for recurring failures.
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-2024-40918 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
2ADP providers
4Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: partial

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-2024-40918Attack 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.

ADP provider summaries

CVECVE Program Container
CISA-ADPCISA ADP Vulnrichment
other:ssvc
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinux2de8b4cc2051ee1d40eedbcf94de0e7d04507c37, 2de8b4cc2051ee1d40eedbcf94de0e7d04507c37, 2de8b4cc2051ee1d40eedbcf94de0e7d04507c37unaffected
LinuxLinux5.18, 0, 6.6.35, 6.9.6, 6.10affected
Weakness

CWE details

No CWE listed

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