This vulnerability occurs when an Enterprise JavaBeans (EJB) component directly manipulates the Java class loader, violating the EJB specification's security and portability rules.
The EJB specification establishes clear programming boundaries to ensure beans are portable and securely managed across different container implementations. One of these critical rules explicitly forbids beans from performing low-level JVM operations, including creating or accessing class loaders, modifying security managers, or interfering with system streams. These functions are reserved exclusively for the EJB container itself to maintain a consistent and controlled runtime environment. When a bean bypasses these restrictions, it undermines the container's ability to enforce security policies and manage resources effectively. This can lead to serious security issues, such as class loading conflicts, privilege escalation, or instability, and it breaks the portability guarantee, meaning the bean may fail or behave unpredictably when deployed to a different EJB-compliant application server.
Impact: Execute Unauthorized Code or CommandsVaries by Context
java
// get XML document from the local filesystem as an input stream*
java
javajava