CVE-2026-47879 Overview
CVE-2026-47879 affects Spring Cloud Gateway's JsonToGrpcGatewayFilterFactory, which permits arbitrary Spring Resource locations when defining the proto descriptor. An authenticated attacker with high privileges can point the filter at attacker-controlled resource locations, expanding the impact scope beyond the gateway process. The flaw affects multiple supported release lines of Spring Cloud Gateway, including versions 5.0.0-5.0.2, 4.3.0-4.3.5, 4.0.0-4.2.9, and 3.1.13 and earlier. The issue is tracked in the Spring Security Advisory CVE-2026-47879.
Critical Impact
An attacker able to configure the JsonToGrpcGatewayFilterFactory can load proto descriptors from arbitrary Spring resource locations, compromising confidentiality and integrity across trust boundaries.
Affected Products
- Spring Cloud Gateway 5.0.0 - 5.0.2
- Spring Cloud Gateway 4.3.0 - 4.3.5, 4.0.0 - 4.2.9
- Spring Cloud Gateway 3.1.13 and earlier
Discovery Timeline
- 2026-08-27 - CVE-2026-47879 published to NVD
- 2026-08-27 - Last updated in NVD database
Technical Details for CVE-2026-47879
Vulnerability Analysis
Spring Cloud Gateway provides JsonToGrpcGatewayFilterFactory to translate JSON requests into gRPC calls. The filter requires a proto descriptor file to define message structures. The factory accepts a Spring Resource location string that is resolved without restricting the resource scheme or path. This allows references to file:, classpath:, http:, or other Spring-supported resource protocols that were not intended to be user-controllable.
Because the scope metric is Changed, exploitation impacts components beyond the vulnerable gateway process. The advisory categorizes the flaw as high impact for confidentiality and integrity, with no direct availability effect. The attack requires network access, high privileges to influence the filter configuration, and no user interaction.
Root Cause
The root cause is missing input validation on the proto descriptor location parameter passed to JsonToGrpcGatewayFilterFactory. Spring's ResourceLoader resolves any scheme it supports, so an operator or attacker with configuration influence can supply an arbitrary path. The factory does not restrict resources to a trusted directory, safe scheme allowlist, or signed artifact.
Attack Vector
An attacker who can influence gateway route configuration, whether through a compromised administrative interface, exposed configuration API, or configuration source poisoning, sets the proto descriptor to a location they control. When the filter loads, Spring resolves the resource and processes the attacker-supplied descriptor. This can be leveraged to disclose sensitive files reachable via the resource loader or to alter how downstream gRPC calls are marshalled, affecting integrity of proxied traffic.
No verified public exploit code is available at the time of publication. Refer to the Spring Security Advisory CVE-2026-47879 for authoritative technical details.
Detection Methods for CVE-2026-47879
Indicators of Compromise
- Gateway route definitions containing JsonToGrpc filter entries with protoDescriptor values pointing to non-standard paths, remote URLs, or user-writable directories.
- Outbound HTTP or file system reads from the gateway process targeting unexpected proto descriptor locations shortly after configuration reloads.
- Configuration change events in Spring Cloud Config, Consul, or Kubernetes ConfigMaps that add or modify JsonToGrpc filter parameters.
Detection Strategies
- Inventory all Spring Cloud Gateway instances and enumerate route configurations that reference JsonToGrpcGatewayFilterFactory.
- Compare running gateway versions against the affected version list and flag any match for patching.
- Audit configuration repositories and CI/CD pipelines for pull requests that introduce or modify proto descriptor paths.
Monitoring Recommendations
- Alert on gateway process reads from file: locations outside the approved application directory.
- Log and review any HTTP resource fetches originating from gateway JVMs during startup or dynamic route refresh.
- Track administrative API calls to /actuator/gateway/routes and equivalent management endpoints.
How to Mitigate CVE-2026-47879
Immediate Actions Required
- Upgrade Spring Cloud Gateway to a fixed release line as identified in the Spring Security Advisory CVE-2026-47879.
- Restrict administrative and configuration access to the gateway to a minimal set of trusted operators.
- Review existing routes and remove any JsonToGrpc filter that is not required.
Patch Information
Spring has published fixes covering the affected 5.0.x, 4.3.x, 4.x, and 3.1.x release lines. Consult the Spring Security Advisory CVE-2026-47879 for the specific patched version numbers and upgrade guidance.
Workarounds
- Disable the JsonToGrpcGatewayFilterFactory filter if the gRPC translation feature is not in use.
- Store proto descriptors in a fixed, read-only directory and validate configured paths against an allowlist before deployment.
- Enforce strict role-based access control on Spring Cloud Config, Kubernetes ConfigMaps, and Actuator endpoints that can modify gateway routes.
# Configuration example: remove JsonToGrpc filter from a route definition
# Review application.yml and delete or comment blocks like the following
# spring:
# cloud:
# gateway:
# routes:
# - id: grpc-route
# filters:
# - name: JsonToGrpc
# args:
# protoDescriptor: <REMOVE_UNTIL_PATCHED>
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

