🇰🇷 한글 설명
Pipelines-as-Code 시스템에서 GitHub App 설치 토큰의 범위가 트리거된 저장소로 제한되지 않는 취약점이 발견되었습니다. 이로 인해 특정 저장소에 푸시 권한이 있는 사용자가 동일한 설치 범위 내의 다른 비공개 저장소에 있는 Tekton 정의를 읽어낼 수 있습니다. 해당 문제는 0.37.8, 0.39.6, 0.42.1, 0.48.0 버전에서 수정되었습니다.
💡 쉬운 설명
하나의 권한으로 여러 저장소를 관리할 때, 특정 저장소에만 적용되어야 할 열쇠가 모든 저장소에 통하는 문제가 발생했습니다. 이를 통해 공격자는 권한이 없는 다른 비공개 저장소의 설정 내용을 몰래 훔쳐볼 수 있습니다.
🇺🇸 원문 (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, a GitHub App installation token created during webhook processing is not scoped to the repository that triggered the event when the App is installed across multiple repositories. A user with push access to one repository can submit a PipelineRun containing a pipelinesascode.tekton.dev/task remote task annotation that targets a private repository in the same installation. When ScopeTokenToListOfRepos returns no explicit scope, the missing triggering repository ID leaves the token able to access the entire installation. Pipelines-as-Code resolves and inlines the remote private task with that token, disclosing the repository's Tekton definitions. The demonstrated impact is read-only and does not provide write access. 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
⚔️ 공격 벡터
특정 저장소에 푸시 권한을 가진 사용자가 원격 태스크 주석을 사용하여 다른 비공개 저장소의 정보를 요청함
🛡️ 대응 방법
Pipelines-as-Code를 최신 보안 패치 버전(0.37.8, 0.39.6, 0.42.1, 0.48.0 이상)으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 취약한 버전 범위에 포함되는지 확인하십시오.
pipelines-as-code --version 2>/dev/null || echo 'version not found'