LINUX.ORG.RU

Проблемы с procfs(5) в FreeBSD всех версий


0

0

The implementation of the /proc/curproc/cmdline pseudofile in the procfs(5) file system on FreeBSD 4.x and 5.x, and of the /proc/self/cmdline pseudofile in the linprocfs(5) file system on FreeBSD 5.x reads a process' argument vector from the process address space. During this operation, a pointer was dereferenced directly without the necessary validation steps being performed.

Реализация псевдофайла /proc/curproc/cmdline в файловой системе procfs(5) во FreeBSD 4.х и 5.х и псевдофайла /proc/self/cmdline в файловой системе linprocfs(5) во FreeBSD 5.x считывает вектор аргументов процесса из адресного пространства процеса. Во время этой операции происходит переопределение указателя без проведения всех необходимых проверок.

В следствие чего, злобный локальный юзер запросто может вызвать жуткие приступы паники у ядра, что явит собой отказ в обслуживании. А еще он же может получить доступ к пямяти ядра, а с этим шутки плохи - запросто можно почитать ну.. например пароль из э.. например буферов терминала...

>>> Подробности



Проверено: Demetrio ()
Ответ на: комментарий от hil

а толку то .. реализовывать надо нормально

создать таблицу доступа к символам и сам кернель должен разрюхивать кому отдавать кусок а кому нет. И конфигурится все это дело через kvm.conf & kvmrehash - собщаем кернелю что таблица изменилась .. таблицу можно навернуть добавить туда классы/группы доступа и все такое ..

запретить прямой доступ памяти - только symbol + offset, и иметь null-symbol который указывает на 0(аля прямой доступ) который по дефолту разрешен только mem группе

и все - избавились полностью от необходимости прав kmem

вобщем ты прав в том что от суидности надо избавляться, но это не значит что надо отказываться от самой технолоджи, просто сложилась такая ситуация что кто может вещи реализовать прямо, у него нет времони а тот у кого есть время не может это реализовать - вот и получается замкнутый круг

lg ★★
()
Ответ на: комментарий от lg

> запретить прямой доступ памяти - только symbol + offset

... и получился sysctl. Не плодите сущности без необходимости.

hil
()
Ответ на: комментарий от hil

по сути да, должен получиться расширенный sysctl - и sysctl умрет как obsolete сущность :)

lg ★★
()
Ответ на: комментарий от lg

Контроль за доступом к kvm уже пробовали строить. Нереально это. И самая серьезная проблема доступа kvm - race conditions между чтением из userland и изменением в ядре. В отличие от доступа через сисколлы, это неизлечимо в принципе. Поэтому и уходят от него.

А для анализа мертвого ядра - да, самое оно.

netch
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.