🇰🇷 한글 설명
WPGraphQL 2.9.1 이전 버전의 GitHub Actions 워크플로우에서 pull request body를 검증 없이 shell command에 직접 주입하여 OS 명령어 injection 취약점이 존재합니다. 공격자가 악의적인 PR body를 작성하여 Actions runner에서 임의의 명령어를 실행할 수 있으며, 2.9.1에서 수정되었습니다.
💡 쉬운 설명
WPGraphQL의 자동화 도구가 pull request 메시지를 검증하지 않고 실행 명령어로 직접 사용합니다. 공격자가 특수 문자를 포함한 PR을 만들면 임의의 악의적인 명령어를 서버에서 실행시킬 수 있습니다.
🇺🇸 원문 (English)
WPGraphQL provides a GraphQL API for WordPress sites. Prior to version 2.9.1, the `wp-graphql/wp-graphql` repository contains a GitHub Actions workflow (`release.yml`) vulnerable to OS command injection through direct use of `${{ github.event.pull_request.body }}` inside a `run:` shell block. When a pull request from `develop` to `master` is merged, the PR body is injected verbatim into a shell command, allowing arbitrary command execution on the Actions runner. Version 2.9.1 contains a fix for the vulnerability.
📍 영향받는 시스템
wp-graphql/wp-graphql 2.9.1 이전 버전
⚔️ 공격 벡터
develop → master 병합 시 PR body의 shell metacharacters를 통한 명령어 주입
🛡️ 대응 방법
WPGraphQL을 2.9.1 이상으로 업그레이드 또는 GitHub Actions 워크플로우의 입력값 sanitization 강화
🔧 검증 코드
2.9.1 이상의 버전이 출력되지 않으면 취약한 상태이며, 즉시 업그레이드 필요
grep -r 'Version.*:.*2\.[0-8]\.' /path/to/wp-graphql/ 2>/dev/null || git -C /path/to/wp-graphql describe --tags 2>/dev/null | grep -E '^v?2\.[0-8]'