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

Nango 0.71.6: проверяем authentication на runner tRPC

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

Как проверить Nango runner после missing-auth advisory: версия, сетевой exposure, middleware route map и zero-task отрицательный контроль.

Граница применимости: Nango runner tRPC server

Nango до 0.71.6 мог принимать unauthenticated вызов start на runner port, хотя RUNNER_SECRET_KEY существовал как ожидаемая граница. Достижимость требует сетевого доступа к этому порту. Релиз v0.71.6 указан как исправленный: проверка должна подтвердить не только переменную окружения, но и её enforcement на конкретной procedure до запуска задачи. Сначала подтвердите именно эту комбинацию версии, компонента, роли и входа. Совпадение названия продукта либо один внешний симптом не доказывают достижимость, эксплуатацию или причину инцидента. Карточка GHSA-9cph-w8mv-q56r опубликована 4 сентября 2026 года; её дата служит сигналом для проверки, но состояние конкретной системы устанавливается только runtime-инвентаризацией.

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

Соберите карту listener address × ingress source × tRPC procedure × auth middleware × task-start counter. В исходный снимок входят image/package digest, runner version, bind address, firewall/service exposure и наличие secret только как boolean без значения. Поля заполняют значениями TRUE, FALSE или UNKNOWN и связывают с package/image/kernel digest. Версия из lockfile, репозитория или панели не заменяет фактически загруженный binary. Секреты, персональные данные, внутренние адреса, токены и полные журналы в таблицу не включают. Если компонент или entry point не найден, фиксируют NOT-REACHABLE для этой ветки, а не универсальный PASS продукта.

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

В закрытом стенде отправьте structurally valid пустой start-request без credential. Ожидается 401/403 и нулевые job, JavaScript execution и outbound counters; авторизованный no-op health path — control. Опыт выполняют только в disposable fixture с заранее нулевыми счётчиками filesystem, process, network, database и privileged operations, если они не являются самой измеряемой безопасной операцией. До старта сохраняют SHA-256 fixture, после результата выполняют явный cleanup и повторно проверяют baseline. Один изменяемый фактор отличает контроль от догадки; отсутствие crash или видимого эффекта без проверки внутреннего инварианта не считается доказательством исправления.

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

Обновить runner до 0.71.6+ и ограничить порт trusted service network; наличие secret без middleware не считать защитой. PASS допустим только когда runtime provenance подтверждён и выполняется правило: Каждая state-changing runner procedure проверяется до handler, anonymous start не создаёт task ID и не меняет очередь. UPDATE-REQUIRED означает affected build или отсутствие заявленного fix. NOT-REACHABLE относится лишь к проверенному entry point. UNKNOWN сохраняют при неподтверждённом backport, неясном runtime или расхождении источников. После штатного update повторяют тот же контроль и обычный smoke-test компонента; соседние настройки одновременно не меняют.

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

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

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

Передайте только: version/digest, bind class, procedure name, auth result, handler/task/network counters и журнал cleanup. Добавьте Moscow timestamp, expected/actual, SHA-256 проверяемого артефакта, прямые ссылки на advisory и primary source, а также владельца rollback. Удалите абсолютные домашние пути, IP, usernames, session identifiers, cookies, request bodies, ключи и длинные raw logs. Такой пакет позволяет повторить именно выбранный boundary и принять решение об update. Он не обещает совместимость на иной платформе, отсутствие прошлой эксплуатации, массовость проблемы, поисковый спрос, индексацию или позиции страницы.

Предметный протокол: Nango runner tRPC server

Шаг 1 — зафиксировать boundary именно для Nango runner tRPC server: Релиз v0.71.6 указан как исправленный: проверка должна подтвердить не только переменную окружения, но и её enforcement на конкретной procedure до запуска задачи. Шаг 2 — подтвердить runtime и собрать только image/package digest, runner version, bind address, firewall/service exposure и наличие secret только как boolean без значения. Шаг 3 — построить предметный артефакт «карту listener address × ingress source × tRPC procedure × auth middleware × task-start counter», не заменяя его общим uptime или одним кодом ответа. Шаг 4 — выполнить отдельный контроль: В закрытом стенде отправьте structurally valid пустой start-request без credential. Ожидается 401/403 и нулевые job, JavaScript execution и outbound counters; авторизованный no-op health path — control. Шаг 5 — применить проверяемое правило результата: Каждая state-changing runner procedure проверяется до handler, anonymous start не создаёт task ID и не меняет очередь. Шаг 6 — остановиться при условии: Не сканировать публичные runner ports, не передавать настоящий secret, не запускать code payload и не тестировать production worker. Шаг 7 — после cleanup передать только version/digest, bind class, procedure name, auth result, handler/task/network counters и журнал cleanup. Эта связка version boundary, собственного измерения, negative control, stop-line и минимального пакета относится к одной самостоятельной боли и не переносится механически на другой компонент.

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

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

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

Ответы

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

Ваш ответ

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

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

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