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

Phoenix Presence: проверка own-key collision

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

Defensive-аудит Phoenix Presence для keys, совпадающих с Object.prototype: own-property lookup, synthetic presence diff и stable state.

Сначала отделите симптом от факта: Phoenix Presence JavaScript state

Presence existence check мог ломаться для keys, совпадающих с members Object.prototype; commit переводит проверку на корректную own-key semantics. Применимость устанавливают по реально загруженной версии и доступности именно этого entry point; совпадение названия продукта, общего класса ошибки или CVE в scanner недостаточно. Зафиксируйте package/image/binary digest и effective configuration. GHSA-63mc-hw7g-86rr задаёт внешнюю границу исследования, а primary change показывает, что изменил maintainer. Пока provenance или reachability не подтверждены, состояние остаётся UNKNOWN. Advisory не сообщает, что конкретная система была атакована, и материал не воспроизводит опасный input.

Матрица решения: presence-state table key class × own entry before × diff operation × own entry after × callback count

Соберите «presence-state table key class × own entry before × diff operation × own entry after × callback count». Нужные поля: Phoenix JS client version, reserved/ordinary fake keys, empty state prototype, join/leave diffs, callback counters и serialized result. Каждую строку свяжите с измерением, а не предположением: runtime query, immutable hash, test recorder или bounded counter. Desired config и effective behavior держите в разных колонках. Применяйте TRUE, FALSE, UNKNOWN и NOT-APPLICABLE с короткой причиной. Удалите hostname, IP, usernames, tokens, document content, memory dumps и raw request bodies; для воспроизводимости достаточно относительных ids, размеров, типов и итоговых классов.

Два контроля без опасного payload

В isolated JS test применить join/leave diff к ordinary key и inert reserved-name key без network socket, сравнив Object.hasOwn semantics и callbacks. Перед выполнением запишите SHA-256 fixture, исходные counters, deadline, memory/process ceiling и rollback. Positive control доказывает, что harness достигает нужной функции; negative control должен остановиться на validator, authorization, containment или lifecycle boundary до необратимого эффекта. После каждого случая выполните cleanup и повторно проверьте baseline. Не увеличивайте вход до фактического отказа: достаточно test double, recorder, inert marker либо малого synthetic object.

Что считать PASS для CVE-2026-56812

PASS разрешён только при таком результате: Оба key обрабатываются только как собственные presence entries; prototype не принимается за participant; join/leave callbacks и final empty state корректны. Практическое действие: Обновить Phoenix client release с commit; до этого нормализовать внешние presence ids или использовать own-property guard. Если runtime входит в affected range и path доступен, ставят UPDATE-REQUIRED. NOT-REACHABLE относится только к проверенной функции; UNKNOWN сохраняют при неподтверждённом backport или расходящихся hashes. После update повторяют ровно ту же матрицу и один штатный smoke-test. Одновременные изменения network, policy, dependency или data state запрещены: они делают причинность непроверяемой.

Красные линии и передача владельцу

Немедленный stop-rule: Не использовать реальные user ids, не мутировать global prototype и завершить child process при sentinel change. Не расширяйте привилегии, глубину, размер, скорость или охват после неожиданного warning, timeout, cross-boundary call или state mutation. Передайте только client/commit hash, key classes, diff hashes, own-property states, callback counts и prototype sentinel, плюс московское время, expected/actual, advisory/primary URLs и владельца rollback. Очистите secrets и персональные данные. Такой пакет подтверждает выбранный инвариант, но не отсутствие прошлой эксплуатации, безопасность всей системы, применимость к другой версии, поисковую популярность, индексацию или позиции.

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

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

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

Ответы

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

Ваш ответ

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

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

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