Kill switch Xray разрешает прямой трафик другим процессам с тем же именем

Aperta
#339 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
53/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
csharp

Direzione di ricerca

Read SingBoxTunGuard.cs lines 59–69 and SingBoxConfigBuilder.cs lines 321–323 to trace how the Xray exception is added and ordered in the generated route rules. Then inspect the existing config tests or test entry points for this behavior. Done means the exception targets the actual backend executable while other same-named processes remain subject to the kill switch; the issue notes that live traffic has not been tested.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug network

Приоритет P1 · milestone 0.4.1

При TUN для Xray исключение для сетевого процесса привязано к имени файла. Другой локальный процесс с тем же именем получает такое же прямое правило для произвольных назначений, в том числе когда backend недоступен.

Воспроизведение без запуска движков

  1. Сгенерировать конфиг удерживаемого TUN для Xray, который расположен, например, в каталоге BYDLO и называется xray.exe.
  2. Проверить первое правило маршрутизации и сопоставить его с любым процессом xray.exe из другого каталога.
  3. Оба процесса совпадают по process_name. Ограничения пути или назначения в правиле нет.

Причина и доказательство: SingBoxTunGuard.cs:59–69 берёт Path.GetFileName найденного бинарника и добавляет вариант без расширения. SingBoxConfigBuilder.cs:321–323 вставляет process_name → direct первым. Правила sing-box различают имя и путь. Подтверждено по конфигу и порядку правил, реальный трафик не проверялся.

Ожидаемо: исключение относится к фактически запущенному backend, остальные процессы остаются под kill switch.

Направление исправления: использовать идентификатор конкретного исполняемого файла, например канонический process_path, и по возможности ограничить исключение адресами/портами backend.

Связано: #212.

Аудит ffa65648867139f9e45c15f4b635a83c1ff52c1b.

Lingua principale
C#
Stelle
5
Fork
1
Merge medio
23m
PR unite (30g)
144

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di endercodezz/BYDLO

Tutte le issue di endercodezz/BYDLO

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.