Skip to content

Pin and verify CTF scoring inputs - #267

Open
tobymoreno wants to merge 1 commit into
OWASP-CTF:dc34-ctffrom
tobymoreno:fix/dvwa-score-workflow-hardening
Open

tobymoreno wants to merge 1 commit into
OWASP-CTF:dc34-ctffrom
tobymoreno:fix/dvwa-score-workflow-hardening

Conversation

@tobymoreno

Copy link
Copy Markdown

Summary

  • pin OWASP-CTF/score-action to commit ab1795f38b78065627d4d8bf449ce7eaffd762ff
  • pin the private scorer image to digest sha256:7d3134c34e665067acc56c872e59fa3c09ef6e3f0b0f460796a6fe5a0d5e894c
  • pass the pull request head SHA explicitly
  • scope concurrency by repository and PR
  • fail closed if scoring produces no result, a malformed result, or a PR-tracked fake result
  • keep the existing minimal job permissions

Security rationale

The workflow runs under pull_request_target with OIDC and PR-write capabilities. Mutable action tags and image tags therefore create an avoidable supply-chain boundary. Immutable references ensure reviewed action and scorer code are what execute with those privileges.

The result verifier remains inline in the trusted base workflow; it does not execute scripts from the checked-out PR.

Validation

  • workflow YAML parses successfully
  • valid untracked score result is accepted
  • tracked fake score result is rejected
  • empty score result is rejected
  • git diff --check passes

Remaining upstream work

The composite action currently combines app testing, OIDC score submission, and PR commenting. Fully separating test and recorder privileges requires an upstream OWASP-CTF/score-action interface change and is intentionally not simulated in this consumer workflow.

Pin the scoring action and private scorer image to immutable references, score the explicit PR head SHA, scope concurrency by repository, and fail closed when no authentic scorer result is produced.

Signed-off-by: Toby Moreno <chris.moreno.ctr@km.spaceforce.mil>
@github-actions

github-actions Bot commented Aug 9, 2026 •

Copy link
Copy Markdown

🏆 DVWA — CTF Patch Score

░░░░░░░░░░░░░░░░░░░░  0 / 108 pts  (0%)

0 / 55 challenges patched

Per-challenge detail is withheld — it would reveal the rubric.

Commit: acaccf3 · scoring run

No points yet — this commit didn't solve any challenges, so there's nothing on the leaderboard for it. Patch a vulnerability and push again! 💪

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant