🇰🇷 한글 설명
Pipelines-as-Code의 GitHub App 제공자가 웹훅 이벤트를 처리할 때 서명 검증 전에 X-GitHub-Enterprise-Host 헤더를 신뢰하여 발생하는 취약점입니다. 인증되지 않은 공격자가 조작된 호스트를 지정하면 컨트롤러가 로컬에서 서명된 GitHub App JWT를 공격자의 서비스로 전송하게 됩니다. 노출된 JWT를 통해 공격자는 해당 앱의 권한 범위 내에서 설치 액세스 토큰을 생성하려고 시도할 수 있습니다.
💡 쉬운 설명
해커가 가짜 주소를 보낸 웹훅 메시지를 통해 시스템이 가진 중요한 보안 열쇠(JWT)를 해커의 서버로 직접 보내게 만드는 취약점입니다. 이 열쇠를 손에 넣은 해커는 해당 시스템의 권한을 도용하여 허가되지 않은 작업을 수행할 수 있습니다.
🇺🇸 원문 (English)
Pipelines-as-Code is a CI/CD system that lets users define Tekton pipelines in source code repositories. Prior to 0.37.8, 0.39.6, 0.42.1, and 0.48.0, the GitHub App provider accepts X-GitHub-Enterprise-Host as the API host while processing webhook events containing an installation.id, before webhook signature validation or confirmation that the host matches the repository URL in the signed payload. An unauthenticated attacker who can reach the webhook endpoint can select an attacker-controlled host and cause the controller to send a locally signed GitHub App JWT to that service. The exposed JWT may be used to attempt to mint installation access tokens during its validity window, subject to the GitHub App installation and permissions. The incoming webhook installation-lookup path is also affected, but exploitation of that path requires the valid incoming webhook secret for the target Repository CR. This issue is fixed in versions 0.37.8, 0.39.6, 0.42.1, and 0.48.0.
📍 영향받는 시스템
Pipelines-as-Code 버전 0.37.8, 0.39.6, 0.42.1, 0.48.0 미만 버전
⚔️ 공격 벡터
인증되지 않은 공격자가 조작된 X-GitHub-Enterprise-Host 헤더를 포함한 웹훅 이벤트를 전송하여 JWT 탈취
🛡️ 대응 방법
Pipelines-as-Code를 수정된 버전(0.37.8, 0.39.6, 0.42.1, 0.48.0 이상)으로 즉시 업데이트
🔧 검증 코드
출력된 버전이 취약점이 해결된 버전(0.37.8, 0.39.6, 0.42.1, 0.48.0 이상)인지 확인하십시오.
pipelines-as-code --version 2>/dev/null || helm list -n pipelines | grep pipelines-as-code
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
💻 영향받는 소프트웨어
Windows iSCSI Target Service