Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege Dradis user
-
DeliveryNavigate to AI Providers configuration in dradis-echo
-
ExploitCreate provider with internal or cloud-metadata URL
-
ExecutionReassign Roslin agent to malicious provider
-
PersistTrigger AI interaction to initiate server-side fetch
-
ImpactReceive reflected response body via ActionCable/Turbo Stream error message
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a valid authenticated user account in Dradis Community Edition - admin privileges are explicitly not required, which is the core of the vulnerability. The attack is gated on the dradis-echo AI plugin being installed and the AI Providers/Agents management interface being accessible; installations that have not deployed this plugin or have disabled AI features are not exposed. After configuring the malicious provider, the attacker must trigger an AI interaction to cause the server-side fetch - this can be done directly by the attacker or by influencing another user. The most critical limiting factor is authentication: unauthenticated exploitation is not possible. Deployments restricted to a single administrator or a small, fully-trusted user base face significantly lower practical risk. Cloud-hosted deployments face the highest risk due to accessible link-local instance metadata endpoints (169.254.169.254) reachable from the server's network, enabling credential theft beyond just SSRF. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L) accurately reflects the threat model: exploitation is straightforward, requires only a low-privilege authenticated session, and imposes no additional attack prerequisites. The VC:H rating is well-founded given that cloud-hosted deployments expose link-local metadata endpoints (e.g., AWS IMDSv1 at 169.254.169.254) that yield IAM role credentials when read, enabling lateral movement well beyond the Dradis application itself. The VI:L rating captures the ability to issue arbitrary HTTP requests to internal services, which may trigger unintended state changes even without reading responses. The provided CVSS 4.0 vector sets SC:N (no subsequent-system confidentiality impact), which conflicts with the description's explicit mention of reaching internal hosts - this discrepancy should be verified with the reporter, as an independent assessment would set SC:H to reflect that internal network services beyond the vulnerable component are reachable and their responses extractable. EPSS data was not provided in the available intelligence, preventing quantitative exploitation-probability assessment. No CISA KEV listing and no public POC have been identified, suggesting exploitation remains opportunistic rather than widespread at time of analysis. Real-world risk is highest in cloud-hosted or enterprise-VPN-connected Dradis deployments with multiple non-admin users, where the implicit trust in authenticated-but-unprivileged accounts is high and internal network segmentation at the egress layer may be absent. |
| Exploit ScenarioDerived | An attacker with a valid non-admin Dradis account navigates to the AI Providers configuration page, creates a new provider pointing to http://169.254.169.254/latest/meta-data/iam/security-credentials/ (AWS IMDSv1 endpoint), and reassigns the built-in Roslin agent to use it. When any AI-assisted operation is triggered, the Dradis server issues an HTTP GET to the metadata endpoint; if the response returns a non-2xx status or is otherwise flagged as an error, the full response body is reflected to the attacker's browser via ActionCable/Turbo Stream, disclosing IAM role names and temporary credentials. No public exploit code has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 25, 2026
Server-side request forgery in Dradis Community Edition 5.1.0-5.2.0 allows any authenticated non-admin user to hijack the AI provider configuration and redirect server-initiated HTTP requests to arbitrary URLs, including internal cloud metadata endpoints such as 169.254.169.254. A broken authorization gate in ProvidersController and AgentsController is conditioned on the Ruby constant Dradis::Pro, which is never defined in CE builds, so the admin_required filter is silently skipped for all CE installations. Non-2xx responses from attacker-supplied URLs are reflected verbatim to the attacker's browser via ActionCable/Turbo Stream, enabling exfiltration of internal service content. No public exploit code or CISA KEV listing has been identified at time of analysis.
RemediationAI
No vendor-released patch version has been independently confirmed from the available references; the open GitHub issue #1641 (https://github.com/dradis/dradis-ce/issues/1641) and VulnCheck advisory (https://www.vulncheck.com/advisories/dradis-community-edition-5.1.0-through-5.2.0-server-side-request-forgery-via-unrestricted-ai-provider-address) should be monitored for an official fix. The root cause is precisely identified: the defined?(Dradis::Pro) conditional guard in ProvidersController and AgentsController should be replaced with an unconditional admin_required before_action; organizations capable of patching their own deployment can apply this change directly from the referenced source file. As an immediate compensating control, administrators should restrict Dradis access to fully trusted users only, eliminating the non-admin attacker surface without service disruption. Deploying egress filtering at the host or network level to block requests to RFC-1918 addresses and link-local ranges (169.254.0.0/16) prevents cloud metadata enumeration, though it does not address SSRF to external or intranet URLs reachable from the server. If the AI provider and agent features (dradis-echo) are not operationally required, disabling or removing the plugin entirely eliminates the attack surface while a patch is pending.
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
Dradis Community Edition is a Ruby on Rails-based collaborative security reporting and project management platform used primarily by penetration testers. The vulnerability resides in the dradis-echo plugin engine, specifically in ProvidersController and AgentsController (source visible at dradis-ce/engines/dradis-echo/app/controllers/dradis/plugins/echo/providers_controller.rb). These controllers manage AI provider endpoint registration and agent-to-provider assignment. The authorization enforcement uses a Ruby constant existence check - defined?(Dradis::Pro) - to conditionally apply the admin_required before_action filter. Because Dradis::Pro is a constant that only exists in the commercial Pro edition, it is never defined in CE, causing the conditional to evaluate to falsy and the admin check to be entirely bypassed. CWE-918 (Server-Side Request Forgery) captures the resulting weakness: user-supplied URLs are accepted into provider configuration without server-side allowlist validation and are subsequently fetched by the application server, exposing the server's internal network context to attacker control. CPE cpe:2.3:a:dradis:dradis-ce:*:*:*:*:*:*:*:* spans the full CE product line, with versions 5.1.0 through 5.2.0 cited explicitly in the VulnCheck advisory.
Know when Dradis 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N
Network-accessible Rails app, PR:L for required authentication; S:C because SSRF reaches internal hosts beyond the vulnerable component; C:H for metadata/internal service read; I:L for potential HTTP side-effects on internal services.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
In Dradis Community Edition, the ProvidersController and AgentsController gate their admin_required before_action on defined?(Dradis::Pro), a constant that is never defined in CE, so the authorization check is never applied. As a result, any authenticated (non-admin) user can create an AI provider pointing to an arbitrary HTTP/HTTPS address (including internal/link-local hosts such as http://169.254.169.254) and reassign the built-in Roslin agent to use it. When an AI interaction is triggered, the server issues a request to the attacker-supplied URL (server-side request forgery). For non-2xx responses, the target's response body is reflected verbatim to the attacker's browser via ActionCable/Turbo Stream error messages, making the SSRF readable.
Executive ViewAI
Dradis Community Edition versions 5.1.0-5.2.0 contain a server-side request forgery vulnerability that allows any authenticated non-admin user to redirect the server's HTTP requests to arbitrary internal URLs, including cloud metadata endpoints, and exfiltrate sensitive credentials and service data. This creates a direct attack vector for any organization with multiple users accessing Dradis CE in cloud environments, potentially exposing cloud infrastructure credentials.
No vendor-released patch identified at time of analysis. Interim mitigations include: restrict network access to metadata endpoints (169.254.169.254) at the firewall level; limit non-admin user creation and audit existing accounts for necessity; disable AI provider configuration features via application settings if operationally dispensable; isolate Dradis instances on private networks; implement continuous monitoring of outbound requests for attempts to contact internal metadata endpoints.
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.
Dradis Professional Edition before 4.3.0 allows attackers to change an account password via reusing a password reset tok
Dradis before 4.8.0 allows persistent XSS by authenticated author users, related to avatars. Rated medium severity (CVSS
Cross-site scripting vulnerability in Dradis Community Edition Dradis Community Edition v3.11 and earlier and Dradis Pro
A remote code execution vulnerability in Dradis through 4.16.0 (CVSS 4.1). Remediation should follow standard vulnerabil
A security vulnerability in Dradis (CVSS 3.5). Remediation should follow standard vulnerability management procedures.
EUVD-2026-65700
GHSA-cmm3-fp9x-p8hx
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB