> мои непроверенные пользовательские данные это медиафайлы. И там уязвимостей в нижележащих
> библиотеках столько, что RCE рано или поздно случитсяОтличный аргумент за то чтобы их в sandbox по максимуму. А то и пересобрать с asan/ubsan если просадка скорости не критична.
Грубо говоря, если RCE не может ничего, кроме счета - вред умеренный. А с должной расстановкой капканов будет легко пойман. Ну вон хук на exec - и при попытке развить успех разовьется... облом для хаксора.
> хоть eval отключай, хоть capabilities по самый корень режь.
Типа, если подхватил гусарский насморк, то нехай и спид заодно заходит? А медиафайлы могут пытаться атаковать и более высокоуровневый обработчик, впихав хитрозадый контент в всякие теги и проч. Правда, удобнее всего так башистов иметь, но пример pybitmessage показал что бывают варианты.
>>W^X
> как это остановит importlib? Модуль это не динамическая библиотека, а тот же
> скрипт, который будет выполняться уже запущенным интерпретатором.
Вообще идея такая чтобы нельзя было догружать извне исполняемые штуки. Eval - самый простой и быстрый способ прострела пяток на этом направлении. Но если вы хотели сказать что в питоне более 9000 способов прострела пяток - наверное, вы правы. Во всяком случае, в battle for wesnoth его пробовали юзать как игровой скриптинг и пришли к тому что догружаемые с сервера дополнений аддоны могут взламывать юзеру систему и это нельзя заткнуть, питон слишком дыряв для этого. И поюзали Lua. А вот этот вполне можно сделать чисто считалкой-скриптилкой без IO наружу и вот так оно урон системе пользователя нанести не может.