Upstream CVE assigned by another CNA

The vulnerability is in code that packages in the Erlang ecosystem vendor from a project outside the EEF CNA's scope, so that project's CNA assigned the CVE. This page shows the EEF CNA's enrichment of CVE-2026-111497: the affected packages and the analysis below.

Out-of-Bounds Write in Google Brotli Decoder

A buffer overflow vulnerability in the Brotli decoder (c/dec/decode.c) in Google Brotli versions 1.0.3 through 1.2.0 on all platforms allows a remote unauthenticated attacker to corrupt adjacent decoder state memory, disclose sensitive memory contents, cause a denial of service, or potentially execute arbitrary code using a crafted Brotli-compressed stream.

CVE-2026-111497 on cve.org ↗

Am I affected?

type your brotli version to check

Description

Out-of-bounds Write vulnerability in the bundled Brotli decoder in yjh0502 erl-brotli allows an attacker who supplies a crafted Brotli-compressed stream to brotli:decode/1 to corrupt decoder state memory, disclose memory contents, crash the Erlang VM, or potentially execute code.

erl-brotli compiles its own copy of the Google Brotli C sources under c_src into a NIF, and brotli_decoder_decompress_stream in c_src/brotli_nif.c hands the input to BrotliDecoderDecompressStream. In c_src/dec/decode.c, DecodeBlockTypeAndLength returns false for a block switch in a category with at most one block type, and the non-streaming callers DecodeLiteralBlockSwitch, DecodeCommandBlockSwitch and DecodeDistanceBlockSwitch discard that result, so decoding continues with inconsistent state. The decoder runs inside a NIF, so memory corruption or a crash takes down the whole VM rather than the calling process. Because the package carries its own copy of the library, the Brotli version installed on the host does not matter.

This issue affects brotli: from 0.3.0 before 0.3.4.

Weaknesses & attack patterns

Weakness

CWE-787 · Out-of-bounds Write in catalog → MITRE ↗

Attack patterns

CAPEC-100 · Overflow Buffers MITRE ↗

An attacker who can get an application to decode a Brotli stream they control, for example an HTTP client that decompresses Content-Encoding: br responses with this package, can crash the Erlang VM and potentially run code inside it.

Affected — Hex / brotli Hex.pm ↗ Repository ↗

≥ 0.3.0 < 0.3.4 affected
every other version: unaffected
cpe cpe:2.3:a:yjh0502:erl-brotli:*:*:*:*:*:*:*:*
version type semver
modules · source files · routines
modules brotli_nif · brotli_decoder · brotli
source files c_src/dec/decode.c · c_src/brotli_nif.c · src/brotli_nif.erl · src/brotli_decoder.erl · src/brotli.erl
routines DecodeBlockTypeAndLength · DecodeLiteralBlockSwitch · DecodeCommandBlockSwitch · DecodeDistanceBlockSwitch · BrotliDecoderDecompressStream · brotli_decoder_decompress_stream · brotli_nif:decoder_decompress_stream/2 · brotli_decoder:stream/2 · brotli:decode/1 · brotli:decode/2

Affected — GitHub / yjh0502/erl-brotli Repository ↗

≥ 1e2af9b < 7498e1c affected
every other version: unaffected
cpe cpe:2.3:a:yjh0502:erl-brotli:*:*:*:*:*:*:*:*
version type git
modules · source files · routines
modules brotli_nif · brotli_decoder · brotli
source files c_src/dec/decode.c · c_src/brotli_nif.c · src/brotli_nif.erl · src/brotli_decoder.erl · src/brotli.erl
routines DecodeBlockTypeAndLength · DecodeLiteralBlockSwitch · DecodeCommandBlockSwitch · DecodeDistanceBlockSwitch · BrotliDecoderDecompressStream · brotli_decoder_decompress_stream · brotli_nif:decoder_decompress_stream/2 · brotli_decoder:stream/2 · brotli:decode/1 · brotli:decode/2

References

Credits

liamwhite Reporter
Łukasz Jan Niemier Remediation developer Reporter
Jonatan Männchen / EEF Coordinator

CVSS breakdown

CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
« All CVEs