CVE-2026-47879 is a high severity (CVSS 7.7) server-side request forgery in Spring Cloud Gateway. The JsonToGrpcGatewayFilterFactory allows arbitrary Spring resource locations for the proto descriptor. The open source fix is Spring Cloud Gateway 5.0.3. The steps below show how to check your version and what to change.
What's affected
- Spring Cloud Gateway 5.0.0 to 5.0.2. Fixed in 5.0.3 (open source).
- Spring Cloud Gateway 4.3.0 to 4.3.5. Fixed in 4.3.6 (Enterprise Support only).
- Spring Cloud Gateway 4.0.0 to 4.2.9. Fixed in 4.2.10 (Enterprise Support only).
- Spring Cloud Gateway 3.1.13 and earlier. Fixed in 3.1.14 (Enterprise Support only).
The record and the advisory match. Spring rates the issue High. The advisory also offers a configuration mitigation for file-based descriptors, shown below.
How to check if you're exposed
For Maven projects, print the resolved version:
mvn dependency:tree | grep spring-cloud-gateway
For Gradle projects:
./gradlew dependencies | grep spring-cloud-gateway
Check the transitive tree, not only your direct dependencies, because Spring components often arrive through a starter or a parent BOM.
Then check your route definitions for the JSON to gRPC filter. Search your configuration for JsonToGrpc. If you do not use this filter, the advisory does not describe you as exposed to this path.
What to do now
- Upgrade to Spring Cloud Gateway 5.0.3 or the fixed release for your line.
- If you use file-based descriptors, set the valid prefixes property so only expected locations can be read. For 5.0.x and 4.3.x it is
spring.cloud.gateway.server.webflux.json-to-grpc.valid-proto-descriptor-prefixes. - For 4.2.x and 3.1.x the property is
spring.cloud.gateway.json-to-grpc.valid-proto-descriptor-prefixes. - Review who can create or edit gateway routes, since the filter configuration is where the location is set.
Why it matters
The record lists CWE-918, server-side request forgery. The filter loads a protocol buffer descriptor from a Spring resource location, and the framework accepts many kinds of location, such as files and URLs. If that location can be influenced, the gateway can be made to fetch or read something the operator did not intend.
Gateways sit at a trust boundary and often have network reach into internal services, which is why SSRF in this component rates High. Limiting the allowed prefixes turns an open location into an allowlist. The record does not mark this CVE as known exploited.
Quick check
Do I need to be using gRPC to be at risk?
The flaw is in the JSON to gRPC filter. If your routes do not use that filter, the advisory does not describe you as exposed to this issue.
What does the prefix property do?
It restricts the proto descriptor locations the filter may read to the prefixes you list.
Sources
Last reviewed: 18 October 2026.