Разделяли память исполняемого кода от памяти данных, разделяли, чтобы негодяи в данных не могли код передать, но против любителей рефлексии не попрешь.
Долго и нудно тут:
https://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-application-have-in-common-this-vulnerability/
Если кратко, то в Apache Commons Collections есть уязвимость, позволяющая при десериализации объекта выполнить любой код, переданный в этом самом объекте. Проблема существует во всех версиях библиотеки, начиная с 3.0. Пофиксили только в 4.1.
Усугбляется это тем, что популярные сервера приложений готовы принять любой сериализованный объект и десериализовать его, прежде чем примут решение, нужен он вообще или не очень.
Для понимания масштаба проблемы: наверное проще перечислить те ява-проекты, где Apache Commons Collections не используются, чем где используются. И, как уже писал выше, все популярные сервера приложений готовы десериализовывать все, что угодно.
Интересно, Tomcat и Spring Boot тоже уязвимы?