CVE-2026-80428
CriticalCVSS 9.8Exploitation Probability (EPSS)
Low risk42th percentile - higher than 42% of all known CVEs
Summary
ILIAS deserializes stored session data for an unauthenticated caller. The Shibboleth back-channel endpoint lacks authentication, and the session parser uses unserialize without class restrictions, allowing code execution via malicious objects.
Risk Assessment
An attacker can place a serialized object in a session without logging in, leading to code execution as the web server user, enabling full system compromise.
Recommendation
Update ILIAS to versions 9.22, 10.10, or 11.3, which remove the logout-notification implementation, or apply available security patches.
Other vulnerabilities in ILIAS
See all- CVE-2026-82877Medium
ILIAS versions before 9.22, 10.0 through 10.9, and 11.0 through 11.2 contain an arbitrary file read vulnerability in the SOAP addFile method that allows authenticated users to read server files by supplying crafted XML with COPY-mode imports. Attackers can construct absolute file paths through an unsandboxed import directory and retrieve sensitive files including configuration files containing database credentials and setup passwords.
- CVE-2026-12789Medium
A SQL injection vulnerability was found in ILIAS Learning Management System 11.0 in the ilTrQuery::executeQueries function of the class.ilTrQuery.php file within the Learning Progress Tracking component. Manipulation of the troup_table_nav argument allows remote attack. The exploit is publicly available.
- CVE-2023-36484Medium
ILIAS versions 7.21 and 8.0_beta1 through 8.2 are vulnerable to reflected Cross-Site Scripting (XSS).
- CVE-2023-36488Medium
ILIAS versions 7.21 and 8.0_beta1 through 8.2 are vulnerable to stored Cross Site Scripting (XSS).
Original NVD description (English source)
ILIAS deserialises stored session data for an unauthenticated caller. The Shibboleth back-channel endpoint at components/ILIAS/AuthShibboleth/resources/shib_logout.php runs in a context that ilInitialisation exempts from authentication, and its logout-notification handler locates the session to terminate by reading every live row of the session table and passing each row's stored data to a hand-written parser that calls unserialize without restricting which classes may be constructed. Any serialised object present in any session row is therefore instantiated on behalf of an anonymous request, and object destructors run when those objects are discarded. A serialised object can be placed into a session row without logging in, because the LTI authentication entry point stores request parameters into the session and is reachable on a path the same initialisation code exempts from authentication. A class bundled with the application writes a JSON-encoded structure to a file named by one of its own properties when it is destroyed, which places attacker-controlled content at an attacker-chosen path below the web root and results in code execution as the web server user. Versions 9.22, 10.10 and 11.3 remove the endpoint's logout-notification implementation.

