Skip to content

fix(ci): security issues#9880

Draft
inomdzhon wants to merge 1 commit into
masterfrom
imirdzhamolov/ci/fix-securuty-issues
Draft

fix(ci): security issues#9880
inomdzhon wants to merge 1 commit into
masterfrom
imirdzhamolov/ci/fix-securuty-issues

Conversation

@inomdzhon

@inomdzhon inomdzhon commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Описание

Открыл драфт с потециальным фиксом от GTP-5.5. Исправил пару недочет, которые бросились в глаза, остальное пока не разбирал досконально.

Промпт: Проверь мой гитхаб воркфлоу на безопасность и исправь проблемы. Пинить VKUI/gh-action не требуется, так как я его контролирую.

Исправил проблемы в .github:

  • Закрыл главный риск workflow_run: PR deploy/undeploy теперь не запускается для fork PR, payload из артефакта валидируется, checkout делается по SHA, а не по подвижной ветке: .github/workflows/pull_request_packages_deploy.yml (line 16), .github/workflows/reusable_workflow_pr_worfklow_payload.yml (line 20).
  • Сузил GITHUB_TOKEN permissions: default в большинстве workflow теперь contents: read, write-права оставлены только точечно для комментариев, PR, OIDC/code coverage и publish-сценариев.
  • Убрал shell-injection паттерны: ${{ ... }} в privileged shell-командах перевёл через env, добавил quoting и whitelist/regex validation для publish/deprecate/manual/artifact payload.
  • Убрал curl | bash из LFS action, заменил на apt-get install git-lfs с валидацией apt_mirror и sudo_cmd: .github/actions/lfs/action.yml (line 20).
  • Проверил pinning: неприбитых внешних actions не осталось; неприбитыми остались только VKCOM/gh-actions@main, как ты и просил.

Важно: после этой правки preview deploy для fork PR больше не будет выкладывать артефакты в S3. Это осознанный security tradeoff: GitHub прямо предупреждает, что workflow_run получает secrets/write token даже после непривилегированного workflow, а untrusted code/artifacts в таком сценарии опасны. Также ориентировался на рекомендации GitHub по least privilege для GITHUB_TOKEN, env-переменным против script injection и SHA pinning: https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#workflow_run и https://docs.github.com/en/actions/reference/security/secure-use.

(c) GPT-5.5

Release notes

Исправил проблемы в .github:

- Закрыл главный риск workflow_run: PR deploy/undeploy теперь не запускается для fork PR, payload из артефакта валидируется, checkout делается по SHA, а не по подвижной ветке: .github/workflows/pull_request_packages_deploy.yml (line 16), .github/workflows/reusable_workflow_pr_worfklow_payload.yml (line 20).
- Сузил GITHUB_TOKEN permissions: default в большинстве workflow теперь contents: read, write-права оставлены только точечно для комментариев, PR, OIDC/code coverage и publish-сценариев.
- Убрал shell-injection паттерны: ${{ ... }} в privileged shell-командах перевёл через env, добавил quoting и whitelist/regex validation для publish/deprecate/manual/artifact payload.
- Убрал curl | bash из LFS action, заменил на apt-get install git-lfs с валидацией apt_mirror и sudo_cmd: .github/actions/lfs/action.yml (line 20).
- Проверил pinning: неприбитых внешних actions не осталось; неприбитыми остались только VKCOM/gh-actions@main, как ты и просил.

Важно: после этой правки preview deploy для fork PR больше не будет выкладывать артефакты в S3. Это осознанный security tradeoff: GitHub прямо предупреждает, что workflow_run получает secrets/write token даже после непривилегированного workflow, а untrusted code/artifacts в таком сценарии опасны. Также ориентировался на рекомендации GitHub по least privilege для GITHUB_TOKEN, env-переменным против script injection и SHA pinning: https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#workflow_run и https://docs.github.com/en/actions/reference/security/secure-use.

Co-authored GPT-5.5
@inomdzhon inomdzhon added this to VKUI Jun 1, 2026
@inomdzhon inomdzhon added type:bug technical task github_actions Pull requests that update GitHub Actions code labels Jun 1, 2026
@github-actions github-actions Bot added the ci:cherry-pick:patch Автоматизация: PR продублируется в ветку последнего минорного релиза для выпуска патча label Jun 1, 2026
Comment thread .github/workflows/monday.yml
Comment thread .github/workflows/inactive_contributions.yml
@vkcom-publisher vkcom-publisher added the pr-needs-work Автоматизация: PR автоматически закроется через 14 дней при отсутствии активности label Jun 9, 2026
@vkcom-publisher

Copy link
Copy Markdown
Contributor

PR закрыт из-за отсутствия активности в течение последних 14 дней. Если это произошло по ошибке или изменения все ещё актуальны, откройте PR повторно.

@github-project-automation github-project-automation Bot moved this to ✅ Done in VKUI Jun 16, 2026
@inomdzhon inomdzhon reopened this Jun 16, 2026
@vkcom-publisher vkcom-publisher removed the pr-needs-work Автоматизация: PR автоматически закроется через 14 дней при отсутствии активности label Jun 17, 2026
@vkcom-publisher vkcom-publisher added the pr-needs-work Автоматизация: PR автоматически закроется через 14 дней при отсутствии активности label Jun 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:cherry-pick:patch Автоматизация: PR продублируется в ветку последнего минорного релиза для выпуска патча github_actions Pull requests that update GitHub Actions code pr-needs-work Автоматизация: PR автоматически закроется через 14 дней при отсутствии активности technical task type:bug

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

3 participants