Конфигурация десериализации EAP Artemis разрешает десериализацию по умолчанию. ObjectMessage.getObject() использует ObjectInputStreamWithClassLoader, который реализует фильтрацию разрешенных и заблокированных списков с помощью метода checkSecurity()/isTrustedType(). Однако по умолчанию как список разрешенных, так и черный список пусты. Когда список разрешений пуст (размер == 0), isTrustedType() возвращает true для ВСЕХ классов.
Это означает, что все классы по умолчанию десериализуемы.
Показать оригинальное описание (EN)
EAP's Artemis deserialization configuration permits deserialization by default. ObjectMessage.getObject() uses ObjectInputStreamWithClassLoader, which implements allow-list/block-list filtering via its checkSecurity()/isTrustedType() method. However, by default both allow-list and block-list are empty. When the allow-list is empty (size == 0), isTrustedType() returns true for ALL classes. This means all classes are deserializable by default.
Характеристики атаки
Последствия
Строка CVSS v3.1