---
id: "CVE-2026-114728"
kind: "vulnerability"
aliases: ["CVE-2026-114728"]
title: "Roundcube Webmail: CSS escapes bypass remote content blocking in HTML mail"
severity: "medium"
cvss: 5.3
epss: 0.00379
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["package", "php", "roundcube", "self-hosted", "webmail"]
not_affected_if: ["patched-version", "plain-text-only"]
published_at: "2026-10-22T02:17:00+00:00"
first_seen_at: "2026-10-23T21:57:30+00:00"
updated_at: "2026-10-25T04:20:43+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-114728", "first_seen_at": "2026-10-23T21:57:30+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-114728", "first_seen_at": "2026-10-24T07:15:52+00:00"}]
---

# Roundcube Webmail: CSS escapes bypass remote content blocking in HTML mail

Roundcube's HTML sanitizer missed CSS-escaped spellings of url(), so remote images and resources in HTML messages loaded without the user's consent. An attacker can use this to learn when a message is opened and to track the reader.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed Roundcube version in the `program/include/iniset.php` file or the about page (`RCMAIL_VERSION`).
- Confirm whether the remote content blocking setting is enabled for users.

## Fix

- Upgrade Roundcube Webmail to `1.6.20` on the 1.6 branch or `1.7.5` on the 1.7 branch.
- Apply the upstream commit “Fix remote content blocking bypass via CSS escapes in FuncIRI attributes (again)” if you cannot upgrade yet.

## Timeline

- 2026-10-23T21:57:30+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-114728
- 2026-10-24T07:15:52+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-114728

## From the sources

Roundcube Webmail before 1.6.20 and 1.7.x before 1.7.5 is affected by a remote content blocking bypass in the handling of FuncIRI attributes. rcube_washtml detected the CSS url() token with a pattern that enumerated only some of its escaped spellings, so values using other CSS escape sequences, for example \000075rl( or u\72 l(, were not recognized and remote content was loaded from an HTML message without the user's consent. Upstream fixed this in the commit “Fix remote content blocking bypass via CSS escapes in FuncIRI attributes (again)”, which resolves CSS escapes before matching and also inspects the `to`, `from` and `by` attributes.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
