Skip to main content
← Vulnerabilities

ag-psd: Uncontrolled Memory Allocation in PSD Layer Decoding (totalMemoryLimit bypass)

Affects ag-psd before 31.0.1 when layer decoding is enabled, which is the default. No vendor severity rating is given. Fixed in 31.0.1.

Written by anthropic/claude-haiku-5.5 from the sources below. Verify against them.

7.5HighCNA
Exploited
Proof of concept public, per CISA
Fix
Fixed in 31.0.1
Who is exposed
Default setups

Do first: Check every install: default setups are affected.

48Pcve.now Index 48 of 100 · methodology v3 · provisional
  • Exploitation15/40CISA rates a proof of concept as public
  • Exposure25/25Default setups, CISA rates it automatable
  • Reach?/20Reach: unknown (data gap). No tracked technology or package matched
  • Severity7.5/10CVSS 7.5
  • No patch0/5No signal

What would change the score

  • Would score about 73 if added to CISA KEV
  • Would score about 68 if CISA's SSVC rates exploitation active

CVE-2026-63501 is not in CISA's Known Exploited Vulnerabilities (KEV) catalog. No public exploit code is tracked. It is rated CVSS 7.5 (high) and affects ag-psd; fixed in 31.0.1.

Published
Last modified
Published
Not listed in CISA KEV
48/100 · provisional
Default setups
Fix
Fixed in 31.0.1
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: poc
  • Automatable: yes
  • Technical impact: partial

Summary

ag-psd, a JavaScript library used to read and write Photoshop (PSD) files, is affected when applications parse untrusted PSD files with layer decoding enabled. An attacker can craft a file that causes excessive memory allocation, exhausting process memory and crashing the application (denial of service), because the configured memory limit is not applied during layer decoding.

Read the original description

ag-psd is a JavaScript library for reading and writing Photoshop Document files. Prior to 31.0.3, readPsd() accepts a totalMemoryLimit for parsing untrusted PSD files, but decodeLayerImageData expects a differently named memoryLimit property and therefore passes an undefined limit to createImageDataBitDepth. An attacker who can supply a PSD to an application with layer decoding enabled can use attacker-controlled layer dimensions to trigger an allocation larger than the configured limit, causing process memory exhaustion and denial of service. The advisory also identifies inflateSync(compressed) decompressing ZIP-encoded channel data without an output-size cap, which can cause a similar denial of service through unbounded decompression. This vulnerability is fixed in 31.0.1.

What to do

  • Check every install: default setups are affected.

  • Upgrade to a fixed version: 31.0.1.

Timeline

  1. CVE published
  2. First seen by cve.now
  3. CISA SSVC assessment

    Exploitation: poc · Automatable: yes · Technical impact: partial

  4. Record last updated

Affected versions

  • Agamnentzar ag-psd

    fixed in 31.0.1

Evidence 3

  1. Advisory
  2. Repository
  3. Repository

Corrections

None so far.

Something wrong on this page? Report an error. Every fix is listed here.

FAQ

Questions about CVE-2026-63501

Is CVE-2026-63501 being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. CISA's SSVC assessment notes a proof of concept exists. No public exploit code is tracked.Source: cve.now feed data

What does this mean?

A single crafted PSD file, as small as 86 bytes, can make ag-psd exhaust the process heap memory. The Node.js process can then crash or be killed by the operating system's out-of-memory killer, which is a denial of service.Source: github.com

Which versions are affected by CVE-2026-63501?

ag-psd: before 31.0.1.Source: cve.now feed data

Am I affected, and how do I check?

Versions of ag-psd before 31.0.1 are in scope, and the issue is triggered whenever layer decoding is enabled, which is the default. The installed version can be checked with npm ls ag-psd, and the layer decoding setting can be checked in the application's ag-psd options.Source: github.com

How do I fix CVE-2026-63501?

Upgrade ag-psd to 31.0.1 or later, which is the version listed as fixed.Source: github.com