Search
Find a vulnerability
Search criteria
2 vulnerabilities found for ipx by unjs
CVE-2025-54387 (GCVE-0-2025-54387)
Vulnerability from nvd – Published: 2025-08-05 00:10 – Updated: 2025-08-05 14:11
VLAI
EPSS
VEX
Title
IPX is Vulnerable to Path Traversal via Prefix Matching Bypass
Summary
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.
Severity
SSVC
Exploitation: poc
Automatable: yes
Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2025-08-05 14:11 UTC
CWE
- CWE-22 - Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
Assigner
References
5 references
| URL | Tags |
|---|---|
| https://github.com/unjs/ipx/security/advisories/G… | x_refsource_CONFIRM |
| https://github.com/unjs/ipx/commit/81693ddbfc062c… | x_refsource_MISC |
| https://github.com/unjs/ipx/releases/tag/v1.3.2 | x_refsource_MISC |
| https://github.com/unjs/ipx/releases/tag/v2.1.1 | x_refsource_MISC |
| https://github.com/unjs/ipx/releases/tag/v3.1.1 | x_refsource_MISC |
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2025-54387",
"options": [
{
"Exploitation": "poc"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2025-08-05T14:11:56.190437Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2025-08-05T14:11:59.162Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"references": [
{
"tags": [
"exploit"
],
"url": "https://github.com/unjs/ipx/security/advisories/GHSA-mm3p-j368-7jcr"
}
],
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "ipx",
"vendor": "unjs",
"versions": [
{
"status": "affected",
"version": "\u003c 1.3.2"
},
{
"status": "affected",
"version": "\u003e= 2.0.0-0, \u003c 2.1.1"
},
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c 3.1.1"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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."
}
],
"metrics": [
{
"cvssV4_0": {
"attackComplexity": "LOW",
"attackRequirements": "PRESENT",
"attackVector": "NETWORK",
"baseScore": 6.9,
"baseSeverity": "MEDIUM",
"privilegesRequired": "NONE",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "HIGH",
"subIntegrityImpact": "LOW",
"userInteraction": "NONE",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:H/SI:L/SA:N",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "LOW",
"vulnIntegrityImpact": "NONE"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-22",
"description": "CWE-22: Improper Limitation of a Pathname to a Restricted Directory (\u0027Path Traversal\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2025-08-05T00:10:26.442Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/unjs/ipx/security/advisories/GHSA-mm3p-j368-7jcr",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/unjs/ipx/security/advisories/GHSA-mm3p-j368-7jcr"
},
{
"name": "https://github.com/unjs/ipx/commit/81693ddbfc062cc922e4e2406e8427ab4e3ad214",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/unjs/ipx/commit/81693ddbfc062cc922e4e2406e8427ab4e3ad214"
},
{
"name": "https://github.com/unjs/ipx/releases/tag/v1.3.2",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/unjs/ipx/releases/tag/v1.3.2"
},
{
"name": "https://github.com/unjs/ipx/releases/tag/v2.1.1",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/unjs/ipx/releases/tag/v2.1.1"
},
{
"name": "https://github.com/unjs/ipx/releases/tag/v3.1.1",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/unjs/ipx/releases/tag/v3.1.1"
}
],
"source": {
"advisory": "GHSA-mm3p-j368-7jcr",
"discovery": "UNKNOWN"
},
"title": "IPX is Vulnerable to Path Traversal via Prefix Matching Bypass"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2025-54387",
"datePublished": "2025-08-05T00:10:26.442Z",
"dateReserved": "2025-07-21T16:12:20.734Z",
"dateUpdated": "2025-08-05T14:11:59.162Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.1"
}
CVE-2025-54387 (GCVE-0-2025-54387)
Vulnerability from cvelistv5 – Published: 2025-08-05 00:10 – Updated: 2025-08-05 14:11
VLAI
EPSS
VEX
Title
IPX is Vulnerable to Path Traversal via Prefix Matching Bypass
Summary
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.
Severity
SSVC
Exploitation: poc
Automatable: yes
Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2025-08-05 14:11 UTC
CWE
- CWE-22 - Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
Assigner
References
5 references
| URL | Tags |
|---|---|
| https://github.com/unjs/ipx/security/advisories/G… | x_refsource_CONFIRM |
| https://github.com/unjs/ipx/commit/81693ddbfc062c… | x_refsource_MISC |
| https://github.com/unjs/ipx/releases/tag/v1.3.2 | x_refsource_MISC |
| https://github.com/unjs/ipx/releases/tag/v2.1.1 | x_refsource_MISC |
| https://github.com/unjs/ipx/releases/tag/v3.1.1 | x_refsource_MISC |
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2025-54387",
"options": [
{
"Exploitation": "poc"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2025-08-05T14:11:56.190437Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2025-08-05T14:11:59.162Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"references": [
{
"tags": [
"exploit"
],
"url": "https://github.com/unjs/ipx/security/advisories/GHSA-mm3p-j368-7jcr"
}
],
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "ipx",
"vendor": "unjs",
"versions": [
{
"status": "affected",
"version": "\u003c 1.3.2"
},
{
"status": "affected",
"version": "\u003e= 2.0.0-0, \u003c 2.1.1"
},
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c 3.1.1"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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."
}
],
"metrics": [
{
"cvssV4_0": {
"attackComplexity": "LOW",
"attackRequirements": "PRESENT",
"attackVector": "NETWORK",
"baseScore": 6.9,
"baseSeverity": "MEDIUM",
"privilegesRequired": "NONE",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "HIGH",
"subIntegrityImpact": "LOW",
"userInteraction": "NONE",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:H/SI:L/SA:N",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "LOW",
"vulnIntegrityImpact": "NONE"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-22",
"description": "CWE-22: Improper Limitation of a Pathname to a Restricted Directory (\u0027Path Traversal\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2025-08-05T00:10:26.442Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/unjs/ipx/security/advisories/GHSA-mm3p-j368-7jcr",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/unjs/ipx/security/advisories/GHSA-mm3p-j368-7jcr"
},
{
"name": "https://github.com/unjs/ipx/commit/81693ddbfc062cc922e4e2406e8427ab4e3ad214",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/unjs/ipx/commit/81693ddbfc062cc922e4e2406e8427ab4e3ad214"
},
{
"name": "https://github.com/unjs/ipx/releases/tag/v1.3.2",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/unjs/ipx/releases/tag/v1.3.2"
},
{
"name": "https://github.com/unjs/ipx/releases/tag/v2.1.1",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/unjs/ipx/releases/tag/v2.1.1"
},
{
"name": "https://github.com/unjs/ipx/releases/tag/v3.1.1",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/unjs/ipx/releases/tag/v3.1.1"
}
],
"source": {
"advisory": "GHSA-mm3p-j368-7jcr",
"discovery": "UNKNOWN"
},
"title": "IPX is Vulnerable to Path Traversal via Prefix Matching Bypass"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2025-54387",
"datePublished": "2025-08-05T00:10:26.442Z",
"dateReserved": "2025-07-21T16:12:20.734Z",
"dateUpdated": "2025-08-05T14:11:59.162Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.1"
}