ObjectSerializationDecoder в Apache MINA использует нативный протокол десериализации Java для обработки входящих сериализованных данных, но…
ObjectSerializationDecoder в Apache MINA использует нативный протокол десериализации Java для обработки входящих сериализованных данных, но не имеет необходимых проверок безопасности и защит. Эта уязвимость позволяет атакующим использовать процесс десериализации, отправляя специально подготовленные вредоносные сериализованные данные, что потенциально может привести к атакам удаленного выполнения кода (RCE). Эта проблема затрагивает основные версии MINA 2.0.X, 2.1.X и 2.2.X и будет исправлена в версиях 2.0.27, 2.1.10 и 2.2.4. Важно также отметить, что приложение, использующее библиотеку MINA core, будет затронуто, только если метод IoBuffer#getObject() вызывается, и этот конкретный метод может быть вызван при добавлении экземпляра ProtocolCodecFilter с использованием класса ObjectSerializationCodecFactory в цепочке фильтров. Если ваше приложение конкретно использует эти классы, вам необходимо обновить до последней версии библиотеки MINA core. Обновление будет недостаточно: вам также нужно явно разрешить классы, которые декодер будет принимать в экземпляре ObjectSerializationDecoder, используя один из трех новых методов: /** * Принимать имена классов, где предоставленный ClassNameMatcher соответствует * десериализации, если они не были отклонены. * * @param classNameMatcher матчеры для использования */ public void accept(ClassNameMatcher classNameMatcher) /** * Принимать имена классов, которые соответствуют предоставленному шаблону для * десериализации, если они не были отклонены. * * @param pattern стандартное регулярное выражение Java */ public void accept(Pattern pattern) /** * Принимать указанные классы wildcard для десериализации, * если они не были отклонены. * * @param patterns Шаблоны имен файлов wildcard, как определено * {@link org.apache.commons.io.FilenameUtils#wildcardMatch(String, String) FilenameUtils.wildcardMatch} */ public void accept(String... patterns) По умолчанию декодер будет отклонять *все* классы, которые будут присутствовать в входящих данных. Примечание: подпроекты FtpServer, SSHd и Vysper не затронуты этой проблемой.
Продукт десериализует ненадёжные данные без достаточной проверки того, что полученные данные окажутся допустимыми.
https://cwe.mitre.org/data/definitions/502.html →Открыть в коллекции CWE →Злоумышленник пытается эксплуатировать приложение путём внедрения дополнительного вредоносного содержимого в процессе обработки сериализованных объектов. Разработчики используют сериализацию для преобразования данных или состояния в статичный двоичный формат с целью сохранения на диск или передачи по сети. Впоследствии эти объекты десериализуются для восстановления данных/состояния. Внедряя некорректный объект в уязвимое приложение, злоумышленник потенциально может скомпрометировать его, манипулируя процессом десериализации. Это может привести к ряду нежелательных последствий, включая удалённое выполнение кода.
https://capec.mitre.org/data/definitions/586.html →Открыть в коллекции CAPEC →| Продукт | Вендор | Статус |
|---|---|---|
| Отслеживается | ||
| mina | Отслеживается | |
| mina | Отслеживается | |
| mina | Отслеживается | |
| mina | Отслеживается | |
| mina | Отслеживается | |
| mina | Отслеживается | |
| mina2 | Отслеживается | |
| mina2 | Отслеживается | |
| mina2 | Отслеживается | |
| mina2 | Отслеживается | |
| mina2 | Отслеживается | |
| mina2 | Отслеживается | |
| mina | * | Отслеживается |