☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Roundcube logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N 🐛 CWE-918
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-48845

CVE-2026-48845 Privilege Escalation in Roundcube
📅 PUBLISHED: 2026-05-25 00:00 UTC 🔄 UPDATED: 2026-09-23 20:26 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: CONFIRMED — 3+ independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.38%
👁️
0.38% probability
9.4× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Germany License: Open Source
Patch available — upgrade to latest release
CVSS VECTOR BREAKDOWN 6.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: U Scope Unchanged
C: H Confidentiality High
I: N Integrity None
A: N Availability None
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-48845 is a medium-severity vulnerability in Roundcube Webmail affecting versions 1.6.14 through 1.6.15 and 1.7.0. The flaw allows remote image blocking to be bypassed for URLs pointing to local or private destinations, enabling an attacker to craft a malicious text/html email that, when viewed by a victim, triggers requests to internal network resources. This can lead to information disclosure of internal network services and potentially privilege escalation through Server-Side Request Forgery (SSRF) primitives. Enterprise environments running self-hosted Roundcube instances are at risk, particularly those with internal services that do not require authentication.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The vulnerability resides in Roundcube's HTML email sanitization and remote content blocking mechanism. Roundcube implements a remote image blocking feature designed to prevent email clients from automatically fetching remote resources (e.g., tracking pixels, external images) embedded in HTML emails, which would otherwise leak the recipient's IP address and confirm active email addresses to threat actors.

The flaw occurs because the URL validation logic fails to properly distinguish between external destinations and internal/private network destinations. Specifically, when Roundcube parses <img> tags and checks the src attribute against its blocklist, the validation regex or IP-routing-check logic improperly handles URLs that resolve to:

  1. RFC 1918 private ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
  2. Loopback addresses (127.0.0.0/8, ::1)
  3. Link-local addresses (169.254.0.0/16, fe80::/10)
  4. Non-routable and reserved ranges (0.0.0.0/8, 100.64.0.0/10, 192.0.0.0/24, 198.18.0.0/15, 224.0.0.0/4)

The code path responsible for this check likely follows this pattern: the src URL is parsed, and a function such as is_absolute_url() or a DNS-based validation is performed. However, the check is incomplete — it verifies whether the URL is absolute (starts with http:// or https://) but does not perform the subsequent step of resolving the hostname and verifying the IP is not in a private range. Alternatively, the check may only filter based on string matching against known external domains, rather than performing a full routing-table-aware IP check.

The attack surface is the email rendering pipeline. When a victim views an HTML email, Roundcube's PHP backend processes the message body, strips scripts and dangerous tags, and then re-renders safe HTML. The remote image blocking feature is applied in this pipeline. Because the block fails for private-destination URLs, the <img src="http://10.0.0.5/internal-admin"> tag survives sanitization and is rendered by the victim's browser.

Post-render behavior: The victim's browser automatically issues a GET request to the internal URL. From the attacker's perspective, this creates an SSRF vector with a few notable characteristics:

  • Blind request forgery: The attacker does not directly see the response body. However, timing-based side channels, error-based differences, or subsequent requests that depend on the first request's side effects can be used to infer information.
  • DNS rebinding potential: If the attacker controls a domain that alternates between external and internal IPs across DNS queries, they could bypass checks that resolve the hostname at parse time but reconnect to an internal IP at fetch time.
  • Privilege escalation: If internal services trust requests originating from the Roundcube server (e.g., internal APIs without authentication, admin panels bound to localhost, or cloud metadata endpoints like http://169.254.169.254/), an attacker could read sensitive data or perform state-changing operations.

The NVD description explicitly states this "may lead to information disclosure or privilege escalation." The privilege escalation vector is plausible in cloud environments where the Roundcube server has access to the cloud metadata service (e.g., AWS IMDS at http://169.254.169.254/latest/meta-data/), which can return IAM credentials.


Exploitation Scenarios

The following attack chain describes how a remote unauthenticated attacker exploits CVE-2026-48845:

Phase 1: Reconnaissance and Target Identification

  1. Attacker identifies target Roundcube instances using Shodan with dorks such as http.title:"Roundcube Webmail" or by scanning for the default Roundcube login page fingerprint (/rc/, /mail/, /webmail/ paths).
  2. Attacker confirms the version by examining login page HTML comments, X-Powered-By headers, or the /index.php response headers. Versions 1.6.14, 1.6.15, or 1.7.0 are vulnerable.
  3. Attacker discovers internal network topology through OSINT, previous breaches, or by using the vulnerability itself in a blind probing fashion.

Phase 2: Crafting the Malicious Email

  1. Attacker crafts an HTML email with an <img> tag pointing to an internal destination. Example payload:
<img src="http://192.168.1.10:8080/admin?action=create_backdoor_user&u=attacker&p=pwned" width="1" height="1">
  1. Attacker encodes the URL to bypass naive string filters. For instance, using decimal or hexadecimal IP representations:

    • http://0xA9FEA9FE/ (hex encoding of 169.254.169.254)
    • http://2130706433/ (decimal for 127.0.0.1)
    • http://[::ffff:10.0.0.1]/ (IPv4-mapped IPv6)
  2. Attacker sends the email to the victim's Roundcube mailbox. Since the attacker is external, this is sent via standard SMTP.

Phase 3: Trigger and Execution

  1. Victim logs into Roundcube and opens the malicious email. The HTML sanitizer strips scripts but retains the <img> tag because the destination check fails.
  2. Victim's browser renders the email, automatically issuing a GET request to the internal URL. The request originates from the victim's browser but routes through the victim's network — reaching internal services that are not exposed externally.
  3. If the Roundcube server itself is used as a proxy (e.g., via a CSS url() or background-image in certain rendering paths), the request originates from the server's IP, providing access to services bound only to localhost or to cloud metadata endpoints.

Phase 4: Post-Exploitation

  1. Information disclosure: The attacker gauges success via timing differences (internal IPs that respond quickly vs. timeouts on non-existent IPs) or by triggering HTTP requests to attacker-controlled endpoints with the internal data appended as a query parameter (though direct response reading is blind).
  2. Credential theft via cloud metadata: For cloud-hosted Roundcube, the attacker targets http://169.254.169.254/latest/meta-data/iam/security-credentials/ and uses JavaScript (if reflection is possible) or subsequent requests to extract the ephemeral IAM credentials.
  3. Privilege escalation: If internal admin panels or APIs are unauthenticated and accept GET requests to perform administrative actions (e.g., creating users, changing configuration), the attacker can fully compromise the Roundcube instance and potentially pivot to the surrounding infrastructure.
  4. Lateral movement: With access to internal HTTP services, the attacker maps internal services and uses any exposed functionality to move laterally within the network.

Impact Assessment

CVSS Score: 6.5 (Medium) — Vector AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N indicates:

  • Attack Vector: Network (AV:N) — Exploitable from anywhere with email delivery capability.
  • Attack Complexity: Low (AC:L) — No special conditions needed; crafted email is sufficient.
  • Privileges Required: None (PR:N) — Only email sending capability needed (which is free on the internet).
  • User Interaction: Required (UI:R) — Victim must open/view the email in Roundcube.
  • Scope: Unchanged (S:U) — Impact remains within the organization; attacker does not jump trust boundaries.
  • Confidentiality Impact: High (C:H) — Internal service responses, metadata credentials, and network topology can be exposed.
  • Integrity Impact: None (I:N) — The vulnerability itself does not modify data; however, chained requests could cause state changes on internal services.
  • Availability Impact: None (A:N) — No direct DoS vector.

Business Impact:

  • Data Exfiltration Risk: Internal network services, application source code repositories, configuration management interfaces, and cloud metadata are all potentially reachable.
  • Compliance Impact: If the Roundcube server can reach regulated data stores (e.g., payment databases, PHI systems), the SSRF could expose sensitive data, triggering breach notification obligations.
  • Operational Disruption: Post-exploitation actions on internal admin services (e.g., deleting user accounts, changing firewall rules) could cause availability issues.
  • Blast Radius: Any internal HTTP reachable service from the victim's client or the Roundcube server. This includes development environments, internal wikis, CI/CD systems, monitoring dashboards, and database admin panels. In cloud environments, the blast radius extends to the entire IAM role's permission set.

EPSS Score: 0.00377 (30.5th percentile) — Low likelihood of exploitation in the wild within the next 30 days, but the score can change as exploit knowledge spreads. Not in CISA KEV as of reporting date.


Detection Guidance

Prescriptive detection rules follow. These are tuned for the specific behaviors of this SSRF-based email attack.

Sigma Rule

title: Roundcube CVE-2026-48845 Remote Image Block Bypass - Internal URL in Email
id: 7c3f4e2a-9d15-4b68-8a1c-3e5f2d9a4c01
status: experimental
description: Detects emails processed by Roundcube containing img tags pointing to private or loopback IP addresses, indicating attempt to exploit CVE-2026-48845.
author: ValtersIT Threat Intel Team
date: 2026/06/15
logsource:
    product: roundcube
    service: email_processing
detection:
    selection_private_ip:
        - Message.Body|contains|all:
            - '<img'
            - 'src="http://10.'
            - 'src="http://192.168.'
            - 'src="http://172.16.'
            - 'src="http://127.'
            - 'src="http://169.254.'
    selection_encoded_ip:
        - Message.Body|contains|all:
            - '<img'
            - 'src="http://0x'
            - 'src="http://0'
            - 'src="http://[::ffff:'
    selection_mixed_case:
        - Message.Body|contains|all:
            - '<IMG'
            - 'SRC='
            - 'http://'
    condition: selection_private_ip or selection_encoded_ip or selection_mixed_case
    timeframe: 10m
level: high
falsepositives:
    - Legitimate emails referencing intranet resources (rare in external mail)
    - Security tools that include internal URLs in test emails
fields:
    - SourceIp
    - DestinationEmail
    - MessageId

YARA Rule

rule Roundcube_SSRF_Image_Block_Bypass
{
    meta:
        author = "ValtersIT Threat Intel Team"
        description = "Detects HTML emails crafted to exploit CVE-2026-48845 Roundcube remote image block bypass"
        date = "2026-06-15"
        cve = "CVE-2026-48845"
        severity = "medium"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-48845"
    strings:
        $img_html = /<img[^>]+src\s*=\s*["']http:\/\// nocase
        $private = /http:\/\/(10|127|192\.168|172\.(1[6-9]|2[0-9]|3[01]))\./ nocase
        $encoded_decimal = /http:\/\/[0-9]{9,10}\// nocase
        $encoded_hex = /http:\/\/0[xX][0-9a-fA-F]{7,8}\// nocase
        $ipv6_loopback = /http:\/\/\[::1\]/ nocase
        $meta_endpoint = /http:\/\/169\.254\.169\.254\// nocase
        $img_tag = "<img" nocase
    condition:
        $img_tag and 1 of ($private, $encoded_decimal, $encoded_hex, $ipv6_loopback, $meta_endpoint) and $img_html
}

Suricata IDS Rule

alert http any any -> any any (msg:"ET EXPLOIT Roundcube CVE-2026-48845 SSRF Attempt - Private IP in IMG SRC"; flow:established,to_client; content:"<img"; http_client_body; nocase; content:"src="; http_client_body; nocase; distance:0; pcre:"/src=["']http:\/\/(10\.|127\.|192\.168\.|172\.(1[6-9]|2[0-9]|3[01])\.|169\.254\.)/Ui"; sid:202604488; rev:1; metadata:created_at 2026_06_15, cve CVE-2026-48845;)

alert dns any any -> any any (msg:"ET EXPLOIT Roundcube SSRF DNS Rebind Probe - Internal IP A Record"; dns_query; content:"|01|"; nocase; dns_type:A; dns_query; pcre:"/^(A|AAAA)$/"; threshold:type both, track by_src, count 3, seconds 60; sid:202604489; rev:1; metadata:cve CVE-2026-48845;)

alert http any any -> any any (msg:"ET POLICY Suspicious Outbound to RFC1918 Range from Webmail Server"; flow:to_server; dst_ip:"10.0.0.0/8"; sid:202604490; rev:1; metadata:cve CVE-2026-48845;)

Elastic Detection

// Detection for Roundcube server making outbound requests to internal IPs
sequence by source.ip
  [network where
    network.direction == "egress" and
    source.port == 443 and
    destination.ip in ("10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "127.0.0.0/8") and
    event.action == "connection_attempted"]
  [http where
    http.request.method == "GET" and
    url.path != "/_health" and
    process.executable : "*roundcube*"]
  with maxspan=10s

Splunk SPL Query

index=proxy OR index=web_server
  earliest=-30d
| search sourcetype="access_combined_wcookie"
  (dest_ip="10.*" OR dest_ip="172.1[6-9].*" OR dest_ip="172.2[0-9].*" OR dest_ip="172.3[0-1].*" OR dest_ip="192.168.*" OR dest_ip="127.*" OR dest_ip="169.254.*")
  src_ip=<ROUNDCUBE_SERVER_IP>
  uri_path=*
| stats count by src_ip, dest_ip, uri, status, _time
| where count > 5
| table _time, src_ip, dest_ip, uri, status, count
| sort - _time

Wazuh OSSEC Rule

<rule id="100488" level="12">
    <decoded>json</decoded>
    <field name="log_type">roundcube_email</field>
    <match>img src=&quot;http://</match>
    <regex>(10\.|127\.|192\.168\.|172\.(1[6-9]|2[0-9]|3[01])\.|169\.254\.)</regex>
    <description>Roundcube CVE-2026-48845: Email contains img tag to private/internal IP address</description>
    <group>roundcube, ssrf, cve-2026-48845,</group>
    <mitre>
        <id>T1190</id>
    </mitre>
    <options>no_full_log</options>
    <alert>always</alert>
</rule>

<rule id="100489" level="10">
    <decoded>json</decoded>
    <field name="log_type">roundcube_email</field>
    <match>src=&quot;http://169.254.169.254/</match>
    <description>Roundcube CVE-2026-48845: Cloud metadata endpoint referenced in email</description>
    <group>roundcube, ssrf, cloud_metadata, cve-2026-48845,</group>
    <mitre>
        <id>T1190</id>
        <id>T1005</id>
    </mitre>
    <options>no_full_log</options>
    <if_sid>100488</if_sid>
</rule>

Mitigation & Patch Guidance

Patch Confidence: 3/4 (LIKELY) — Two independent sources (OSV and Debian) confirm a fix exists.

Immediate Mitigations (Until Patching)

  1. Disable HTML email rendering in Roundcube configuration. In config/config.inc.php, set:

    $config['show_images'] = 0;
    

    This forces all emails to render in plain text or to require explicit user action to load remote content.

  2. Implement outbound network filtering on the Roundcube server and client workstations:

    • Block outbound HTTP/HTTPS connections from the Roundcube server to RFC 1918 ranges, loopback, and link-local addresses at the host firewall or network egress.
    • Use iptables/nftables on Linux:
      iptables -A OUTPUT -d 10.0.0.0/8 -j DROP
      iptables -A OUTPUT -d 172.16.0.0/12 -j DROP
      iptables -A OUTPUT -d 192.168.0.0/16 -j DROP
      iptables -A OUTPUT -d 127.0.0.0/8 -j DROP
      iptables -A OUTPUT -d 169.254.0.0/16 -j DROP
      
  3. Restrict cloud metadata access: On cloud instances, use IMDSv2 with a hop limit of 1 to prevent SSRF from accessing the metadata service. Add a network ACL or security group rule blocking traffic to 169.254.169.254 from application subnets.

  4. Deploy an email gateway filter that detects and strips <img> tags with private IP URLs from inbound email before they reach Roundcube.

Patch and Upgrade

  1. Upgrade Roundcube to the patched version:

    • For 1.6.x branch: upgrade to 1.6.16 or later.
    • For 1.7.x branch: upgrade to 1.7.1 or later.
    • Download from the official Roundcube release page: https://roundcube.net/download/
  2. Apply the Debian/OSV patch if package-managed:

    • Debian/Ubuntu: apt-get update && apt-get upgrade roundcube-core
    • Verify the patched version: dpkg -l | grep roundcube
  3. Test the patch: After upgrade, send a test email containing <img src="http://192.168.1.1/x.png"> and verify that the image is blocked (i.e., the email displays a placeholder instead of fetching the image).

Long-Term Hardening

  1. Network segmentation: Isolate the Roundcube server in a DMZ with no routed access to internal networks except via an explicit proxy whitelist.
  2. Outbound proxy: Route all outbound HTTP/HTTPS from the Roundcube server through a forced proxy that validates URLs and blocks private IP destinations.
  3. Harden cloud IAM roles: Ensure the IAM role attached to the Roundcube EC2 instance has the least-privilege principle — no broad permissions, and segregate credentials per environment.
  4. Monitor for SSRF patterns: Deploy the detection rules above and tune them to the environment. Review egress logs to ensure no unexpected traffic to internal destinations.
  5. Vulnerability management baseline: Add Roundcube to the patch cycle with a 7-day SLA for medium-severity CVEs.
  6. Enterprise-wide HTML email policy: If HTML email is not strictly required, disable it at the mail policy level for all incoming external emails.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-48845 — Official CVE record with CVSS scoring and description.

  2. Debian Security Tracker: https://security-tracker.debian.org/tracker/CVE-2026-48845 — DSA notification and package status for Debian-based distributions.

  3. OSV Database: https://osv.dev/vulnerability/CVE-2026-48845 — Machine-readable vulnerability details and affected package ranges.

  4. CISA Known Exploited Vulnerabilities Catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog — Not listed as of this report's date; however, monitor this page for change.

Threat Actor Campaign Notes: As of this report, no specific threat actor has been publicly attributed to exploiting CVE-2026-48845. EPSS percentile is 30.5%, indicating low real-world exploit visibility. The vulnerability is similar to prior Roundcube SSRF vectors (e.g., CVE-2024-37383 family), and the same threat actors interested in webmail credential harvesting and phishing infrastructure may target this flaw in the future. No in-the-wild exploitation evidence is currently confirmed.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"Roundcube Webmail"
http.favicon.hash:662250542 port:80,443
http.component:"Roundcube"
product:"Roundcube Webmail" port:443
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-48845/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.