Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged Appsmith user
-
DeliveryConfigure data source/API pointing at internal 0.0.0.0:2019
-
ExploitDrive SSRF: server sends POST /load to Caddy admin API
-
ExecutionReplace live Caddy configuration
-
ImpactTake over reverse proxy and intercept/redirect traffic
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Dangerous method exposure prevention
|
| Exploitation Conditions | Exploitation requires an authenticated low-privileged Appsmith account (CVSS PR:L) on a version prior to 2.1 deployed via the bundled Docker image where Caddy's admin API is bound to 0.0.0.0:2019, plus a usable SSRF primitive that coerces the Appsmith server process to issue requests to that internal endpoint (e.g., abusing data-source/outbound-request features). The key limiting factor is that port 2019 is NOT published to the host by docker-compose.yml, so the attacker cannot hit it directly from the network - they must pivot through the in-container SSRF/Appsmith-server path; no end-user interaction is required (UI:N). |
| Impact | The published CVSS:3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H = 9.9) reflects a network-reachable, low-complexity attack needing only low privileges, with a scope change because compromising Caddy affects a component beyond the vulnerable backend. The realistic prerequisite is twofold: a valid low-privileged Appsmith account AND a usable SSRF primitive (Appsmith's data-source/API features can be configured by low-priv users to make outbound requests, which plausibly satisfies AC:L). EPSS data was not provided and the CVE is not listed in CISA KEV, so there is no evidence of active exploitation; likewise no POC was supplied, so this should be treated as 'no public exploit identified at time of analysis' rather than an imminent mass-exploitation threat. The signals are internally consistent - network vector matches the SSRF-driven reachability - but note the listener is NOT published to the host by docker-compose, so exploitation depends on the in-container SSRF path rather than direct internet exposure of port 2019; this caveat slightly tempers the otherwise critical score. Net: a genuine high-priority issue for any internet-facing self-hosted Appsmith instance, but contingent on the SSRF chain rather than a single unauthenticated request. |
| Exploit ScenarioDerived | A low-privileged user logs into a self-hosted Appsmith instance and configures a data source or REST API action pointing at http://0.0.0.0:2019/load, then triggers the Appsmith server to send a crafted POST containing attacker-chosen Caddy JSON configuration. Caddy accepts the unauthenticated request and reloads, handing the attacker control of the reverse proxy so they can intercept or redirect all traffic and serve malicious content. No public exploit code was identified at time of analysis, but the chain uses only built-in Appsmith functionality. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 24, 2026
Reverse-proxy takeover in Appsmith versions prior to 2.1 lets an authenticated low-privileged user abuse server-side request forgery to reach the bundled Caddy admin API, which ships with no authentication and listens on 0.0.0.0:2019 inside the container. By forcing the Appsmith server to issue a POST /load to that internal endpoint, the attacker rewrites the live Caddy configuration and seizes control of the reverse proxy that fronts the application. No public exploit identified at time of analysis and the issue is not in CISA KEV, but the vendor-confirmed CWE-749 exposure carries a 9.9 CVSS rating.
RemediationAI
Upgrade to Appsmith 2.1 or later, which is the vendor-released patch that corrects the Caddy admin-API binding (Vendor-released patch: 2.1; see GHSA-8jvv-gwqg-6vjc at https://github.com/appsmithorg/appsmith/security/advisories/GHSA-8jvv-gwqg-6vjc). If you cannot upgrade immediately, rebind the Caddy admin listener to loopback by setting the admin endpoint to 127.0.0.1:2019 (or 'admin off' if runtime reconfiguration is not needed) in the container's Caddyfile/JSON config - this directly removes the 0.0.0.0 exposure but requires rebuilding or overriding the bundled image and means you lose remote admin-API management. As a complementary control, add container-level firewalling/network policy to block traffic to port 2019 from any source other than localhost, and tighten Appsmith data-source/API permissions for low-privileged users to shrink the SSRF surface; be aware that restricting outbound request features may break legitimate connectors your builders rely on.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Appsmith is a self-hosted, low-code platform for building internal admin panels, dashboards, and CRUD tools, typically deployed as a single Docker container via docker-compose. That container bundles the Caddy web server acting as a reverse proxy in front of the Appsmith backend. Caddy exposes an administrative REST API (default port 2019) that can fully reconfigure the running server at runtime; by design this API has no authentication and is meant to be bound to loopback only. The root cause maps to CWE-749 (Exposed Dangerous Method or Function): in the vulnerable image Caddy's admin listener is bound to 0.0.0.0:2019 rather than 127.0.0.1, making the dangerous configuration-replacement method reachable to any process inside the container - and, by extension, to any SSRF primitive that can coerce outbound requests from the Appsmith server. The affected component is identified by CPE cpe:2.3:a:appsmithorg:appsmith:*:*:*:*:*:*:*:* for all builds before 2.1.
Know when Appsmith gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Low-priv authenticated user (PR:L) drives an SSRF over the network (AV:N/AC:L); reverse-proxy takeover is a scope change (S:C) with full C/I/A compromise of fronted traffic.
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 bundled Caddy reverse-proxy's admin API - which has no authentication by default - is bound on 0.0.0.0:2019 inside the container. While this listener is not directly published to the host by docker-compose.yml, it is reachable from the Appsmith server process itself or a SSRF vulnerability. An authenticated low-privileged user can therefore drive the SSRF to issue POST /load (or any other admin-API call) against http://0.0.0.0:2019/, fully replacing the live Caddy configuration and taking over the reverse proxy. This vulnerability is fixed in 2.1.
Articles & Coverage 1
Executive ViewAI
Appsmith versions prior to 2.1 contain a critical vulnerability allowing authenticated low-privileged users to seize control of the bundled reverse proxy, potentially compromising the entire application and all downstream users. An attacker with basic user credentials can reconfigure network routing, intercept traffic, and take services offline by exploiting an unauthenticated internal API endpoint. This creates immediate insider-threat exposure across all vulnerable deployments, with no currently available patch.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Network isolation-restrict ingress to admin port 2019 from within containers, implement egress filtering to block internal SSRF attempts; (2) Access control-enforce role-based access to minimize low-privileged user accounts, audit and revoke unnecessary credentials; (3) Detection-deploy reverse-proxy configuration-change alerting, monitor for POST requests targeting 127.0.0.1:2019, implement WAF rule to block SSRF payloads targeting internal IP ranges.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
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
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
Appsmith versions prior to 1.98 allow unauthenticated remote attackers to access sensitive instance management API endpo
EUVD-2026-39118
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB