/

CVE-2026-104596

Severity:

HIGH RISK

(7.5)

Out-of-Bounds Read (CWE-200) in libosmocore GSM Parser

CVE-2026-104596

Deferred

Vulnerability type

Category:

Out-of-Bounds Read

CWE:

CWE-200

Impact:

Sensitive Information Disclosure

Severity:

HIGH RISK

(7.5)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

libosmocore through version 1.14.1 contains out-of-bounds read flaws in GSM 04.80 supplementary-service parsers. A remote attacker who can send specially crafted protocol data may cause the parser to read memory beyond an intended buffer and potentially disclose sensitive information.

libosmocore through version 1.14.1 contains out-of-bounds read flaws in GSM 04.80 supplementary-service parsers. A remote attacker who can send specially crafted protocol data may cause the parser to read memory beyond an intended buffer and potentially disclose sensitive information.

Affected context

The vulnerability occurs in the GSM 04.80 supplementary-service component parsers within libosmocore. It becomes risky when a network-facing application processes attacker-controlled GSM signaling or protocol messages without sufficiently validating message lengths, offsets, and nested data structures.

The vulnerability occurs in the GSM 04.80 supplementary-service component parsers within libosmocore. It becomes risky when a network-facing application processes attacker-controlled GSM signaling or protocol messages without sufficiently validating message lengths, offsets, and nested data structures.

Exploit preconditions

  • Attack surface: A service or telecommunications component that uses libosmocore to parse GSM 04.80 supplementary-service messages
  • Required access: Remote ability to deliver or influence protocol messages accepted by the affected parser
  • Trigger point: Parsing of malformed supplementary-service data in src/gsm/gsm0480.c
  • Why exploitation is possible: Insufficient bounds validation may allow parser logic to read outside the supplied buffer and expose adjacent memory contents
  • Attack surface: A service or telecommunications component that uses libosmocore to parse GSM 04.80 supplementary-service messages
  • Required access: Remote ability to deliver or influence protocol messages accepted by the affected parser
  • Trigger point: Parsing of malformed supplementary-service data in src/gsm/gsm0480.c
  • Why exploitation is possible: Insufficient bounds validation may allow parser logic to read outside the supplied buffer and expose adjacent memory contents

Why this happens

The underlying bug is improper bounds handling during parsing of variable-length GSM supplementary-service structures. When length fields, offsets, or nested elements are not adequately checked before memory access, parser code can read beyond the valid input buffer. This behavior is associated with out-of-bounds access and may result in information exposure, consistent with CWE-200: Exposure of Sensitive Information to an Unauthorized Actor.

The underlying bug is improper bounds handling during parsing of variable-length GSM supplementary-service structures. When length fields, offsets, or nested elements are not adequately checked before memory access, parser code can read beyond the valid input buffer. This behavior is associated with out-of-bounds access and may result in information exposure, consistent with CWE-200: Exposure of Sensitive Information to an Unauthorized Actor.

Potential impact

  • An attacker may obtain sensitive data from adjacent memory
  • Protocol-handling processes could disclose internal state or unintended message contents
  • Repeated malformed requests could contribute to instability or service disruption
  • Exposed data could support further attacks against the affected service or environment
  • An attacker may obtain sensitive data from adjacent memory
  • Protocol-handling processes could disclose internal state or unintended message contents
  • Repeated malformed requests could contribute to instability or service disruption
  • Exposed data could support further attacks against the affected service or environment

General mitigation guidance

Mitigation generally focuses on making parser boundaries explicit and reducing trust in externally supplied protocol data.

Common defensive patterns include:

  • Validate message lengths, offsets, and element boundaries before every read
  • Use bounded parsing routines that carry the remaining buffer size
  • Reject malformed, truncated, or internally inconsistent GSM messages early
  • Keep sensitive information isolated from protocol parsing buffers where practical
  • Run network-facing services with least privilege and restricted access to sensitive resources
  • Apply secure-by-default parser behavior that fails closed on validation errors

Mitigation generally focuses on making parser boundaries explicit and reducing trust in externally supplied protocol data.

Common defensive patterns include:

  • Validate message lengths, offsets, and element boundaries before every read
  • Use bounded parsing routines that carry the remaining buffer size
  • Reject malformed, truncated, or internally inconsistent GSM messages early
  • Keep sensitive information isolated from protocol parsing buffers where practical
  • Run network-facing services with least privilege and restricted access to sensitive resources
  • Apply secure-by-default parser behavior that fails closed on validation errors

How teams detect issues like this

Organizations can look for this class of issue through:

  • Static analysis targeting unchecked length fields, pointer arithmetic, and buffer reads
  • Code review of protocol parsers for missing checks before nested or variable-length accesses
  • Fuzz testing with truncated, oversized, and inconsistent GSM 04.80 messages
  • Runtime memory-safety instrumentation and sanitizers in testing environments
  • Monitoring for abnormal parser errors, malformed-message bursts, and unexpected disclosure responses
  • Policy enforcement requiring bounds validation and fuzz coverage for network protocol handlers

Organizations can look for this class of issue through:

  • Static analysis targeting unchecked length fields, pointer arithmetic, and buffer reads
  • Code review of protocol parsers for missing checks before nested or variable-length accesses
  • Fuzz testing with truncated, oversized, and inconsistent GSM 04.80 messages
  • Runtime memory-safety instrumentation and sanitizers in testing environments
  • Monitoring for abnormal parser errors, malformed-message bursts, and unexpected disclosure responses
  • Policy enforcement requiring bounds validation and fuzz coverage for network protocol handlers

Sources

SourceLink
github.comgithub.com/osmocom/libosmocore/commit/b6c8c72c0c063ab2f293c5226472341c432454c2
osmocom.orgosmocom.org/issues/7051

Frequently asked

questions

Potentially. Exploitation depends on whether an exposed service accepts attacker-controlled GSM 04.80 supplementary-service messages and passes them to the affected libosmocore parsers.

Not necessarily. A suitable network-facing protocol path may be sufficient, although deployment-specific filtering, authentication, and network controls can limit reachability.

Use rigorously bounded parsing, validate every length and offset before memory access, and reject malformed messages before deeper processing.

Combine defensive parser design with fuzz testing, memory-safety tooling, code review focused on boundary checks, and least-privilege deployment for network-facing components.

Potentially. Exploitation depends on whether an exposed service accepts attacker-controlled GSM 04.80 supplementary-service messages and passes them to the affected libosmocore parsers.

Not necessarily. A suitable network-facing protocol path may be sufficient, although deployment-specific filtering, authentication, and network controls can limit reachability.

Use rigorously bounded parsing, validate every length and offset before memory access, and reject malformed messages before deeper processing.

Combine defensive parser design with fuzz testing, memory-safety tooling, code review focused on boundary checks, and least-privilege deployment for network-facing components.

Find out what's already
exploitable in your codebase.