CI hardening: testdriver.yml uses testdriverai/action@main (mutable branch) in a job holding DASHCAM_API + GITHUB_TOKEN
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 1/5
- Tempo stimato
- Meno di un'ora
- Idoneità per principianti
- 85/100
Direzione di ricerca
Apri .github/workflows/testdriver.yml e ispeziona il riferimento testdriverai/action@main nel job run_testdriver. Trova lo SHA completo del commit corrente per quell'action, sostituisci il riferimento mutabile con lo SHA e un commento esplicativo, quindi verifica che il workflow non richieda altre modifiche.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
.github/workflows/testdriver.yml pins a third-party action to a mutable branch — uses: testdriverai/action@main — inside a job that holds real secrets. I wanted to flag it as a small supply-chain hardening opportunity, and I'm happy to open the one-line fix if that's welcome.
I know this is a solo-maintained project with a discuss-first process, so please treat this as a heads-up rather than a demand on your time — no worries at all if it's not a priority.
What I observed (facts, at commit c99022c)
In testdriver.yml, the run_testdriver job:
- triggers on
workflow_run(line 3–4) — which runs from the default branch with access to repo secrets; - runs
uses: testdriverai/action@main(line 50).testdriverai/actionis a third-party action (ownertestdriverai, notwavetermdev/actions;default_branch: main), so@mainresolves to whatever that branch's HEAD points at, at run time; - in that same step passes
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}(line 54) andkey: ${{ secrets.DASHCAM_API }}(line 56), and embeds theGITHUB_TOKENin anAuthorizationheader (line 59). Job permissions arecontents: read+statuses: write.
Every other third-party action in the file is pinned to a version tag (e.g. mlugg/setup-zig@v2, nick-fields/retry@v4, softprops/action-gh-release@v2) — testdriverai/action@main is the only one on a moving branch.
Why I think it's worth a look (my inference)
If that upstream branch were ever repointed to malicious code — the class of thing that happened with tj-actions/changed-files in 2025 — it would execute in a job that can read DASHCAM_API and use the GITHUB_TOKEN. Pinning to a full commit SHA closes that window while still letting you bump it deliberately. I also noticed dependabot.yml enables the github-actions ecosystem, but Dependabot updates tags/SHAs and can't rewrite a @main branch ref, so this particular pin isn't covered by your existing tooling.
Suggested fix
Pin to the current commit SHA with a comment, e.g.:
- uses: testdriverai/action@<full-40-char-sha> # main as of <date>
I checked open and closed issues/PRs and didn't find an existing one for this. If you'd like, I'm glad to open a tiny PR with the SHA pin (I'd sign the CLA first) — or feel free to just make the one-line change yourself, whichever is less overhead for you.
Disclosure: I used an AI tool to help spot this and draft the report; I verified every line against the workflow file at the commit above myself and take responsibility for it.
- Lingua principale
- Go
- Stelle
- 22.3k
- Fork
- 1.1k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di wavetermdev/waveterm
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
wavetermdev/waveterm#3481 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
wavetermdev/waveterm#3435 ·
-
enhancement triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
wavetermdev/waveterm#3431 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
wavetermdev/waveterm#3428 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
wavetermdev/waveterm#3355 · 1 commento ·
Tutte le issue di wavetermdev/waveterm
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
crossplane/crossplane#7859 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
bazel-contrib/rules_go#4721 · 2 commenti ·
-
needs-triage
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
-
bug carvel-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
carvel-dev/kapp-controller#1861 ·
-
area/logging kind/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100