---
id: "CVE-2026-120457"
kind: "vulnerability"
aliases: ["CVE-2026-120457"]
title: "libaec: out-of-bounds read in decoder can crash or leak memory"
severity: "medium"
cvss: 5.8
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["hdf5", "libaec", "package", "scientific-computing", "szip"]
not_affected_if: ["no-szip-decoding", "trusted-input-only"]
published_at: "2026-11-02T15:17:29+00:00"
first_seen_at: "2026-11-02T15:24:03+00:00"
updated_at: "2026-11-02T15:26:22+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-120457", "first_seen_at": "2026-11-02T15:24:03+00:00"}]
---

# libaec: out-of-bounds read in decoder can crash or leak memory

libaec, a compression library for scientific data formats (CCSDS 121.0/SZIP), has an out-of-bounds read in its decoder when given a crafted stream with a very long run of zero bits. An attacker who supplies such a file can crash the decoder or read adjacent memory into the decoded output.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed libaec version with `aec_version` or your package manager, and compare against the affected range through 1.1.7
- Search your dependency manifests and vendored code for `libaec` or `libsz` to find where it is used
- Confirm whether your application decodes untrusted SZIP/CCSDS-compressed input

## Fix

- Move to a libaec release newer than `1.1.7`; the release notes are linked in the sources, and the exact fixed version is unknown

## Timeline

- 2026-11-02T15:24:03+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-120457

## Documents

- [advisory] Third-party advisory: www.vulncheck.com https://www.vulncheck.com/advisories/libaec-through-1.1.7-out-of-bounds-read-via-m-se-decode-second-extension-decoder
- [fix] Release notes: github.com https://github.com/Deutsches-Klimarechenzentrum/libaec/releases/tag/v1.1.7

## From the sources

libaec through 1.1.7 contains an out-of-bounds read vulnerability in m_se_decode() in src/decode.c that allows attackers to bypass a signed bounds check via an overlong fundamental sequence. Attackers can supply a crafted CCSDS 121.0/SZIP stream with 2^31 or more zero bits to crash the decoder or leak adjacent memory into decoded samples.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
