CVE-2026-55455 Overview
CVE-2026-55455 is a Server-Side Request Forgery (SSRF) vulnerability in Appsmith, an open-source platform for building admin panels, internal tools, and dashboards. The flaw exists in versions prior to 2.1. The outbound HTTP host filter in WebClientUtils, used by the REST API and GraphQL datasource plugins, validates hosts against an exact-match string denylist. The comprehensive address-class check covering loopback, any-local, link-local, and fc00::/7 ranges only exists on the SMTP code path. An authenticated user can craft outbound requests that reach loopback-bound services inside the container.
Critical Impact
An authenticated Appsmith user can issue outbound HTTP or GraphQL requests that reach internal services bound to the container loopback interface, enabling reconnaissance of internal endpoints and access to services intended to be unreachable from external clients.
Affected Products
- Appsmith versions prior to 2.1
- REST API datasource plugin in affected Appsmith releases
- GraphQL datasource plugin in affected Appsmith releases
Discovery Timeline
- 2026-06-24 - CVE-2026-55455 published to NVD
- 2026-06-25 - Last updated in NVD database
Technical Details for CVE-2026-55455
Vulnerability Analysis
The vulnerability is classified as Server-Side Request Forgery [CWE-918]. Appsmith allows users to configure REST API and GraphQL datasources that issue outbound HTTP requests from the server. To prevent abuse, the platform applies a host filter inside WebClientUtils before dispatching requests. This filter only performs string comparison against a denylist of host names. It does not resolve the target host to its underlying IP address or evaluate the resolved address against reserved ranges. The platform implements a thorough address-class validation that rejects loopback, any-local, link-local, and unique-local IPv6 addresses, but that logic is wired only into the SMTP datasource path. The REST API and GraphQL plugins bypass the comprehensive check entirely.
Root Cause
The root cause is inconsistent input validation across datasource plugins. The HTTP plugin path validates only the literal host string supplied by the authenticated user. An attacker can submit equivalent representations such as 127.0.0.1, 0.0.0.0, IPv6 loopback [::1], hex or decimal-encoded IPv4 addresses, or a DNS name that resolves to an internal address. None of these representations are caught by the exact-match denylist used in WebClientUtils.
Attack Vector
Exploitation requires an authenticated Appsmith account with permission to create or edit a REST API or GraphQL datasource. The attacker configures a datasource pointing at a loopback-bound service inside the container, such as a metadata service, an internal admin API, or another co-located process. When the datasource executes, the server issues the request from within the container, bypassing network controls that would block external clients. The response is returned to the attacker through the standard datasource UI.
No verified proof-of-concept code has been published. Refer to the GitHub Security Advisory GHSA-m23h-pvf3-2m7p for technical detail.
Detection Methods for CVE-2026-55455
Indicators of Compromise
- Outbound HTTP requests originating from the Appsmith server process that target 127.0.0.0/8, ::1, 169.254.0.0/16, or fc00::/7 destinations.
- REST API or GraphQL datasource configurations referencing internal hostnames, loopback addresses, or numeric-encoded IPv4 literals.
- Unexpected access log entries on internal services that are otherwise unreachable from outside the container.
Detection Strategies
- Audit Appsmith datasource definitions for hosts that resolve to private, loopback, or link-local IP addresses.
- Inspect Appsmith application logs for requests issued through WebClientUtils to non-routable destinations.
- Correlate authenticated user actions in Appsmith with outbound connection telemetry from the container runtime.
Monitoring Recommendations
- Enable egress logging from the Appsmith container and alert on connections to loopback or metadata service addresses.
- Track creation and modification events for REST API and GraphQL datasources, including the configured base URL.
- Forward container network flow data to a SIEM and build identifications for SSRF-style destination patterns.
How to Mitigate CVE-2026-55455
Immediate Actions Required
- Upgrade Appsmith to version 2.1 or later, which applies the comprehensive address-class check to the HTTP plugin path.
- Review existing REST API and GraphQL datasources and remove any that target internal addresses without a documented business need.
- Restrict who can create or edit datasources by tightening workspace and application role assignments.
Patch Information
The vulnerability is fixed in Appsmith 2.1. The fix extends the loopback, any-local, link-local, and fc00::/7 validation from the SMTP path to the HTTP plugin path used by REST API and GraphQL datasources. Upgrade instructions and release notes are referenced in the GitHub Security Advisory GHSA-m23h-pvf3-2m7p.
Workarounds
- Place the Appsmith container in a network namespace that blocks outbound traffic to loopback and link-local destinations from co-located services.
- Run Appsmith without co-located sensitive services in the same container or pod so that loopback contains no reachable targets.
- Use network policies or a service mesh to restrict outbound destinations to an explicit allowlist of approved API hosts.
# Example Kubernetes NetworkPolicy restricting Appsmith egress to approved CIDRs
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: appsmith-egress-allowlist
spec:
podSelector:
matchLabels:
app: appsmith
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: 0.0.0.0/0
except:
- 127.0.0.0/8
- 169.254.0.0/16
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

