🇰🇷 한글 설명
LiveCode의 `i18n-update-pull` GitHub Actions 워크플로우에서 Pull Request 제목이 JavaScript 코드 블록에 직접 삽입되어 JavaScript 인젝션 취약점이 발생합니다. 공격자는 악의적인 PR 제목을 통해 CI 봇 토큰의 권한으로 임의의 JavaScript를 실행하여 저장소 시크릿을 탈취하고 GitHub API를 악용할 수 있습니다. e151c64c2bd80d2d53ac1333f1df9429fe6a1a11 커밋에서 이 문제가 수정되었습니다.
💡 쉬운 설명
LiveCode의 GitHub 자동화 도구가 Pull Request 제목을 검증 없이 처리하여 악의적인 코드 실행이 가능합니다. 공격자는 특수하게 조작된 PR 제목으로 리포지토리의 비밀 정보를 탈취할 수 있습니다.
🇺🇸 원문 (English)
LiveCode is an open-source, client-side code playground. Prior to commit e151c64c2bd80d2d53ac1333f1df9429fe6a1a11, LiveCode's `i18n-update-pull` GitHub Actions workflow is vulnerable to JavaScript injection. The title of the Pull Request associated with the triggering issue comment is interpolated directly into a `actions/github-script` JavaScript block using a GitHub Actions template expression. An attacker who opens a PR with a crafted title can inject arbitrary JavaScript that executes with the privileges of the CI bot token (`CI_APP_ID` / `CI_APP_PRIVATE_KEY`), enabling exfiltration of repository secrets and unauthorized GitHub API operations. Commit e151c64c2bd80d2d53ac1333f1df9429fe6a1a11 fixes the issue.
📍 영향받는 시스템
LiveCode - commit e151c64c2bd80d2d53ac1333f1df9429fe6a1a11 이전 버전
⚔️ 공격 벡터
GitHub Actions 워크플로우에서 PR 제목의 입력값을 검증하지 않고 JavaScript 템플릿 표현식으로 직접 삽입
🛡️ 대응 방법
e151c64c2bd80d2d53ac1333f1df9429fe6a1a11 커밋 이후 버전으로 업그레이드하거나 워크플로우 파일에서 PR 제목을 적절히 sanitize하는 코드 수정 적용
🔧 검증 코드
명령어가 'Patched'를 출력하면 수정된 버전이고, 'Vulnerable'을 출력하면 취약한 버전입니다.
git log --all --oneline | grep -q 'e151c64c2bd80d2d53ac1333f1df9429fe6a1a11' && echo 'Patched' || echo 'Vulnerable'