В ветках FreeBSD 7.x и 8.x обнаружена уязвимость, позволяющая локальному пользователю повысить свои привилегии в системе или вызвать повреждение содержимого любого файла, сообщает opennet.ru. Ветка FreeBSD 6.x проблеме не подвержена. Патч с исправлением проблемы доступен для всех поддерживаемых версий FreeBSD. Источником проблемы является ошибка в реализации технологии mbufs, используемой для организации промежуточного хранения данных в сетевой подсистеме и при межпроцессном взаимодействии. Mbuf определяет базовый буфер памяти, в котором небольшой блок данных может сохраняться напрямую или в виде ссылки на внешний буфер. Системный вызов sendfile для организации прямой передачи данных использует маппинг файла в цепочку mbuf-блоков, предусматривая возможность установки специального флага для обеспечения доступа к режиме только для чтения. Ошибка связана с тем, что флаг read-only не наследуется при дублировании ссылки на mbuf-буфер. При вызове sendfile для передачи данных через loopback-интерфейс, страницы памяти, сопоставленные со считываемым файлом, могут быть модифицированы. Используя данную особенность непривилегированный злоумышленник может добиться повреждения содержимого любого файла в системе, к которому имеется доступ на чтение. С практической точки зрения, повреждение определенных системных файлов может быть произведено таким образом, что атакующий сможет получить повышенные привилегии.
Бюллетень безопасности