CVE-2026-25556: MuPDF 1.23.0 through 1.27.0 Barcode Decoding Double Free
MuPDF versions 1.23.0 through 1.27.0 contain a double-free vulnerability in fz_fill_pixmap_from_display_list() when an exception occurs during display list rendering. The function accepts a caller-owned fz_pixmap pointer but incorrectly drops the pixmap in its error handling path before rethrowing the exception. Callers (including the barcode decoding path in fz_decode_barcode_from_display_list) also drop the same pixmap in cleanup, resulting in a double-free that can corrupt the heap and crash the process. This issue affects applications that enable and use MuPDF barcode decoding and can be triggered by processing crafted input that causes a rendering-time error while decoding barcodes.
Security readout for executives and security teams
Plain-English summary
MuPDF can crash when handling crafted barcode-decoding input because the same image buffer may be freed twice after a rendering error. Business impact is mainly denial of service for applications or services that process untrusted documents with MuPDF barcode decoding enabled.
Executive priority
Treat as a moderate availability risk. Prioritize internet-facing or automated document-processing services first, especially where crashes interrupt customer workflows or batch processing. No source provided evidence of active exploitation.
Technical view
CVE-2026-25556 is a CWE-415 double free in fz_fill_pixmap_from_display_list(). Its exception path drops a caller-owned fz_pixmap, then callers such as fz_decode_barcode_from_display_list can drop it again during cleanup. Sources describe affected MuPDF versions 1.23.0 through 1.27.0.
Likely exposure
Exposure is likely limited to products or services embedding MuPDF 1.23.0 through 1.27.0 and enabling barcode decoding on untrusted content. Confirm downstream package versions because the source bundle's affected-version detail is not fully consistent.
Exploitation context
The source bundle describes crafted input causing a rendering-time error during barcode decoding. CVSS requires user interaction and attack prerequisites. The CVE is not marked in KEV, and the provided sources do not state active exploitation.
Researcher notes
Focus triage on ownership semantics around fz_pixmap during exception handling. The patch reference is available, but this analysis does not infer memory-corruption impact beyond heap corruption and process crash described in sources.
Mitigation direction
Apply the referenced MuPDF vendor patch or update per Artifex guidance.
Inventory applications and third-party products that embed MuPDF.
Prioritize systems that process untrusted documents or images.
If patching is delayed, check vendor guidance for supported temporary mitigations.
Consider disabling barcode decoding for untrusted inputs where operationally acceptable.
Validation and detection
Confirm deployed MuPDF versions in applications and bundled dependencies.
Verify whether barcode decoding is enabled or reachable from user-supplied content.
Check whether the referenced patch is present in your MuPDF build.
Review crash logs for MuPDF rendering failures during barcode decoding.
Confirm vendors of embedded products have shipped patched builds.
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.
cwe · low confidence lookup
CWE-415: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
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.
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.