MediumGHSA-3m9m-24vh-39wxCVE-2026-41129

Server-Side Request Forgery (SSRF) in Craft CMS with Asset Uploads Mutations

Published 14 Apr 2026 · Updated 5 May 2026

Affected packages

craftcms/cmsComposer
Affected
>=5.0.0-RC1 <5.9.15
Fixed in
5.9.15
Update to the fixed version for your release line, for example:composer require craftcms/cms:^5.9.15
craftcms/cmsComposer
Affected
>=4.0.0-RC1 <4.17.9
Fixed in
4.17.9
Update to the fixed version for your release line, for example:composer require craftcms/cms:^4.17.9

Details

Required Permissions

The exploitation requires a few permissions to be enabled in the used GraphQL schema:

  • "Edit assets in the <VolumeName> volume"
  • "Create assets in the <VolumeName> volume"

Details

The implementation fails to restrict the URL Scheme. While the application is intended to "upload assets", there is no whitelist forcing http or https. This allows attackers to use the Gopher protocol to wrap raw TCP commands.

Impact: Combined with the DWORD bypass, an attacker can hit internal services without triggering any "127.0.0.1" string-matching filters.

Example Payload: gopher://2130706433:6379/_FLUSHALL (Targets local Redis via DWORD).

Remediation Strategy

To prevent mathematical IP obfuscation, the application must normalize the hostname before validation.

Is GHSA-3m9m-24vh-39wx in any of your client repos?

Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected craftcms/cms, and gives you the command that fixes it.

References

Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.