Defensive-аудит Linux OCFS2 read_blocks: sb_getblk ownership, put_bh balance и loopback cluster fixture с reference ledger.
Когда проверять OCFS2 block-read buffer lifecycle
Caller ocfs2_read_blocks не должен считать buffer_head от sb_getblk эксклюзивным и безусловно делать put_bh; stable fix корректирует ownership/reference management. Сначала сопоставляют advisory с реально загруженной версией, package/image/kernel digest и включённым entry point; название продукта или похожий симптом недостаточны. Если provenance не подтверждён, итог остаётся UNKNOWN. Карточка GHSA-5x8p-2x56-54gv и первичное изменение задают узкую границу, а не сообщают о событии в вашей среде. Для иной ветки, backport или configuration вывод пересчитывают отдельно. Диагностика здесь направлена на предотвращение вреда и не содержит эксплуатационного payload.
Evidence map: buffer_head ledger block nr × initial ref × sb_getblk result × caller action × final ref/uptodate
Создайте артефакт «buffer_head ledger block nr × initial ref × sb_getblk result × caller action × final ref/uptodate». В него заносят kernel/OCFS2 commit, fresh image hash, block numbers, initial refs, cache-hit/miss cases, I/O completion and lockdep/KASAN state. Для каждого значения укажите источник: runtime query, signed artifact hash, deterministic test marker или configuration snapshot. Не смешивайте desired state с effective state и не подменяйте loaded binary записью в lockfile. Сохраняйте только относительные identifiers и счётчики; IP, hostnames, usernames, secrets, реальные документы, содержимое памяти и полные журналы не нужны для решения. Пустое поле обозначайте UNKNOWN, а не PASS.
Лабораторный протокол для linux-ocfs2-read-blocks-buffer-head-refs
В одноразовой single-node OCFS2 image выполнить два bounded reads одного synthetic block для miss/hit paths и снять refs через test instrumentation. До запуска зафиксируйте baseline, SHA-256 fixture, максимум итераций, deadline и способ полного rollback. Положительный control подтверждает, что harness действительно достигает нужной функции; отрицательный обязан остановиться на заявленном validator/authorization/lifecycle boundary. После опыта выполните cleanup и повторно снимите counters. Меняется только один фактор, поэтому наблюдаемый результат можно связать с исправлением. Стенд не использует production credentials, customer data, внешние targets или рабочую нагрузку.
Таблица решения по CVE-2026-80881
PASS фиксируют только когда выполняется условие: Каждый acquired ref освобождается ровно по ownership contract, cache hit не получает premature free, data control совпадает, unmount/fs-check чисты. Действие владельца: Установить stable backport; до этого исключить непроверенные concurrent read workloads на затронутой OCFS2 версии. AFFECTED означает, что реальный runtime входит в опубликованный диапазон и нужный path доступен. UPDATE-REQUIRED используют при отсутствии подтверждённого fix. NOT-REACHABLE относится лишь к проверенной ветке, не ко всему продукту. После обновления повторяют идентичный control и штатный smoke-test; соседние policy, firmware, network или storage параметры одновременно не меняют, иначе доказательство причинности теряется.
Остановка и безопасная передача OCFS2 block-read buffer lifecycle
Stop-rule: Не использовать production cluster/storage, не менять buffer refs вручную и прекратить при KASAN/lockdep warning или dirty unmount. При первой неожиданной ошибке не расширяйте права, охват, размер входа или длительность. В минимальный пакет сопровождения входят: kernel/OCFS2 hashes, image/block ids, hit/miss ledger, refcounts, data checksum, sanitizer and fs-check results. Добавьте московский timestamp, expected/actual, ссылки на advisory и primary change, владельца rollback. Удалите токены, адреса, персональные данные и raw payloads. Этот пакет подтверждает только выбранный инвариант: он не доказывает отсутствие прошлой эксплуатации, применимость к другой сборке, популярность проблемы, индексацию или будущие позиции страницы.
Материал подготовлен редакцией VOne с помощью автоматизированного черновика. Факты и границы вывода сверены 5 сентября 2026 года по прямой advisory и первичному upstream изменению. Текст написан самостоятельно; опасные действия и реальные пользовательские данные не использовались.
Источники и проверка
- GitHub Advisory GHSA-5x8p-2x56-54gv проверено 2026-09-05
- Primary fix for OCFS2 block-read buffer lifecycle проверено 2026-09-05
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.