Skip to main content

libmseed EUVDEUVD-2026-102285

| CVE-2026-111158 MEDIUM
Out-of-bounds Read (CWE-125)
2026-10-15 VulnCheck
6.8
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Craft 40-47 byte truncated miniSEED2 buffer
  2. Delivery
    Deliver to app calling msr3_parse/ms3_detect
  3. Exploit
    Buffer passes MS2_ISVALIDHEADER check
  4. Execution
    Blockette-offset read past buffer end
  5. Impact
    Heap out-of-bounds read crashes process

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK

1 technique across 1 tactic: Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that an application built on libmseed <= 3.5.4 call msr3_parse() or ms3_detect() on attacker-controlled input, and that the input be a 40-to-47-byte buffer short of the full MS2FSDH_LENGTH fixed header yet still passing the MS2_ISVALIDHEADER validation so that the vulnerable blockette-offset read is reached. Limiting factors: the attack is local (AV:L) and needs passive user interaction (UI:P) - a victim or automated pipeline must actually feed the malformed miniSEED 2 record to the parser; no authentication is needed (PR:N) but there is no network-triggerable default path, and the outcome is limited to a process crash with no confidentiality or integrity impact.

Impact

This is a genuine but low-severity defect whose signals are internally consistent rather than conflicting. The vendor CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P, VC:N/VI:N/VA:H) describes a local, low-complexity, unauthenticated issue that requires passive user interaction (a victim parsing attacker-supplied data) and whose only impact is availability - there is no confidentiality or integrity impact despite the CWE-125 out-of-bounds read, because the over-read bytes are not returned to the attacker. Publicly available exploit code exists (a hackmd technical write-up), which raises practical exploitability, but the CVE is NOT in CISA KEV and no EPSS score was provided, so there is no evidence of active or widespread exploitation. The realistic worst case is a process crash (denial of service) in an application embedding libmseed, not code execution or data theft. No EPSS value was supplied, so exploitation probability cannot be quantified; treat the public PoC as the strongest exploitation signal. Net: a real, confirmed, patch-worthy bug for anyone embedding libmseed in an exposed parsing pipeline, but a low-urgency, low-blast-radius issue rather than a high-priority emergency.

Exploit ScenarioDerived

An attacker crafts a truncated 40-to-47-byte miniSEED 2 record that still satisfies the MS2_ISVALIDHEADER check and delivers it to a service or tool that calls msr3_parse() or ms3_detect() on libmseed <= 3.5.4. When the parser reads the blockette-offset field beyond the truncated fixed header, it over-reads up to 8 bytes of heap memory, potentially crashing the process. A public proof-of-concept write-up describing this condition already exists, and because the vector is local with required user interaction, exploitation depends on getting the malformed buffer in front of the parser.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 15, 2026

Heap out-of-bounds read in EarthScope libmseed through 3.5.4 occurs when an application passes a truncated 40-to-47-byte miniSEED 2 record that still satisfies the MS2_ISVALIDHEADER check to msr3_parse() or ms3_detect(); the parser then reads the blockette-offset field beyond the end of the allocated buffer, over-reading up to 8 bytes and potentially crashing the process. Publicly available exploit code exists (a detailed write-up and the upstream fix are both linked from the CVE references), but CISA KEV does not list this issue, so there is no confirmation of active exploitation. Impact is limited to a denial of service (process crash) with no confidentiality or integrity effect; exploitation is local and requires passive user interaction, since a victim application or automated ingest pipeline must actually feed the malformed record to the parser - no authentication is required.

RemediationAI

Apply the upstream fix in commit c93a36a1381e944b59b10967342ee1cb94304223 (https://github.com/EarthScope/libmseed/commit/c93a36a1381e944b59b10967342ee1cb94304223), which adds a recbuflen >= MS2FSDH_LENGTH guard before the blockette-offset read in ms3_detect(); because this is a source-level commit rather than a confirmed tagged release, treat it as "upstream fix available (PR/commit); released patched version not independently confirmed" and rebuild or re-vendor libmseed from that revision or later, verifying the version string reported by the built library. Until that rebuild is deployed, enforce a hard input-length check in the calling application: reject or short-circuit any miniSEED 2 candidate buffer smaller than 48 bytes (MS2FSDH_LENGTH) before invoking msr3_parse() or ms3_detect(), which removes the reachable vulnerable path entirely; the trade-off is that the caller must now implement the "need more bytes" handling itself, which is exactly the MINRECLEN behaviour the patch restores internally, so truncated-stream accumulation logic should be adjusted to match. Where callers cannot be modified, place a thin wrapper or fuzz-hardened boundary layer in front of the parser, or run the ingest process under a supervisor/restart policy and with allocator hardening (ASLR plus glibc MALLOC_CHECK_ or an equivalent) so that the out-of-bounds read is more likely to fault within the allocation boundary rather than silently read adjacent heap data; these are containment measures only and do not remove the bug. Confirm mitigation by replaying the publicly documented proof-of-concept record lengths from https://hackmd.io/@haind-pwn/libmseed-ms3detect-short-header-oob-read against the patched build and verifying that parse returns a request-for-more-data instead of a populated record, and consult the VulnCheck advisory for affected-version confirmation.

Affected VersionsENISA

libmseed 0 ≤3.5.4

Affected Packages

euvd libmseed 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

libmseed is the reference C library for reading and writing miniSEED seismological waveform data, maintained by EarthScope and widely embedded in seismic data-acquisition, archival, and QC tooling. The defect is a CWE-125 out-of-bounds read in parseutils.c: ms3_detect() determines the record format by inspecting a candidate header, and for miniSEED 2 records it locates the blockette chain by reading the blockette-offset field from the fixed section data header via the HO2u() macro. The fixed miniSEED 2 header is MS2FSDH_LENGTH (48) bytes, but MS2_ISVALIDHEADER performs only a partial structural validation (record length, sequence/quality indicators and related magic fields) that can succeed on buffers as short as 40 bytes. For a 40-to-47-byte input, the code reached the blockette-offset read while the underlying allocation held fewer than 48 bytes, so HO2u() dereferenced up to 8 bytes past the end of the heap allocation. The upstream patch (commit c93a36a1381e944b59b10967342ee1cb94304223) guards that read with a recbuflen >= MS2FSDH_LENGTH check and substitutes 0 when the fixed header is incomplete, so msr3_parse() returns MINRECLEN to request more data rather than populating a parsed record; the accompanying test (test-read.c, TEST(read, v2_truncated_header)) allocates exactly-sized buffers for every length from MINRECLEN to MS2FSDH_LENGTH-1 to make any residual out-of-bounds read detectable. Note that the published CVSS 4.0 base score of 6.8 reflects a worst-case framing; the independent assessment scores the practical impact at CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L, i.e. a crash-only availability defect with no confidentiality or integrity consequence.

Know when Libmseed gets its next vulnerability

  • 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

Vendor (VulnCheck) PRIMARY 6.8 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 3.3 LOW

Local file/buffer parsing with required victim interaction (AV:L/UI:R), no auth (PR:N); impact is a bounded 8-byte over-read causing at most a process crash, so C:N/I:N/A:L.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

EarthScope libmseed through 3.5.4 contains a heap out-of-bounds read vulnerability in ms3_detect() in parseutils.c that reads past truncated miniSEED 2 record buffers. Attackers can supply a 40 to 47 byte buffer passing MS2_ISVALIDHEADER to msr3_parse() or ms3_detect(), over-reading up to 8 bytes and potentially crashing the process.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Low
niche seismology data library, industry-specific scientific/research footprint
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High

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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
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
Poc
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

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

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