Description
Open edX Platform enables the authoring and delivery of online learning at any scale. From Redwood until Ulmo and Verawood.1, the add_additional_attributes_to_notifications function in openedx/core/djangoapps/notifications/email/utils.py assigns notification content without sanitizing discussion-title values produced by get_notification_content in openedx/core/djangoapps/notifications/base_notification.py. An enrolled student can place CSS-capable markup in the post_title value supplied by lms/djangoapps/discussion/rest_api/discussions_notifications.py. Digest and batched-email rendering then passes that value through openedx/core/djangoapps/notifications/templates/notifications/digest_content.html as safe HTML, allowing email-open tracking and content spoofing or phishing when another learner opens a CSS-rendering client. The immediate-email path is not affected because it strips title markup and renders a separately sanitized body. This issue is fixed in Ulmo and Verawood.1.
References6
- github.com/openedx/openedx-platform/commit/2af03d21b4142e53e375…
- github.com/openedx/openedx-platform/commit/52f2b3bb3e6fac2601c2…
- github.com/openedx/openedx-platform/commit/5eae6e51a8797cd3b87c…
- github.com/openedx/openedx-platform/releases/tag/release/ulmo.4
- github.com/openedx/openedx-platform/releases/tag/release/verawo…
- github.com/openedx/openedx-platform/security/advisories/GHSA-rv…
Metrics
- CVSS 3.1
-
6.1
MEDIUM
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - EPSS — exploit probability
- 0% percentile: 29 · as of 8 November 2026
- CWE
- CWE-79
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.