
Остаток цепочки поставок T3 Code 61c3794c. Модуль обновления проверяет SHA256SUMS из того же источника, что и архив. Без подписи. Лаборатория с loopback.
Средство обновления проверяет файл SHA-256, расположенный рядом с загрузкой. Захватите хост загрузки — и вы захватите контрольную сумму. На этом пути нет подписи. Случайное повреждение по-прежнему приводит к ошибке. Подменённая пара из того же источника устанавливается.
Класс: Цепочка поставок
Охват: Цепочка поставок (тот, кто контролирует releaseBaseUrl)
T3 Code 61c3794c - Ping
| ID | CVE пока нет |
| Класс | Цепочка поставок |
| Охват | Цепочка поставок (скомпрометированный хост релизов, CDN или DNS/TLS на этом источнике) |
| CWE | CWE-345 / CWE-494 |
| CVSS | Средний: 6.8 CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H |
| Продукт | T3 Code |
| Затронуто | 61c3794c32b0eeebfac09add43e403618c65d2d7 |
| Аутентификация | отсутствует у жертвы, как только издатель скомпрометирован; жертва выполняет установку или обновление |
| Лицензия | GNU Affero GPL v3.0 |
| Лаборатория | издатель на loopback 127.0.0.1:18192; tar замокан, поэтому байты архива никогда не исполняются |
Требуется контроль над источником, который обслуживает и SHA256SUMS, и архив (releaseBaseUrl / GitHub Releases для этой сборки). Не требует учётной записи T3 у жертвы.
| Привилегия | Метод / точка воздействия | Разведка / целостность / доступность | Доказано в лаборатории или выведено |
|---|---|---|---|
| Публикация совпадающих архива и контрольной суммы из одного источника | ensurePinnedRuntimeInstalled получает ${baseUrl}/SHA256SUMS, затем ${baseUrl}/${fileName}, сравнение SHA-256 | Целостность (принятая установка) | Доказано в лаборатории. checksum-pass=1, свидетельство t3f02s9m4 в обоих файлах |
| Запуск самообновления / boot-service через тот же помощник | selfUpdate.ts, bootService.ts передают releaseBaseUrl | Целостность | Исходный код. В лаборатории помощник вызывался напрямую |
| Исполнение установленного бинарника после распаковки | tar -xf, затем запуск t3 | Целостность / доступность | Выведено. В лаборатории tar замокан, байты не исполнялись |
| Негативный контроль: несовпадающая контрольная сумма | тот же помощник, нули в SHA256SUMS | н/д | Доказано в лаборатории. шаг verifying the t3 release archive checksum |
Остаётся закрытым в этом остатке
| Ось | Метод / точка воздействия | Почему закрыто |
|---|---|---|
| Целостность | Случайное искажение битов при передаче | Несовпадение SHA-256 отказывает в распаковке |
| Целостность | Неподписанный дополнительный источник | В лаборатории использовался один базовый URL; второй источник никогда не запрашивается, поскольку его не существует |
| Целостность | Исполнение байтов атакующего в этой лаборатории | tar замокан; extracted-binary-executed=0 |
signature-check=0 на блоке загрузки+дайджеста и у вызывающих самообновления / boot-service (нет minisign, cosign, GPG или sigstore).
pinnedRuntime.ts строит оба URL из cliReleaseDownloadBaseUrl. Тесты в дереве проекта уже фиксируют прохождение контрольной суммы из того же источника и отказ при несовпадении. Они не требуют подписи.
Неверные пути: трактовка контрольной суммы как средства аутентификации издателя.
python3 t3code-release-checksum-same-origin-Abraxas-Labs.py
или:
cd lab
./run.sh
HTTP-публикатор на loopback-интерфейсе 127.0.0.1:18192. В production ensurePinnedRuntimeInstalled использует Effect fetch к этому origin. Совпадающая пара устанавливается (извлечение замокано). Несовпадающая пара останавливается на этапе проверки.
IOC loopback-bound=127.0.0.1:18192
IOC same-origin=1
IOC checksum-pass=1
IOC checksum-fail=1
IOC signature-check=0
IOC tar-mocked=1
IOC extracted-binary-executed=0
SUCCESS T3-F02-CHECKSUM t3f02s9m4
Подпишите манифест контрольных сумм (minisign, cosign или GPG) и встройте открытый ключ в бинарный файл. Проверяйте подпись перед разбором SHA256SUMS. Закрепите источник релиза за неизменяемой подписанной ссылкой.
61c3794c32b0eeebfac09add43e403618c65d2d7pinnedRuntime.ts download+digestGNU Affero GPL v3.0. См. LICENSE. Только для локальной лаборатории. Без гарантий.
Abraxas Labs [email protected]
Пожалуйста, указывайте авторство CVE за Abraxas Labs.