{"metadata": {"vulnerability": "CVE-2026-62297", "count": 15, "kinds": {"milestone": 4, "sighting": 3, "kev": 0, "other": 8}, "linked_omitted": 0}, "data": [{"timestamp": "2026-06-28T19:32:11Z", "date_only": false, "value": "2026-06-28T19:32:11.000000Z", "kind": "sighting", "label": "Published proof of concept", "source": "https://github.com/Agamnentzar/ag-psd/security/advisories/GHSA-qfx6-q44v-9qqw", "record": "CVE-2026-62297", "field": "creation_timestamp", "uuid": "e047f08e-a9d4-411b-a235-d00bd5ff4336", "url": "https://github.com/Agamnentzar/ag-psd/security/advisories/GHSA-qfx6-q44v-9qqw", "metric_role": "exploit_publication", "metric_basis": "sighting_report"}, {"timestamp": "2026-07-13T18:37:08.488Z", "date_only": false, "value": "2026-07-13T18:37:08.488Z", "kind": "milestone", "label": "Reserved", "source": "cvelistv5", "record": "CVE-2026-62297", "field": "cveMetadata.dateReserved"}, {"timestamp": "2026-10-30T20:57:06.379Z", "date_only": false, "value": "2026-10-30T20:57:06.379Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-62297", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, {"timestamp": "2026-10-30T20:57:06.379Z", "date_only": false, "value": "2026-10-30T20:57:06.379Z", "kind": "other", "label": "Updated", "source": "cvelistv5 / GitHub_M", "record": "CVE-2026-62297", "field": "containers.cna.providerMetadata.dateUpdated"}, {"timestamp": "2026-10-30T21:17:13Z", "date_only": false, "value": "2026-10-30T21:17:13Z", "kind": "other", "label": "Nvd published at", "source": "github \u00b7 GHSA-QFX6-Q44V-9QQW", "record": "GHSA-QFX6-Q44V-9QQW", "field": "database_specific.nvd_published_at", "linked_record": true}, {"timestamp": "2026-10-30T21:17:13.520Z", "date_only": false, "value": "2026-10-30T21:17:13.520", "kind": "milestone", "label": "Published", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-62297", "record": "FKIE_CVE-2026-62297", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-31T22:01:09.507Z", "date_only": false, "value": "2026-10-31T22:01:09.507207Z", "kind": "sighting", "label": "Seen", "source": "https://bsky.app/profile/thehackerwire.bsky.social/post/3mz7cagvbac2z", "record": "CVE-2026-62297", "field": "creation_timestamp", "uuid": "d44bb7bb-3e7d-40b5-b86d-ad231cf50faf", "content": "\ud83d\udfe0 CVE-2026-62297 - High (7.5)\n\nag-psd is a JavaScript library for reading and writing Photoshop Document files. Before the alloc...\n\nhttps://www.thehackerwire.com/vulnerability/CVE-2026-62297/\n\n#infosec #cybersecurity #CVE #vulnerability #security #patchstack", "url": "https://bsky.app/profile/thehackerwire.bsky.social/post/3mz7cagvbac2z"}, {"timestamp": "2026-11-02T14:52:04.225Z", "date_only": false, "value": "2026-11-02T14:52:04.225499Z", "kind": "other", "label": "Recorded", "source": "cvelistv5 / CISA-ADP", "record": "CVE-2026-62297", "field": "containers.adp.0.metrics.0.other.content.timestamp"}, {"timestamp": "2026-11-02T14:52:04.225Z", "date_only": false, "value": "2026-11-02T14:52:04.225499Z", "kind": "other", "label": "Recorded", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-62297", "record": "FKIE_CVE-2026-62297", "field": "metrics.ssvcV203.0.ssvcData.timestamp", "linked_record": true}, {"timestamp": "2026-11-02T14:53:11.326Z", "date_only": false, "value": "2026-11-02T14:53:11.326Z", "kind": "other", "label": "Updated", "source": "cvelistv5", "record": "CVE-2026-62297", "field": "cveMetadata.dateUpdated"}, {"timestamp": "2026-11-02T14:53:11.326Z", "date_only": false, "value": "2026-11-02T14:53:11.326Z", "kind": "other", "label": "Updated", "source": "cvelistv5 / CISA-ADP", "record": "CVE-2026-62297", "field": "containers.adp.0.providerMetadata.dateUpdated"}, {"timestamp": "2026-11-02T19:35:33.347Z", "date_only": false, "value": "2026-11-02T19:35:33.347", "kind": "other", "label": "Updated", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-62297", "record": "FKIE_CVE-2026-62297", "field": "lastModified", "linked_record": true}, {"timestamp": "2026-11-13T23:19:38Z", "date_only": false, "value": "2026-11-13T23:19:38Z", "kind": "milestone", "label": "Published", "source": "github \u00b7 GHSA-QFX6-Q44V-9QQW", "record": "GHSA-QFX6-Q44V-9QQW", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-11-13T23:19:38Z", "date_only": false, "value": "2026-11-13T23:19:38Z", "kind": "other", "label": "Updated", "source": "github \u00b7 GHSA-QFX6-Q44V-9QQW", "record": "GHSA-QFX6-Q44V-9QQW", "field": "modified", "linked_record": true}, {"timestamp": "2026-11-14T04:30:51Z", "date_only": false, "value": "2026-11-14T04:30:51.000000Z", "kind": "sighting", "label": "Seen", "source": "https://gist.github.com/alon710/362a384f3aee62977f25e01631ae3c92", "record": "CVE-2026-62297", "field": "creation_timestamp", "uuid": "0f8543c3-3f27-4842-93cd-3db73f1284e4", "content": "# CVE-2026-62297: CVE-2026-62297: Uncontrolled Memory Allocation and Denial of Service in ag-psd\n\n&gt; **CVSS Score:** 7.5\n&gt; **Published:** 2026-11-13\n&gt; **Full Report:** https://cvereports.com/reports/CVE-2026-62297\n\n## Summary\nAn uncontrolled memory allocation vulnerability exists in ag-psd versions prior to 31.0.0. When parsing Adobe Photoshop Document (PSD) files, the readPsd() function reads image dimensions and color depth directly from the file header and allocates off-heap typed arrays without validating whether the requested memory size is proportional to the input stream or bounded by operational thresholds. An unauthenticated attacker can supply a crafted 52-byte PSD payload that triggers an immediate 3.35 GB memory allocation, resulting in process termination via the operating system Out-Of-Memory (OOM) killer.\n\n## TL;DR\nVersions of the JavaScript PSD parser library ag-psd prior to 31.0.0 allocate image buffers based directly on unvalidated width, height, and bit-depth fields in the PSD header. A crafted 52-byte payload can force the Node.js runtime to allocate over 3.35 GB of off-heap memory, causing immediate denial of service via Out-Of-Memory (OOM) crashes.\n\n## Exploit Status: POC\n\n## Technical Details\n\n- **CVE ID**: CVE-2026-62297 (GHSA-qfx6-q44v-9qqw)\n- **Weakness Class**: CWE-789: Memory Allocation with Excessive Size Value\n- **CVSS v3.1 Score**: 7.5 HIGH (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)\n- **EPSS Score**: 0.34% (27.71st Percentile)\n- **Affected Component**: ag-psd (&lt; 31.0.0) readPsd() / createImageDataBitDepth()\n- **Impact**: Denial of Service via 3.35+ GB Off-Heap OOM Exhaustion\n- **Exploit Status**: Public PoC Available (52-byte PSD payload)\n- **CISA KEV Status**: Not Listed\n\n## Affected Systems\n\n- ag-psd (npm package)\n- **ag-psd**: &lt; 31.0.0 (Fixed in: `31.0.0`)\n\n## Mitigation\n\n- Enforce strict memory allocation ceilings via the totalMemoryLimit reader option.\n- Defer bitmap allocation and decompression during initial parsing using useRawData: true and useRawThumbnail: true.\n- Validate composite document dimensions, bit depth, layer count, and individual layer bounding rectangles before decoding pixel data.\n- Isolate PSD parsing workloads in dedicated worker processes or ephemeral containers with strict OS-level cgroup limits.\n\n**Remediation Steps:**\n1. Upgrade the ag-psd dependency to version 31.0.0 or later via npm install ag-psd@^31.0.0.\n2. Pass an explicit totalMemoryLimit option (e.g., 50 MB to 100 MB) to all readPsd() calls handling untrusted input instead of relying on the 2 GB default.\n3. Enable useRawData: true in readPsd() options to inspect psd.width, psd.height, and layer coordinates prior to invoking getCompositeImageData() or getLayerImageData().\n\n## References\n\n- [GitHub Security Advisory (GHSA-qfx6-q44v-9qqw)](https://github.com/Agamnentzar/ag-psd/security/advisories/GHSA-qfx6-q44v-9qqw)\n- [Official Fix Commit (v31.0.0)](https://github.com/Agamnentzar/ag-psd/commit/2d7da68400990bae8ba248a065eb45021fa8000a)\n- [ag-psd Release 31.0.0 Tree](https://github.com/Agamnentzar/ag-psd/tree/31.0.0)\n- [Official CVE Record (CVE.org)](https://www.cve.org/CVERecord?id=CVE-2026-62297)\n- [National Vulnerability Database (NVD) - CVE-2026-62297](https://nvd.nist.gov/vuln/detail/CVE-2026-62297)\n- [CVEProject cvelistV5 Record](https://raw.githubusercontent.com/CVEProject/cvelistV5/main/cves/2026/62xxx/CVE-2026-62297.json)\n- [ag-psd GitHub Repository](https://github.com/Agamnentzar/ag-psd)\n\n\n---\n*Generated by [CVEReports](https://cvereports.com/reports/CVE-2026-62297) - Automated Vulnerability Intelligence*", "url": "https://gist.github.com/alon710/362a384f3aee62977f25e01631ae3c92"}], "metrics": {"as_of": "2026-11-14T06:17:37.741Z", "anchors": {"origin": {"timestamp": "2026-10-30T20:57:06.379Z", "date_only": false, "value": "2026-10-30T20:57:06.379Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-62297", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "discovery": null, "report": null, "acknowledgement": null, "disclosure": {"timestamp": "2026-10-30T20:57:06.379Z", "date_only": false, "value": "2026-10-30T20:57:06.379Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-62297", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "exploit_publication": {"timestamp": "2026-06-28T19:32:11Z", "date_only": false, "value": "2026-06-28T19:32:11.000000Z", "kind": "sighting", "label": "Published proof of concept", "source": "https://github.com/Agamnentzar/ag-psd/security/advisories/GHSA-qfx6-q44v-9qqw", "record": "CVE-2026-62297", "field": "creation_timestamp", "uuid": "e047f08e-a9d4-411b-a235-d00bd5ff4336", "url": "https://github.com/Agamnentzar/ag-psd/security/advisories/GHSA-qfx6-q44v-9qqw", "metric_role": "exploit_publication", "metric_basis": "sighting_report"}, "exploitation": null, "patch": null}, "vendor_response_time": {"available": false, "missing": ["start", "end"]}, "time_to_exploit": {"available": false, "missing": ["end"]}, "disclosure_to_exploit": {"available": false, "missing": ["end"]}, "disclosure_to_exploit_publication": {"available": true, "seconds": -10718695.379, "hours": -2977.4153830555556, "days": -124.05897429398149, "min_seconds": -10718695.379, "max_seconds": -10718695.379, "approximate": false, "ongoing": false, "order_known": true, "batch_listing": false, "end_before_start": true, "start": {"timestamp": "2026-10-30T20:57:06.379Z", "date_only": false, "value": "2026-10-30T20:57:06.379Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-62297", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "end": {"timestamp": "2026-06-28T19:32:11Z", "date_only": false, "value": "2026-06-28T19:32:11.000000Z", "kind": "sighting", "label": "Published proof of concept", "source": "https://github.com/Agamnentzar/ag-psd/security/advisories/GHSA-qfx6-q44v-9qqw", "record": "CVE-2026-62297", "field": "creation_timestamp", "uuid": "e047f08e-a9d4-411b-a235-d00bd5ff4336", "url": "https://github.com/Agamnentzar/ag-psd/security/advisories/GHSA-qfx6-q44v-9qqw", "metric_role": "exploit_publication", "metric_basis": "sighting_report"}}, "time_to_patch": {"available": false, "missing": ["start", "end"]}, "total_time_to_patch": {"available": false, "missing": ["start", "end"]}, "disclosure_to_patch": {"available": false, "missing": ["end"]}, "time_unpatched": {"available": true, "seconds": 1243231.3629, "hours": 345.34204525, "days": 14.389251885416668, "min_seconds": 1243231.3629, "max_seconds": 1243231.3629, "approximate": false, "ongoing": true, "order_known": true, "batch_listing": false, "end_before_start": false, "start": {"timestamp": "2026-10-30T20:57:06.379Z", "date_only": false, "value": "2026-10-30T20:57:06.379Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-62297", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "end": {"timestamp": "2026-11-14T06:17:37.741Z", "date_only": false, "label": "As of", "source": "Calculation clock"}}, "exploitation_to_patch": {"available": false, "missing": ["start"]}, "exploit_publication_to_patch": {"available": true, "seconds": 11961926.7419, "hours": 3322.7574283055555, "days": 138.44822617939815, "min_seconds": 11961926.7419, "max_seconds": 11961926.7419, "approximate": false, "ongoing": true, "order_known": true, "batch_listing": false, "end_before_start": false, "start": {"timestamp": "2026-06-28T19:32:11Z", "date_only": false, "value": "2026-06-28T19:32:11.000000Z", "kind": "sighting", "label": "Published proof of concept", "source": "https://github.com/Agamnentzar/ag-psd/security/advisories/GHSA-qfx6-q44v-9qqw", "record": "CVE-2026-62297", "field": "creation_timestamp", "uuid": "e047f08e-a9d4-411b-a235-d00bd5ff4336", "url": "https://github.com/Agamnentzar/ag-psd/security/advisories/GHSA-qfx6-q44v-9qqw", "metric_role": "exploit_publication", "metric_basis": "sighting_report"}, "end": {"timestamp": "2026-11-14T06:17:37.741Z", "date_only": false, "label": "As of", "source": "Calculation clock"}}}}
