# CVE-2026-88859: Evolution: evolution: javascript execution via spoofed vcard control bypasses mail script-markup restriction

Status: published. Published: 2026-09-10. Updated: 2026-11-06.

A flaw was found in Evolution. A remote attacker can exploit this vulnerability by sending a specially crafted HTML email containing a spoofed vCard control. When a victim clicks on this control, Evolution's trusted JavaScript handler incorrectly assigns an attacker-controlled JavaScript URL to an iframe's source. This action leads to arbitrary JavaScript execution within the mail-viewing context, effectively bypassing the security measures designed to prevent script execution in email content.

## Remediation

- workaround: To mitigate this issue, users can disable JavaScript execution for HTML mail in Evolution. This can be done through the Evolution preferences or by using `gsettings`. Disabling JavaScript may affect the rendering and functionality of some legitimate HTML emails.

To disable JavaScript via `gsettings`, execute the following command:
`gsettings set org.gnome.evolution.mail enable-javascript false`

To revert this change, execute:
`gsettings set org.gnome.evolution.mail enable-javascript true`

Note that changes to `gsettings` take effect immediately, but Evolution may need to be restarted for the setting to be fully applied to already open mail views. (source: CNA: redhat)

## Affected products and versions

- Red Hat / Red Hat Enterprise Linux 6 (evolution): Version range not reported. Source: CNA: redhat
- Red Hat / Red Hat Enterprise Linux 7 (evolution): Version range not reported. Source: CNA: redhat
- Red Hat / Red Hat Enterprise Linux 8 (evolution): Version range not reported. Source: CNA: redhat
- Red Hat / Red Hat Enterprise Linux 9 (evolution): Version range not reported. Source: CNA: redhat

## Severity and prioritization

- CVSS 3.1: 6.3 (medium); CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L; source: CNA: redhat

- CISA KEV: No listing in collected sources

- EPSS: 0.53% as of 2026-11-05; percentile 44.86%

- SSVC: exploitation none; automatable no; technical impact partial; source ADP: CISA-ADP

- Weaknesses: CWE-84

## Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

## References

- https://access.redhat.com/security/cve/CVE-2026-88859 (CNA: redhat; vdb-entry, x_refsource_REDHAT)

- https://bugzilla.redhat.com/show_bug.cgi?id=2531401 (CNA: redhat; issue-tracking, x_refsource_REDHAT)

- https://gitlab.gnome.org/GNOME/evolution/-/work_items/3388 (CNA: redhat)

## Provenance

- CNA: redhat: https://www.cve.org/CVERecord?id=CVE-2026-88859; retrieved 2026-11-06; source updated 2026-11-06

- FIRST EPSS: https://api.first.org/data/v1/epss?cve=CVE-2026-88859; retrieved 2026-11-06; source updated Not reported

Revision: 2a21e173f2aa0e4059bcb765f1150469373f05c7d0adfe267ca70924e94e84d1

Canonical: https://y2.dev/cve/CVE-2026-88859

## Agent and API access

Public CVE pages, Markdown, and JSON are free to read without an account or API key.

- Public catalog: https://y2.dev/cve/index.json. Follow nextCursor with the same search, filters, sort, and limit (1–100). A null cursor marks the end.

- WebMCP: search_cve_disclosures, get_cve_disclosure, get_cve_page_markdown, get_y2_cve_access. Available in compatible browsers.

- Cyber API: https://api.y2.dev/api/v2/cyber/cves and https://api.y2.dev/api/v2/cyber/cves/{cveId}.

- Y2 Pro or Elite: create a workspace API key with the intel:cyber scope and send Authorization: Bearer <Y2_API_KEY>. Setup: https://y2.dev/docs/api/create-key.

- x402: Pay per request without an account or API key. Omit Authorization, read the HTTP 402 PAYMENT-REQUIRED challenge, validate its current requirements, and retry with PAYMENT-SIGNATURE through an authorized payment client. These browser tools never make payments. Guide: https://y2.dev/docs/api/x402.

- OpenAPI: https://y2.dev/api/openapi.yaml. Agent access metadata: https://y2.dev/cve/agent.json.

Collected public records only. Check source status for coverage and freshness.