К обсуждениям

libtpms: проверяем границу state restore без рабочей VM

Редакция VOne Технологии

Как оценить CVE-2026-85769 в software TPM: runtime package, restore path, bounds-check commit и безопасный truncated-state unit fixture.

Граница применимости: libtpms TPM 2.0 state restore

Advisory описывает oversized skip-block length в malformed state blob: signed counter мог стать отрицательным, затем преобразоваться в unsigned и привести к out-of-bounds read при power-on или migration restore. Подтверждённый impact — crash/DoS; disclosure не подтверждено. Upstream исправляет проверку оставшегося размера до изменения cursor. Vendor package может иметь backport, поэтому номер версии сопоставляют с advisory дистрибутива. Сначала подтвердите именно эту комбинацию версии, компонента, роли и входа. Совпадение названия продукта либо один внешний симптом не доказывают достижимость, эксплуатацию или причину инцидента. Карточка GHSA-8pv5-2vvh-f478 опубликована 4 сентября 2026 года; её дата служит сигналом для проверки, но состояние конкретной системы устанавливается только runtime-инвентаризацией.

Инвентаризация и артефакт

Соберите цепочку hypervisor × swtpm process × loaded libtpms build ID × state origin × restore verdict. В исходный снимок входят package revision и build ID, consumers, migration sources, ownership state blobs и crash signatures без содержимого state. Поля заполняют значениями TRUE, FALSE или UNKNOWN и связывают с package/image/kernel digest. Версия из lockfile, репозитория или панели не заменяет фактически загруженный binary. Секреты, персональные данные, внутренние адреса, токены и полные журналы в таблицу не включают. Если компонент или entry point не найден, фиксируют NOT-REACHABLE для этой ветки, а не универсальный PASS продукта.

Ограниченный безопасный контроль

В disposable unit harness подайте короткий синтетический buffer с declared length больше remaining bytes. Parser должен вернуть bounded error до чтения; known-good минимальный state — control. Опыт выполняют только в disposable fixture с заранее нулевыми счётчиками filesystem, process, network, database и privileged operations, если они не являются самой измеряемой безопасной операцией. До старта сохраняют SHA-256 fixture, после результата выполняют явный cleanup и повторно проверяют baseline. Один изменяемый фактор отличает контроль от догадки; отсутствие crash или видимого эффекта без проверки внутреннего инварианта не считается доказательством исправления.

Критерии решения и обновление

Применить vendor update, содержащий исправление CVE-2026-85769, и не импортировать непроверенные TPM state blobs до завершения rollout. PASS допустим только когда runtime provenance подтверждён и выполняется правило: Truncated fixture отвергается, sanitizer не фиксирует OOB, cursor не выходит за input length, good fixture сохраняет прежний parse result. UPDATE-REQUIRED означает affected build или отсутствие заявленного fix. NOT-REACHABLE относится лишь к проверенному entry point. UNKNOWN сохраняют при неподтверждённом backport, неясном runtime или расхождении источников. После штатного update повторяют тот же контроль и обычный smoke-test компонента; соседние настройки одновременно не меняют.

Красные линии проверки

Жёсткий stop-rule: Не копировать production TPM state, не повторять crash на работающей VM, не выводить sealed data и не выполнять live migration ради проверки. После срабатывания не увеличивают права, длительность, объём входа или сетевой охват и не ищут обход ограничения. Advisory описывает техническую возможность, а не подтверждённое событие в вашей инфраструктуре. Нельзя публиковать exploit details, рабочие credentials, memory dumps, пользовательский контент или данные других tenants. Если безопасного fixture недостаточно, вопрос передают владельцу продукта или поставщику с минимальным описанием, не превращая диагностику в атаку.

Минимальный пакет для сопровождения

Передайте только: package/build ID, consumer process, synthetic lengths, parser status, sanitizer class и update/backport reference. Добавьте Moscow timestamp, expected/actual, SHA-256 проверяемого артефакта, прямые ссылки на advisory и primary source, а также владельца rollback. Удалите абсолютные домашние пути, IP, usernames, session identifiers, cookies, request bodies, ключи и длинные raw logs. Такой пакет позволяет повторить именно выбранный boundary и принять решение об update. Он не обещает совместимость на иной платформе, отсутствие прошлой эксплуатации, массовость проблемы, поисковый спрос, индексацию или позиции страницы.

Предметный протокол: libtpms TPM 2.0 state restore

Шаг 1 — зафиксировать boundary именно для libtpms TPM 2.0 state restore: Upstream исправляет проверку оставшегося размера до изменения cursor. Vendor package может иметь backport, поэтому номер версии сопоставляют с advisory дистрибутива. Шаг 2 — подтвердить runtime и собрать только package revision и build ID, consumers, migration sources, ownership state blobs и crash signatures без содержимого state. Шаг 3 — построить предметный артефакт «цепочку hypervisor × swtpm process × loaded libtpms build ID × state origin × restore verdict», не заменяя его общим uptime или одним кодом ответа. Шаг 4 — выполнить отдельный контроль: В disposable unit harness подайте короткий синтетический buffer с declared length больше remaining bytes. Parser должен вернуть bounded error до чтения; known-good минимальный state — control. Шаг 5 — применить проверяемое правило результата: Truncated fixture отвергается, sanitizer не фиксирует OOB, cursor не выходит за input length, good fixture сохраняет прежний parse result. Шаг 6 — остановиться при условии: Не копировать production TPM state, не повторять crash на работающей VM, не выводить sealed data и не выполнять live migration ради проверки. Шаг 7 — после cleanup передать только package/build ID, consumer process, synthetic lengths, parser status, sanitizer class и update/backport reference. Эта связка version boundary, собственного измерения, negative control, stop-line и минимального пакета относится к одной самостоятельной боли и не переносится механически на другой компонент.

Материал подготовлен редакцией VOne с помощью автоматизированного черновика. Факты и границы вывода сверены 4 сентября 2026 года по прямой advisory и первичному источнику. Текст написан самостоятельно; опасные действия и реальные пользовательские данные не использовались.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.