Релиз LeoCAD 21.06
LeoCAD — 3D-САПР для конструирования виртуальных моделей LEGO с использованием блоков из LDraw’s Parts Library. Программа написана на C++ с Qt5 и Qt4.
( читать дальше... )
>>> Подробности
Всего сообщений: 3
LeoCAD — 3D-САПР для конструирования виртуальных моделей LEGO с использованием блоков из LDraw’s Parts Library. Программа написана на C++ с Qt5 и Qt4.
( читать дальше... )
>>> Подробности
Узнав о уязвимости ldd, опубликованной несколько дней назад тут (новость на ЛОРе, в толксах), линуксоид rg3 написал небольшой скрипт lddsafe, выводящий ту же информацию, что и ldd. Скрипт использует objdump и безопасен, так как не запускает на исполнение проверяемую программу.
Два важных предостережения:
В будущем планируется переписать скрипт на Perl, чтобы он не зависел от версии bash 4.0.
Пример выполнения скрипта:
$ lddsafe /usr/bin/xcalc
libXaw.so.7 => /usr/lib/libXaw.so.7
libXmu.so.6 => /usr/lib/libXmu.so.6
libXt.so.6 => /usr/lib/libXt.so.6
libSM.so.6 => /usr/lib/libSM.so.6
libICE.so.6 => /usr/lib/libICE.so.6
libc.so.6 => /lib/libc.so.6
ld-linux.so.2 => /lib/ld-linux.so.2
libuuid.so.1 => /lib/libuuid.so.1
libX11.so.6 => /usr/lib/libX11.so.6
libxcb.so.1 => /usr/lib/libxcb.so.1
libXau.so.6 => /usr/lib/libXau.so.6
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6
libdl.so.2 => /lib/libdl.so.2
libXext.so.6 => /usr/lib/libXext.so.6
libXpm.so.4 => /usr/lib/libXpm.so.4
libm.so.6 => /lib/libm.so.6
>>> Подробности
Вчера Peteris Krumins в своем блоге продемонстрировал наличие в утилите ldd уязвимости, позволяющей выполнить произвольный код при просмотре списка подгружаемых библиотек для специально подготовленной программы.
Принцип работы ldd состоит в следующем: она устанавливает переменную окружения LD_TRACE_LOADED_OBJECTS, а затем запускает программу на исполнение. Входящий в libc загрузчик динамических библиотек (для GNU glibc это ld-linux.so) проверяет наличие этой переменной. Если она установлена, то вместо нормального запуска программы он выводит список используемых ею динамически подгружаемых библиотек и завершает работу.
Однако, в том случае, если программа собрана с использованием специальным образом модифицированной версии libc, появляется возможность обойти эту проверку. Таким образом, выполнение ldd для программы приводит к исполнению этой программы с правами пользователя, от которого запущена ldd.
Также в статье приводится пример использования этой возможности совместно с методами социальной инженерии: пользователь хостинга или злоумышленник от его имени создает специальный исполняемый файл, звонит администратору и жалуется, что программа не работает. Администратор (допустим, он работает с привилегиями root) первым делом запускает ldd и сообщает пользователю, что не хватает такой-то библиотеки (программа злоумышленника имитирует нормальный вывод ldd), пользователь говорит «спасибо», и администратор даже не подозревает, что только что запустил со своими правами код злоумышленника.
>>> Подробности