Skip to content

[Security] Release workflowのActionsをSHA固定し権限を最小化する #11

Description

@mimo-3

概要

リリースworkflowで複数のthird-party actionをmutable tag(@v2, @v3, @v4, @stable)のまま実行し、workflow全体へ contents: write を付与しています。Homebrew更新では長期tokenもactionへ渡します。

Severity: Medium (hardening)
分類: CWE-829 / OWASP A08

該当箇所

.github/workflows/release.yml:8-10,24-26,40,51,55-57,67-83

対象は feat/ci-cd-homebrew のrelease workflowです。

影響

action tagやmaintainer accountが侵害された場合、release tagの実行時に任意コードが動き、release改変、secret窃取、Homebrew tap侵害へつながる可能性があります。

修正案

  • すべての uses: を検証済みfull commit SHAへ固定する
  • DependabotでSHA更新を管理する
  • permissionsをjob単位に分ける(build: read、releaseのみcontents: write等)
  • Homebrew tokenをfine-grained・最小権限・短寿命化する
  • environment approval、artifact attestation、署名を検討する

完了条件

  • すべてのactionがfull SHA pinされている
  • write権限とsecretが必要なjobだけに限定されている
  • release artifactの出所・hashを検証できる

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions