CVE-2026-28228 | OpenOLAT: Server-Side Template Injection (SSTI) in Velocity templates allows Remote Code Execution

OpenOlat is an open source web-based e-learning platform for teaching, learning, assessment and communication. Prior to versions 19.1.31, 20.1.18, and 20.2.5, an authenticated user with the Author role can inject Velocity directives into a reminder email template. When the reminder is processed (either triggered manually or via the daily cron job), the injected directives are evaluated server-side. By chaining Velocity's #set directive with Java reflection, an attacker can instantiate arbitrary Java classes such as java.lang.ProcessBuilder and execute operating system commands with the privileges of the Tomcat process (typically root in containerized deployments). This issue has been patched in versions 19.1.31, 20.1.18, and 20.2.5.

Published: 2026-03-30 Last update: 2026-04-02 Assigner: [email protected] Source: [email protected]

Conclusion & alert: CVE-2026-28228 is rated Low Risk (37.5/100): CVSS High severity, with low exploitation likelihood (EPSS 0.02%). Mandatory action: Monitor for updates and reassess as exploit intelligence or EPSS changes.

Risk is dynamic; we continuously reassess and refresh what is shown on this page as upstream context changes.

Exploit prediction scoring system (EPSS) score for CVE-2026-28228

EPSS lead: Daily EPSS estimates relative likelihood of exploitation; percentile ranks this CVE among scored vulnerabilities (higher = more severe relative rank).

# Date Old EPSS score New EPSS score Delta (New - Old)
1 2026-05-22 0.05% 0.02% -0.03%
2 2026-04-03 0.05% 0.05% +0.00%
3 2026-03-31 0.05%

Full EPSS history (3 records total)

Common vulnerability scoring system (CVSS) metrics for CVE-2026-28228

CVSS metrics for this CVE.

Base score Version Severity Vector Exploitability Impact Score source
8.8 3.1 HIGH
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H Click to expand
Attack vector (AV:N)
Could be attacked over the internet or any normal routed network—not just someone sitting at the machine.
Attack complexity (AC:L)
Once they can reach the bug, pulling it off is straightforward—no weird race conditions or rare setup.
Privileges required (PR:L)
A normal user session is enough; they don’t have to be admin.
User interaction (UI:N)
Nobody has to click “OK” or open a trap file; it can work without a victim helping.
Scope (S:U)
Damage stays in the same “trust bubble” as the broken component—no big spill into unrelated systems.
Confidentiality (C:H)
Serious risk that confidential data gets exposed in a big way.
Integrity (I:H)
They could widely tamper with or forge data—trust in the data is badly hurt.
Availability (A:H)
Could take the service down hard or make it unusable for people who depend on it.
2.8 5.9 [email protected]

Weakness enumeration for CVE-2026-28228

Affected software / configurations for CVE-2026-28228

Vendor Product Version Raw CPE
frentix openolat < 19.1.31 cpe:2.3:a:frentix:openolat:*:*:*:*:*:*:*:*
frentix openolat >= 20.0.0, < 20.1.18 cpe:2.3:a:frentix:openolat:*:*:*:*:*:*:*:*
frentix openolat >= 20.2.0, < 20.2.5 cpe:2.3:a:frentix:openolat:*:*:*:*:*:*:*:*

References for CVE-2026-28228

cvelogic Threat Intelligence