High severity · published Mar 30, 2026
CVE-2026-28228
OpenOLAT: Server-Side Template Injection (SSTI) in Velocity templates allows Remote Code Execution
8.8
CVSS
0.4%
EPSS
No
On KEV
Description
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.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Attack vector
Network
Complexity
Low
Privileges
Low
User interaction
None
Confidentiality
High
Integrity
High
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.4% · higher than 36% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
OP
OpenOLAT · OpenOLAT
< 19.1.31; < 20.1.18; < 20.2.5 · source: vendor, NVD
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-28228
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-28228
Mitigation
https://github.com/OpenOLAT/OpenOLAT/security/advisories/GHSA-55qg-vvgj-ffh4
More from OpenOLAT
9.8
CVE-2026-31946
OpenOLAT: Authentication bypass via forged JWT in OIDC implicit flow
7.5
CVE-2024-28198
XML external entity (XXE) injection in OpenOLAT
