CVE-2025-30066

tj-actions changed-files GitHub Action

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2025-03-18

Официальное описание

tj-actions/changed-files GitHub Action contains an embedded malicious code vulnerability that allows a remote attacker to discover secrets by reading Github Actions Workflow Logs. These secrets may include, but are not limited to, valid AWS access keys, GitHub personal access tokens (PATs), npm tokens, and private RSA keys.

🛡️
Технический анализ и план устранения

Суть уязвимости

CVE-2025-30066 представляет собой критическую уязвимость типа "Embedded Malicious Code" (внедренный вредоносный код) в популярном GitHub Action tj-actions/changed-files.

Злоумышленник может получить доступ к конфиденциальным данным (Secrets), которые используются в пайплайне GitHub Actions. Уязвимый код перехватывает переменные окружения и содержимое контекста GitHub, после чего выводит их в логи выполнения Workflow в открытом или слабо зашифрованном виде.

Скомпрометированные данные могут включать: * AWS Access Keys и Secret Keys. * GitHub Personal Access Tokens (PAT). * Токены реестров пакетов (npm, PyPI). * Приватные SSH/RSA ключи.

Как исправить

Основным способом устранения является обновление версии Action до исправленной, в которой вредоносный код был удален.

  1. Найдите в вашем репозитории все файлы Workflow (обычно в директории .github/workflows/), использующие данный Action.
  2. Обновите версию tj-actions/changed-files до безопасной (v45.0.5 или выше).

Пример исправления в YAML-файле:

- name: Get changed files
  uses: tj-actions/changed-files@v45.0.5

  1. После обновления версии необходимо немедленно отозвать (revoke) и перевыпустить все секреты, которые могли быть доступны данному Action в процессе выполнения скомпрометированных версий.

Временные меры

Если немедленное обновление невозможно, примените следующие защитные механизмы:

  1. Ограничьте права доступа токена GITHUB_TOKEN для всех Workflow, использующих этот Action, установив минимальные привилегии:
permissions:
  contents: read

  1. Используйте привязку к конкретному SHA-хэшу коммита вместо тега версии, чтобы гарантировать неизменность используемого кода (предварительно проверив код этого коммита на отсутствие вредоносных вставок):
- name: Get changed files
  uses: tj-actions/changed-files@d66a24843053445373d1b32800b7c5052cc21c3d

  1. Временно отключите передачу критических секретов в шаги (steps), где используется данный Action, если они не требуются для его работы.

  2. Проверьте логи предыдущих запусков Workflow на наличие подозрительных выводов, похожих на дампы переменных окружения или Base64-строки.