Secure Locate обеспечивает безопасный способ индексировать и быстро искать файлы в системе. Используется возрастающее кодирование, точно так же как и GNU,не только чтобы сжать базу данных, но и чтобы сделать поиск быстрее, плюс хранение разрешений на доступ к файлам: пользователи не видят файлы, к которым они не имеют доступа. Уязвимость в программе позволяет получить root привилегии (на RedHat системах, sguid slocate).
Когда SLOCATE расшифровывает "неправильную" базу данных, указанную местным пользователем (благодари -d опцию командной строки :), slocate умирает с segmentation violation.
Пример:
$ cp /usr/bin/slocate /tmp/slocate
$ perl -e 'print "A" x 1337' > /tmp/foo
$ gdb -q /tmp/slocate
(gdb) run -d /tmp/foo bar
Starting program: /tmp/slocate -d /tmp/foo bar
Program received signal SIGSEGV, Segmentation fault. 0x17afd2 in realloc () from /lib/libc.so.6 (gdb)
Решение:
Апгрейд до Secure Locate v2.3