Workflow GitHub Actions w repozytorium Meshtastic (plik main_matrix.yml) pobiera i wykonuje kod z forka zewnętrznego użytkownika z pełnym dostępem do sekretów repozytorium oraz podwyższonymi uprawnieniami GITHUB_TOKEN. Podatność może prowadzić do przejęcia kontroli nad repozytorium oraz kompromitacji łańcucha dostaw oprogramowania.
▸ Pokaż oryginał (EN)
Meshtastic is an open source mesh networking solution. Prior to version 2.7.21.1370b23, the Meshtastic GitHub repository's main_matrix.yml workflow is triggered by pull_request_target and multiple jobs check out the attacker's fork code and execute it with access to repository secrets and elevated GITHUB_TOKEN permissions. No approval gate exists. Pull requests from external users with author_association: "NONE" triggered the CI workflow automatically. The workflow directly executes attacker-controlled files from the fork checkout. This issue could have resulted in supply chain compromise, self-hosted runner compromise, and/or repository takeover for the repo. This issue is separate from GHSA-6mwm-v2vv-pp96, which addressed a command injection via github.head_ref in the setup job of the same workflow. That fix correctly moved to environment variables. However, the more critical fork checkout vulnerability across the check, build, and build-debian-src jobs was not addressed. Version 2.7.21.1370b23 contains a patch for thie issue.
Workflow jest wyzwalany zdarzeniem pull_request_target, które uruchamia się w kontekście repozytorium docelowego (a nie forka), dając dostęp do sekretów i uprawnień GITHUB_TOKEN. Joby check, build oraz build-debian-src bezpośrednio pobierają i wykonują pliki kontrolowane przez atakującego z jego forka. Nie istnieje żaden mechanizm zatwierdzania (approval gate) dla pull requestów od zewnętrznych użytkowników (author_association: 'NONE'), więc workflow uruchamia się automatycznie. W rezultacie atakujący może wstrzyknąć dowolny kod wykonywalny w środowisku CI, który działa z uprzywilejowanymi poświadczeniami.
Atakujący może uzyskać dostęp do sekretów repozytorium i podwyższonego tokena GITHUB_TOKEN, co może skutkować przejęciem repozytorium, kompromitacją self-hosted runnerów oraz atakiem na łańcuch dostaw oprogramowania (supply chain compromise).
Należy zaktualizować do wersji 2.7.21.1370b23, która zawiera patch eliminujący podatność (commit 5716aeba3bc1e1d34fba9567ff88917ede4a78a5). Patch adresuje bezpośrednie pobieranie i wykonywanie kodu z forka w jobach check, build oraz build-debian-src.
Repozytorium Meshtastic firmware — workflow main_matrix.yml w wersjach przed 2.7.21.1370b23
Podatność jest odrębna od wcześniej zgłoszonej GHSA-6mwm-v2vv-pp96, która dotyczyła command injection przez github.head_ref w jobie setup tego samego workflow i została wcześniej naprawiona. Obecna podatność (GHSA-mjx5-98jq-q736) dotyczy bardziej krytycznej kwestii bezpośredniego wykonania kodu z forka, która nie była objęta poprzednim patchem.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N