[ CVE-2026-113730 · Published 20 Oct 2026 ]
OGNL stricter-invocation block list bypass via java.lang.reflect reflection proxies
[ Description ]Official description
OGNL is an Object Graph Navigation Library for Java. Prior to 3.4.13, the optional stricter-invocation mode in OgnlRuntime.invokeMethod checks the declaring class of the method that OGNL invokes but does not block java.lang.reflect.Method, java.lang.reflect.Constructor, or java.lang.reflect.Field. An attacker-controlled expression can invoke one of these reflection objects as a proxy for a method on a blocked class, causing the real operation to execute inside JDK reflection without passing through the stricter-invocation check again. Exploitation requires an application to evaluate untrusted OGNL expressions, use the default or an equivalently permissive MemberAccess that permits reflection, and rely on stricter invocation as a sandbox. Applications using a restrictive MemberAccess, including Apache Struts with SecurityMemberAccess, are not affected by this bypass. This issue is fixed in 3.4.13.
[ Fixes ]Fixes and patches
- ognl:ognl 3.4.13Fixed version · GitHub Advisories · maven package ognl:ognl: upgrade to 3.4.13 or later (affected <= 3.4.12)
[ Packages ]Affected open-source packages
- ognl:ognl mavenAffected <= 3.4.12 · fixed in 3.4.13 · GHSA-crwc-vw2r-qr6m