GitHub Advisoryadvisory · npm

GHSA-fhp4-pr5j-46m5 Muhammara has a NULL pointer dereference in LZWDecode filter when DecodeParms omits EarlyChange key

HIGH Published 2026-06-26 Modified 2026-06-26 Official page ↗
Ecosystem
npm
Packages
muhammara
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-476
Reviewed
2026-06-26

Affected packages

• npm muhammara: < 6.0.5 → fixed in 6.0.5

Description

Summary A NULL pointer dereference vulnerability exists in `PDFParser::CreateFilterForStream()` when processing a PDF stream with `/Filter /LZWDecode` and a `/DecodeParms` dictionary that does not contain the `EarlyChange` key. This causes an access violation (0xC0000005) and crashes the process. Affected Version muhammara earlyObj( QueryDictionaryObject(inDecodeParams, "EarlyChange") ); early = earlyObj->GetValue(); // NULL dereference when EarlyChange key is absent } ``` When `inDecodeParams` is non-NULL but lacks the `EarlyChange` key: 1. `QueryDictionaryObject()` returns NULL 2. `PDFObjectCastPtr(NULL)` wraps NULL 3. `earlyObj->GetValue()` dereferences NULL → crash PoC 460-byte malicious PDF triggers crash via `startReadingFromStream()`: • PDF contains `/Filter /LZWDecode` with `/DecodeParms >` (empty, no EarlyChange) • Exit code: `0xC0000005` (Access Violation) Fix ```cpp if (earlyObj) early = earlyObj->GetValue(); ``` Impact Any application accepting untrusted PDFs and using muhammara to read stream contents is vulnerable to DoS. Similar to: CVE-2022-41957, CVE-2022-39381 PoC File poc_muhammara_lzw_null.js

Related

Weakness · CWE (1)

  • CWE-476 NULL Pointer Dereference weakness

References