- Регистрация
- 13 Июн 2025
- Сообщения
- 25
- Реакции
- 1
- Баллы
- 3
Сегодня разберём реальные уязвимости десериализации JSON, которые могут привести к RCE.Всем привет!
[warning]Материал только для образовательных целей![/warning]
Актуальные уязвимости (2024):
- Jackson-databind: CVE-2023-35116 (CVSS 8.1)
- Newtonsoft.Json: CVE-2021-26701 (CVSS 7.3)
- Python jsonpickle: Уязвимость при allow_unsafe=True
Технические детали:
Уязвимости возникают при:
- Использовании @type/$type в JSON
- Наличии gadget-классов в classpath
- Небезопасной конфигурации парсера
Пример защиты (Java):
Java:
ObjectMapper mapper = new ObjectMapper();
// Безопасные настройки:
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,
ObjectMapper.DefaultTyping.NON_FINAL);
Рекомендации:
- Обновляйте библиотеки до актуальных версий
- Отключайте полиморфную десериализацию
- Используйте DTO вместо прямого маппинга
- Включите STRICT_DUPLICATE_DETECTION
Как проверить систему?
Bash:
# Для Java:
mvn dependency:tree | grep jackson
# Для Python:
pip show jsonpickle | grep Version
Статус:
- Уязвимости исправлены в последних версиях
- Атаки возможны только при небезопасной конфигурации
- Активно мониторятся в корпоративных средах
P.S. Все CVE подтверждены и есть в базе MITRE.