OpenSupports 4.11.0 — SSRF via test imap and smtp endpoints
Discovered by
Offensive Team, Fluid Attacks
Summary
Full name
OpenSupports 4.11.0 — Server-Side Request Forgery in test-imap and test-smtp endpoints
Code name
State
Public
Release date
3 oct 2025
Affected product
OpenSupports
Vendor
OpenSupports
Affected version(s)
4.11.0
Vulnerability name
Server-side Request Forgery (SSRF)
Vulnerability type
Remotely exploitable
Yes
CVSS v4.0 vector string
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
CVSS v4.0 base score
6.9
Exploit available
Yes
CVE ID(s)
Description
Two unauthenticated diagnostic endpoints allow arbitrary backend-initiated network connections to attacker‑supplied destinations:
POST /api/system/test-imap calls imap_open() with user‑controlled imap-host, imap-user, and imap-pass without any destination restrictions.
POST /api/system/test-smtp uses PHPMailer to connect to a user‑supplied smtp-host via SMTP, again without restrictions.
Both endpoints are exposed with permission => 'any', enabling unauthenticated SSRF for internal network scanning and service interaction.
Vulnerability
Relevant backend fragments:
server/controllers/system/test-imap.php
server/controllers/system/test-smtp.php and server/libs/MailSender.php
Impacts
Internal port scanning and service enumeration (loopback and RFC1918): attacker can distinguish open/closed ports via timing and error messages (e.g., IMAP/SMTP banners vs. connection failures).
Reachability of internal-only services: IMAP string supports {host: port/flags}INBOX with /novalidate-cert, allowing connections to arbitrary TCP endpoints from the server’s network context.
Potential credential exposure opportunities in misconfigured environments (e.g., targeting internal SMTP relay with permissive policies). While this PoC does not exfiltrate secrets, the SSRF primitive is general‑purpose.
Amplified reconnaissance: unauthenticated access lowers the bar for automated scanning and chaining with other issues (e.g., calling into metadata services in certain cloud environments if reachable).
PoC
IMAP SSRF — closed vs open service timing/errors.
SMTP SSRF — distinguish open/closed ports via connection outcome:
IMAP examples (real output snippets):
Closed port: { "status": "fail" ,"message" :"imap_open(): Couldn't open stream {127.0.0.1:1/novalidate-cert}INBOX" }
Open/other service: request timing and error messages differ, evidencing reachability.
SMTP examples:
Closed port: { "status": "fail" , "message": "SMTP_CONNECTION" } quickly.
Port 80: longer timing/connection failure (non‑SMTP), useful for probing.
Evidence of Exploitation
Server response with an open port.

Server response while the port is closed.

Our security policy
We have reserved the ID CVE-2025-10695 to refer to this issue from now on.
System Information
OpenSupports
Version 4.11.0
Operating System: Any
References
Github Repository: https://github.com/opensupports/opensupports
Security: https://github.com/opensupports/opensupports/security
Mitigation
There is currently no patch available for this vulnerability.
Credits
The vulnerability was discovered by Cristian Vargas from Fluid Attacks' Offensive Team.
Timeline
8 sept 2025
Vulnerability discovered
18 sept 2025
Vendor contacted
3 oct 2025
Public disclosure
Does your application use this vulnerable software?
During our free trial, our tools assess your application, identify vulnerabilities, and provide recommendations for their remediation.