В ветках FreeBSD 7.x и 8.x обнаружена уязвимость, позволяющая локальному пользователю повысить свои привилегии в системе или вызвать повреждение содержимого любого файла. Ветка FreeBSD 6.x проблеме не подвержена. Патч с исправлением проблемы доступен для всех поддерживаемых версий FreeBSD.

Источником проблемы является ошибка в реализации технологии mbufs, используемой для организации промежуточного хранения данных в сетевой подсистеме и при межпроцессном взаимодействии. Mbuf определяет базовый буфер памяти, в котором небольшой блок данных может сохраняться напрямую или в виде ссылки на внешний буфер. Системный вызов sendfile для организации прямой передачи данных использует маппинг файла в цепочку mbuf-блоков, предусматривая возможность установки специального флага для обеспечения доступа к режиме только для чтения.

Ошибка связана с тем, что флаг read-only не наследуется при дублировании ссылки на mbuf-буфер. При вызове sendfile для передачи данных через loopback-интерфейс, страницы памяти, сопоставленные со считываемым файлом, могут быть модифицированы. Используя данную особенность непривилегированный злоумышленник может добиться повреждения содержимого любого файла в системе, к которому имеется доступ на чтение. С практической точки зрения, повреждение определенных системных файлов может быть произведено таким образом, что атакующий сможет получить повышенные привилегии.

Источник: http://www.opennet.ru/opennews/art.shtml?num=27287