Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Primary rating from GitHub Advisory · only source for this CVE.
CVSS VectorGitHub Advisory
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Lifecycle Timeline
6DescriptionGitHub Advisory
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.
AnalysisAI
Server-side template injection in OpenOlat e-learning platform versions prior to 19.1.31, 20.1.18, and 20.2.5 enables authenticated users with Author role to execute arbitrary operating system commands via crafted Velocity directives in reminder email templates. Exploitation requires low-privilege authentication (PR:L) but is network-accessible (AV:N) with low complexity (AC:L), achieving full system compromise (C:H/I:H/A:H). The vulnerability leverages Java reflection through Velocity templates to instantiate ProcessBuilder and execute commands with Tomcat process privileges, often root in containerized environments. EPSS data not provided; no CISA KEV status confirmed; publicly available exploit code exists per GitHub security advisory disclosure.
Technical ContextAI
This vulnerability exploits Apache Velocity template engine's server-side template injection (SSTI) weakness, classified as CWE-1336 (Improper Neutralization of Special Elements Used in a Template Engine). OpenOlat's reminder email functionality allows authenticated Authors to define email templates processed by the Velocity engine during scheduled cron jobs or manual trigger events. Velocity's #set directive combined with Java reflection capabilities enables attackers to break template sandbox constraints and access the underlying Java runtime. By chaining reflection calls, attackers instantiate java.lang.ProcessBuilder to spawn arbitrary system processes. The affected CPE (cpe:2.3:a:openolat:openolat:*:*:*:*:*:*:*:*) encompasses all OpenOlat versions before the patched releases across three major version branches (19.1.x, 20.1.x, 20.2.x). The vulnerability specifically targets Java-based deployments running on Apache Tomcat application servers, where the execution context typically inherits the container's privilege level.
RemediationAI
Organizations must immediately upgrade to patched OpenOlat versions: 19.1.31 for the 19.1.x branch, 20.1.18 for the 20.1.x branch, or 20.2.5 for the 20.2.x branch. Vendor-released patches are available through the official GitHub repository and address the template injection vulnerability by implementing proper input sanitization and Velocity engine sandbox restrictions. Until patching is feasible, interim mitigations include restricting the Author role to only highly trusted users, implementing strict role-based access controls to minimize accounts with template editing privileges, disabling or closely monitoring reminder email functionality, and deploying web application firewalls configured to detect Velocity directive patterns in HTTP requests. For containerized deployments, reduce blast radius by running Tomcat processes with non-root user privileges and implementing container security policies that restrict process spawning capabilities. Complete remediation guidance and patch download links are available in the GitHub security advisory at https://github.com/OpenOLAT/OpenOLAT/security/advisories/GHSA-55qg-vvgj-ffh4. Organizations should audit existing reminder templates for malicious content and review access logs for suspicious Author account activity during the vulnerability window.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
Same technique Code Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-17201