Vulnerabilities: различия между версиями

Материал из fidoman.ru
(Новая страница: «= Подмена = например при работе неудачной версии rm -r можно подменить уже просканированны...»)
 
 
Строка 6: Строка 6:
  
 
Решение:
 
Решение:
# простой путь - транзактная FS. Утилита работает с неизменным слепком и выполняет все удаления в одной транзакции
+
# простой путь - транзактная FS. Утилита работает с неизменным слепком и выполняет все удаления в одной транзакции
# сложный - получение при сканировании каталога прямых хендлов. Подменить уже не получится, при удалении или перемещении существующего каталога rm всё равно будет работать с ним, а не с симлинком, созданным под тем же именем.
+
# сложный - получение при сканировании каталога прямых хендлов. Подменить уже не получится, при удалении или перемещении существующего каталога rm всё равно будет работать с ним, а не с симлинком, созданным под тем же именем.

Текущая версия от 13:53, 21 марта 2026

Подмена

например при работе неудачной версии rm -r можно подменить уже просканированный каталог на симлинк и при проходе она пойдёт удалять в симлинке. https://www.opennet.ru/opennews/art.shtml?num=65014

Причина: при энумерации каталогов утилита получает не прямые хендлы объектов (каталогов), например иноды, а их имена, и при повторном проходе она заново резольвит эти имена в объекты, открывая путь для возможной подмены.

Решение:

  1. простой путь - транзактная FS. Утилита работает с неизменным слепком и выполняет все удаления в одной транзакции
  2. сложный - получение при сканировании каталога прямых хендлов. Подменить уже не получится, при удалении или перемещении существующего каталога rm всё равно будет работать с ним, а не с симлинком, созданным под тем же именем.