ExifReader HEIC/AVIF ISO-BMFF parser throws uncaught RangeError on truncated boxes
ExifReader is a JavaScript Exif information parser. Prior to 4.40.1, ExifReader.load() and the asynchronous file and URL loaders can pass attacker-supplied HEIC or AVIF data to the ISO-BMFF parser in src/image-header-iso-bmff.js, where findMetaBox() and parseBox() accept an eight-byte box header without confirming that fields required by the parsed box remain in the DataView. A valid ftyp box followed by an empty free or unknown box can cause an unchecked full-box version read, while a truncated extended-size box can make getBoxLength() and hasEmptyHighBits() read absent size fields. The resulting RangeError escapes the main parsing path and can abort an application request or worker when parse errors are not defensively caught, causing denial of service. This issue is fixed in version 4.40.1.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-53496
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 02:07 UTC · Revision 1
Source evidence
ExifReader HEIC/AVIF ISO-BMFF parser throws uncaught RangeError on truncated boxes
core-osv · Original sourcePublished 14 Sept 2026, 16:12 UTC
ExifReader is a JavaScript Exif information parser. Prior to 4.40.1, ExifReader.load() and the asynchronous file and URL loaders can pass attacker-supplied HEIC or AVIF data to the ISO-BMFF parser in src/image-header-iso-bmff.js, where findMetaBox() and parseBox() accept an eight-byte box header without confirming that fields required by the parsed box remain in the DataView. A valid ftyp box followed by an empty free or unknown box can cause an unchecked full-box version read, while a truncated extended-size box can make getBoxLength() and hasEmptyHighBits() read absent size fields. The resulting RangeError escapes the main parsing path and can abort an application request or worker when parse errors are not defensively caught, causing denial of service. This issue is fixed in version 4.40.1.
osv:CVE-2026-53496
Complete source record
{
"id": "cdcce74ad83d7cc7b249374be68228fc2f2904eaac6bbefce8b4ab89c5b90e48",
"url": "https://osv.dev/vulnerability/CVE-2026-53496",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "ExifReader HEIC/AVIF ISO-BMFF parser throws uncaught RangeError on truncated boxes",
"summary": "ExifReader is a JavaScript Exif information parser. Prior to 4.40.1, ExifReader.load() and the asynchronous file and URL loaders can pass attacker-supplied HEIC or AVIF data to the ISO-BMFF parser in src/image-header-iso-bmff.js, where findMetaBox() and parseBox() accept an eight-byte box header without confirming that fields required by the parsed box remain in the DataView. A valid ftyp box followed by an empty free or unknown box can cause an unchecked full-box version read, while a truncated extended-size box can make getBoxLength() and hasEmptyHighBits() read absent size fields. The resulting RangeError escapes the main parsing path and can abort an application request or worker when parse errors are not defensively caught, causing denial of service. This issue is fixed in version 4.40.1.",
"evidence": "osv:CVE-2026-53496",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-53496",
"aliases": [
"CVE-2026-53496",
"GHSA-g77h-45rf-hcx4"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/mattiasw/exifreader",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "0ea9d58c48fb64b7aea744c4222671db18e2ea88"
},
{
"fixed": "00878ca9df0e26480dda7a931c888048c9f7be45"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "4.40.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "00878ca9df0e26480dda7a931c888048c9f7be45"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "0ea9d58c48fb64b7aea744c4222671db18e2ea88"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v4.40.1"
}
]
}
}
],
"versions": [
"v4.40.0",
"v4.39.1",
"v4.39.0",
"v4.38.1",
"v4.38.0",
"v4.37.1",
"v4.37.0",
"v4.36.2",
"v4.36.1",
"v4.36.0",
"v4.35.0",
"v4.34.0",
"v4.33.1",
"v4.33.0",
"v4.32.0",
"v4.31.2",
"v4.31.1",
"v4.31.0",
"v4.30.1",
"v4.30.0",
"v4.29.0",
"v4.28.1",
"v4.28.0",
"v4.27.0",
"v4.26.2",
"v4.26.1",
"v4.26.0",
"v4.25.0",
"v4.24.0",
"v4.23.7",
"v4.23.6",
"v4.23.5",
"v4.23.4",
"v4.23.3",
"v4.23.2",
"v4.23.1",
"v4.23.0",
"v4.22.1",
"v4.22.0",
"v4.21.1",
"v4.21.0",
"v4.20.0",
"v4.19.1",
"v4.19.0",
"v4.18.0",
"v4.16.0",
"v4.15.0",
"v4.14.1",
"v4.14.0",
"4.14.0",
"4.13.2",
"4.13.1",
"v4.13.0",
"4.13.0",
"4.12.1",
"v4.12.0",
"4.12.0",
"v4.11.1",
"4.11.1",
"v4.11.0",
"4.11.0",
"v4.10.0",
"4.10.0",
"v4.9.2",
"4.9.2",
"v4.9.1",
"4.9.1",
"v4.9.0",
"4.9.0",
"v4.8.1",
"4.8.1",
"v4.8.0",
"4.8.0",
"v4.7.0",
"4.7.0",
"v4.6.0",
"4.6.0",
"v4.5.1",
"4.5.1",
"v4.5.0",
"4.5.0",
"v4.4.0",
"4.4.0",
"v4.3.1",
"4.3.1",
"v4.3.0",
"4.3.0",
"v4.2.0",
"4.2.0",
"v4.1.1",
"4.1.1",
"v4.1.0",
"4.1.0",
"v4.0.0",
"4.0.0",
"v3.16.0",
"3.16.0",
"v3.15.0",
"3.15.0",
"v3.14.1",
"3.14.1",
"v3.14.0",
"3.14.0",
"v3.13.0",
"3.13.0",
"v3.12.6",
"3.12.6",
"v3.12.5",
"3.12.5",
"v3.12.4",
"3.12.4",
"v3.12.3",
"3.12.3",
"v3.12.2",
"3.12.2",
"3.12.1",
"v3.12.0",
"3.12.0",
"v3.11.2",
"3.11.2",
"v3.11.1",
"3.11.1",
"v3.11.0",
"3.11.0",
"v3.10.0",
"3.10.0",
"v3.9.0",
"3.9.0",
"v3.8.0",
"3.8.0",
"v3.7.0",
"3.7.0",
"v3.6.1",
"3.6.1",
"3.6.0",
"3.4.0",
"3.3.0",
"3.2.0",
"3.1.0",
"3.0.0",
"2.13.1",
"2.13.0",
"2.12.0",
"2.11.0",
"2.10.0",
"2.9.0",
"2.8.5",
"2.8.4",
"2.8.3",
"2.8.2",
"2.8.1",
"2.7.0",
"2.6.0",
"2.5.0",
"2.4.0",
"2.3.0",
"2.2.0",
"2.1.2",
"2.1.1",
"2.1.0",
"2.0.2",
"v1.1.1"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-53496.json"
}
}
],
"modified": "2026-10-28T02:30:32.365375676Z",
"provider": "osv",
"references": [
"https://github.com/mattiasw/ExifReader/releases/tag/v4.40.1",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53496.json",
"https://github.com/mattiasw/ExifReader/security/advisories/GHSA-g77h-45rf-hcx4",
"https://nvd.nist.gov/vuln/detail/CVE-2026-53496",
"https://github.com/mattiasw/ExifReader/commit/00878ca9df0e26480dda7a931c888048c9f7be45"
],
"provider_metadata": {
"cwe_ids": [
"CWE-248",
"CWE-755"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53496.json"
}
},
"related_cves": [
{
"value": "CVE-2026-53496",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 499553,
"published_at": "2026-09-14T16:12:43.777+00:00"
}