Небезопасная десериализация: когда данные становятся кодом
Коротко: При десериализации сохранённые байты снова становятся объектами; если вход идёт от злоумышленников, некоторые форматы (pickle, сериализация Java, YAML) могут выполнить произвольный код.
Подробнее: Сериализация превращает объекты в байты/текст (хранение, отправка), десериализация — обратно. Некоторые форматы могут создавать объекты произвольных классов и вызывать методы: с недоверенными данными это ворота для удалённого выполнения кода (RCE).
Подробности
Опасные форматы
- Python
pickle(иshelve,joblib/torch.loadс pickle): никогда не загружайте из недоверенных источников.
Защита: предпочитайте форматы только для данных, такие как JSON, проверяйте источник.
См. также: OWASP Top 10, ONNX и экспорт моделей