CVE-2026-79788: Dradis Community Edition 5.1.0 through 5.2.0 Server-Side Request Forgery via Unrestricted AI Provider Address
In Dradis Community Edition, the ProvidersController and AgentsController gate their adminrequired beforeaction 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.
Affected Software
Event History
Frequently Asked Questions
Which users can exploit this issue?
Any authenticated non-admin user can exploit it. The affected controller authorization is not applied in Community Edition because it is gated on an undefined Dradis::Pro constant.
What access does an attacker need to use the SSRF capability?
The attacker needs a valid authenticated account but does not need administrator privileges or user interaction. They can create an AI provider with an arbitrary HTTP or HTTPS endpoint and assign the built-in Roslin agent to it.
Can the SSRF be used to read responses from internal services?
Yes. When the attacker-triggered AI interaction receives a non-2xx response, the target response body is reflected to the attacker's browser through ActionCable/Turbo Stream error messages. This can make requests to internal or link-local addresses, including 169.254.169.254, readable.
Which releases are identified as affected?
Dradis Community Edition versions 5.1.0 through 5.2.0 are identified as affected.