GitHub Advisoryadvisory · npm
GHSA-fhp4-pr5j-46m5 Muhammara has a NULL pointer dereference in LZWDecode filter when DecodeParms omits EarlyChange key
HIGH
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