Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/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
Network-exploitable with authenticated low-privilege access; scope changes to internal container services justify S:C, with low C and I reflecting limited service probing impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Appsmith is a platform to build admin panels, internal tools, and dashboards. Prior to 2.1, the outbound HTTP host filter applied by WebClientUtils (used by the REST API and GraphQL datasource plugins) validates hosts against an exact-match string denylist. The comprehensive address-class check (loopback, any-local, link-local, fc00::/7) exists only on a separate code path used by SMTP, not by the HTTP plugin path. As a result, an authenticated user can craft outbound requests that reach loopback-bound services inside the container. This vulnerability is fixed in 2.1.
AnalysisAI
Server-side request forgery in Appsmith prior to version 2.1 allows authenticated users to reach loopback-bound services inside the deployment container by exploiting a split code path in host validation logic. The WebClientUtils component used by REST API and GraphQL datasource plugins enforces only an exact-match string denylist, while the comprehensive address-class check covering loopback, any-local, link-local, and fc00::/7 IPv6 ranges exists solely on the SMTP plugin code path - leaving the HTTP path bypassable. No public exploit code has been identified at time of analysis, and this CVE does not appear in the CISA KEV catalog.
Technical ContextAI
Appsmith is an open-source low-code platform (CPE: cpe:2.3:a:appsmithorg:appsmith:*:*:*:*:*:*:*:*) that allows users to build admin panels and internal dashboards by connecting to external datasources including REST APIs, GraphQL endpoints, and SMTP servers. The vulnerability is rooted in CWE-918 (Server-Side Request Forgery), a class of flaw where a server-side component makes outbound HTTP requests controlled by user input without sufficiently validating the destination. The specific root cause is architectural inconsistency: the WebClientUtils class validates outbound HTTP destinations using an exact-match string denylist, while a separate, more robust check that evaluates IP address class membership - blocking loopback (127.0.0.0/8, ::1), any-local, link-local, and the fc00::/7 ULA IPv6 range - was implemented only for the SMTP plugin path. This denylist-only approach on the HTTP path is inherently weaker because string matching fails to account for alternative IP encodings, IPv6 representations, and canonicalization variations that resolve to blocked ranges.
RemediationAI
Upgrade Appsmith to version 2.1 or later, which introduces the comprehensive address-class validation (loopback, any-local, link-local, fc00::/7) on the HTTP plugin code path in WebClientUtils, closing the denylist bypass. The fix is detailed in GitHub Security Advisory GHSA-m23h-pvf3-2m7p at https://github.com/appsmithorg/appsmith/security/advisories/GHSA-m23h-pvf3-2m7p. If immediate upgrade is not possible, compensating controls include restricting which Appsmith user roles are permitted to create or edit REST API and GraphQL datasource configurations, thereby reducing the population of users who can exploit the bypass. Network-level egress filtering on the container host to block outbound connections from Appsmith to 127.0.0.0/8, ::1, 169.254.0.0/16, and fc00::/7 provides a defense-in-depth layer, though this may interfere with legitimate internal datasource connectivity and should be tested before production deployment.
An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl
Appsmith before 1.93 allows attackers to control the Origin header value used as the base URL in password reset and emai
Server-side JavaScript injection in Appsmith through 1.7.14 allows remote attackers to execute arbitrary JavaScript code
AppSmith Community 1.8.3 before 1.46 allows SSRF via New DataSource for application/json requests to 169.254.169.254 to
Server-Side Request Forgery (SSRF) in GitHub repository appsmithorg/appsmith prior to 1.8.2. Rated medium severity (CVSS
Reverse-proxy takeover in Appsmith versions prior to 2.1 lets an authenticated low-privileged user abuse server-side req
Server-side request forgery (SSRF) in Appsmith Dashboard component allows unauthenticated remote attackers to manipulate
Appsmith platform version 1.94 and below has a missing authorization vulnerability that allows unauthenticated access to
Stored XSS in Appsmith's SQL query editor autocomplete allows an authenticated Developer-role user to inject persistent
Appsmith platform prior to version 1.96 has a critical stored XSS enabling account takeover through crafted admin panel
Authenticated command execution in Appsmith versions prior to 2.1 lets any administrator run arbitrary OS commands insid
Appsmith v1.7.11 was discovered to allow attackers to execute an authenticated Server-Side Request Forgery (SSRF) via re
Same weakness CWE-918 – Server-Side Request Forgery (SSRF)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-39111