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

ILIAS 9.22, 10.10 и 11.3: проверяем sort allowlist корзины

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

Как проверить исправление repository trash table без SQL payload: version line, declared sortable columns, query recorder и zero-write invariant.

Граница применимости: ILIAS repository trash table navigation

До ILIAS 9.22, 10.10 и 11.3 sort field из HTTP request мог попасть в ORDER BY без проверки по объявленным sortable columns; достижимость требовала authenticated user с write permission на контейнер. Исправленные maintenance releases задают version boundary и должны выбирать sort expression только из серверного allowlist, а не переносить request value в SQL. Сначала подтвердите именно эту комбинацию версии, компонента, роли и входа. Совпадение названия продукта либо один внешний симптом не доказывают достижимость, эксплуатацию или причину инцидента. Карточка GHSA-p46r-q73m-mm69 опубликована 4 сентября 2026 года; её дата служит сигналом для проверки, но состояние конкретной системы устанавливается только runtime-инвентаризацией.

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

Соберите матрицу major line × effective patch × user role × requested sort class × selected server column × DB writes. В исходный снимок входят runtime release, database layer mode, trash feature exposure, permission classes и declared columns без SQL logs с пользовательскими данными. Поля заполняют значениями TRUE, FALSE или UNKNOWN и связывают с package/image/kernel digest. Версия из lockfile, репозитория или панели не заменяет фактически загруженный binary. Секреты, персональные данные, внутренние адреса, токены и полные журналы в таблицу не включают. Если компонент или entry point не найден, фиксируют NOT-REACHABLE для этой ветки, а не универсальный PASS продукта.

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

В disposable course/container передайте один допустимый column key и неизвестный символический key. Query recorder должен показать allowlisted identifier либо ранний отказ; stacked statements и injection fragments запрещены. Опыт выполняют только в disposable fixture с заранее нулевыми счётчиками filesystem, process, network, database и privileged operations, если они не являются самой измеряемой безопасной операцией. До старта сохраняют SHA-256 fixture, после результата выполняют явный cleanup и повторно проверяют baseline. Один изменяемый фактор отличает контроль от догадки; отсутствие crash или видимого эффекта без проверки внутреннего инварианта не считается доказательством исправления.

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

Обновить соответствующую major line минимум до 9.22, 10.10 или 11.3 и применить vendor security guidance для вашей ветки. PASS допустим только когда runtime provenance подтверждён и выполняется правило: Допустимая сортировка работает, неизвестный key не меняет SQL structure, DB write counter нулевой и таблица остаётся неизменной. UPDATE-REQUIRED означает affected build или отсутствие заявленного fix. NOT-REACHABLE относится лишь к проверенному entry point. UNKNOWN сохраняют при неподтверждённом backport, неясном runtime или расхождении источников. После штатного update повторяют тот же контроль и обычный smoke-test компонента; соседние настройки одновременно не меняют.

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

Жёсткий stop-rule: Не строить SQL injection payload, не тестировать production database, не использовать admin session и не включать multi-statement ради опыта. После срабатывания не увеличивают права, длительность, объём входа или сетевой охват и не ищут обход ограничения. Advisory описывает техническую возможность, а не подтверждённое событие в вашей инфраструктуре. Нельзя публиковать exploit details, рабочие credentials, memory dumps, пользовательский контент или данные других tenants. Если безопасного fixture недостаточно, вопрос передают владельцу продукта или поставщику с минимальным описанием, не превращая диагностику в атаку.

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

Передайте только: ILIAS line/version, role class, sort-key class, selected column, query shape hash, row/write counters и cleanup. Добавьте Moscow timestamp, expected/actual, SHA-256 проверяемого артефакта, прямые ссылки на advisory и primary source, а также владельца rollback. Удалите абсолютные домашние пути, IP, usernames, session identifiers, cookies, request bodies, ключи и длинные raw logs. Такой пакет позволяет повторить именно выбранный boundary и принять решение об update. Он не обещает совместимость на иной платформе, отсутствие прошлой эксплуатации, массовость проблемы, поисковый спрос, индексацию или позиции страницы.

Предметный протокол: ILIAS repository trash table navigation

Шаг 1 — зафиксировать boundary именно для ILIAS repository trash table navigation: Исправленные maintenance releases задают version boundary и должны выбирать sort expression только из серверного allowlist, а не переносить request value в SQL. Шаг 2 — подтвердить runtime и собрать только runtime release, database layer mode, trash feature exposure, permission classes и declared columns без SQL logs с пользовательскими данными. Шаг 3 — построить предметный артефакт «матрицу major line × effective patch × user role × requested sort class × selected server column × DB writes», не заменяя его общим uptime или одним кодом ответа. Шаг 4 — выполнить отдельный контроль: В disposable course/container передайте один допустимый column key и неизвестный символический key. Query recorder должен показать allowlisted identifier либо ранний отказ; stacked statements и injection fragments запрещены. Шаг 5 — применить проверяемое правило результата: Допустимая сортировка работает, неизвестный key не меняет SQL structure, DB write counter нулевой и таблица остаётся неизменной. Шаг 6 — остановиться при условии: Не строить SQL injection payload, не тестировать production database, не использовать admin session и не включать multi-statement ради опыта. Шаг 7 — после cleanup передать только ILIAS line/version, role class, sort-key class, selected column, query shape hash, row/write counters и cleanup. Эта связка version boundary, собственного измерения, negative control, stop-line и минимального пакета относится к одной самостоятельной боли и не переносится механически на другой компонент.

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

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

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

Ответы

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

Ваш ответ

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

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

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