Троянец в vim's latex_suite?
Я просматривал код для latex_suite под названием vim_latex ( http://vim-latex.sourceforge.net/) и нашел несколько интересных строк в файле с именем "templates.vim":
" Back-Door to trojans !!!
function! <SID>Compute(what)
exe a:what
if exists('s:comTemp')
return s:comTemp.s:comTemp
else
return ''
endif
endfunction
Ну, я не эксперт по vim-коду, поэтому я не могу интерпретировать эти строки, за исключением комментария, который меня немного расстраивает. Ребята, у вас есть представление о том, что происходит?
Редактировать: Кажется, что функция вызывается только следующим:
" ProcessTemplate: processes the special characters in template file. {{{
" This implementation follows from Gergely Kontra's
" mu-template.vim
" http://vim.sourceforge.net/scripts/script.php?script_id=222
function! <SID>ProcessTemplate()
if exists('s:phsTemp') && s:phsTemp != ''
exec 'silent! %s/^'.s:comTemp.'\(\_.\{-}\)'.s:comTemp.'$/\=<SID>Compute(submatch(1))/ge'
exec 'silent! %s/'.s:exeTemp.'\(.\{-}\)'.s:exeTemp.'/\=<SID>Exec(submatch(1))/ge'
exec 'silent! g/'.s:comTemp.s:comTemp.'/d'
" A function only puts one item into the search history...
call Tex_CleanSearchHistory()
endif
endfunction
Согласно описанию файла заголовка, целью этих функций является обработка шаблонов, расположенных в определенном каталоге.
1 ответ
Я думаю, что комментарий предназначен как предупреждение. Функция <SID>ProcessTemplate()
просматривает файл шаблона, ищет определенные (настраиваемые) шаблоны и вызывает <SID>Compute(what)
где аргумент what
текст извлечен из шаблона. Обратите внимание на строку :exe a:what
,
Если вы установите файл шаблона из ненадежного источника, тогда могут произойти плохие вещи.
Конечно, если вы установите плагин vim из ненадежного источника, то могут произойти и плохие вещи. Размещение вредоносного кода в файле шаблона добавляет несколько уровней косвенности, усложняя реализацию и диагностику.
Вполне возможно, что этот код был написан до :sandbox
Команда была добавлена в vim, и это может быть простым способом сделать этот код более безопасным. Я не смотрел на то, что разрешено в песочнице, и сравнил это с предполагаемым использованием этой обработки шаблона.