fix(security): защита CGI агента, права конфига и захват лока
- агентский CGI: /diagnose мог удалять nft-таблицы, переписывать resolv.conf и перезапускать sing-box с любого устройства LAN без токена; bearer-токен теперь передаётся через окружение вместо argv (виден в ps), тело запроса ограничено 64KB до чтения, wildcard Access-Control-Allow-Origin убран - произвольные сайты больше не могут читать состояние роутера кросс-доменно (включая DNS rebinding) - agent_api: сравнение токена за константное время - uci/migration: /etc/config/tachyon хранит Telegram bot token и ссылки на подписки; UCI не сохраняет 0600 при коммитах, поэтому режим ужесточается после каждого коммита этого конфига и после миграций - build.yml: убран NODE_TLS_REJECT_UNAUTHORIZED=0 из шагов публикации релиза - проверка сертификатов не должна отключаться на раннере, заливающем релизы - initd/state: устранено окно TOCTOU при захвате устаревшего reload-лока: два ожидающих могли оба выполнить rm+rmdir+mkdir и каждый считал лок своим; захват теперь атомарным переименованием, которое выигрывает ровно один претендент
This commit is contained in:
@@ -90,8 +90,6 @@ jobs:
|
||||
- name: Release on tag push
|
||||
if: ${{ github.event_name == 'push' }}
|
||||
uses: softprops/action-gh-release@v2.4.0
|
||||
env:
|
||||
NODE_TLS_REJECT_UNAUTHORIZED: "0"
|
||||
with:
|
||||
files: ./filtered-bin/release/*
|
||||
tag_name: ${{ github.ref_name }}
|
||||
@@ -106,8 +104,6 @@ jobs:
|
||||
- name: Release on workflow dispatch
|
||||
if: ${{ github.event_name == 'workflow_dispatch' }}
|
||||
uses: softprops/action-gh-release@v2.4.0
|
||||
env:
|
||||
NODE_TLS_REJECT_UNAUTHORIZED: "0"
|
||||
with:
|
||||
files: ./filtered-bin/release/*
|
||||
tag_name: ${{ needs.preparation.outputs.version }}
|
||||
|
||||
Reference in New Issue
Block a user