EMZETT.
Увійти

Небезпечна десеріалізація: коли дані стають кодом

Коротко: Під час десеріалізації збережені байти знову стають об’єктами; якщо вхід іде від зловмисників, деякі формати (pickle, серіалізація Java, YAML) можуть виконати довільний код.

Докладніше: Серіалізація перетворює об’єкти на байти/текст (зберігання, надсилання), десеріалізація — назад. Деякі формати можуть створювати об’єкти довільних класів і викликати методи: із недовіреними даними це ворота для віддаленого виконання коду (RCE).

Подробиці

Небезпечні формати

  • Python pickle (і shelve, joblib/torch.load з pickle): ніколи не завантажуйте з недовірених джерел.

Захист: надавайте перевагу форматам лише для даних, як-от JSON, перевіряйте джерело.

Див. також: OWASP Top 10, ONNX та експорт моделей