🇰🇷 한글 설명
STACKIT IaaS API의 PUT servers service-accounts 엔드포인트에 권한 검증 누락이 존재합니다. 인증된 저권한 공격자가 자신이 통제하는 가상머신에 임의의 서비스 계정을 권한 확인 없이 연결하고, IMDS를 통해 해당 계정의 OAuth2 토큰을 획득하여 그 권한으로 행동할 수 있습니다. 영향은 공격자 자신의 프로젝트로 제한되며, 교차 프로젝트 및 교차 조직 공격은 Identity Provider의 프로젝트 매칭 검증으로 차단됩니다.
💡 쉬운 설명
권한이 없는 일반 사용자가 자신의 서버에 다른 서비스 계정을 몰래 연결할 수 있는 문제입니다. 이를 통해 해당 계정의 권한을 빌려 쓸 수 있지만, 피해 범위는 공격자 본인의 프로젝트 내부로 한정됩니다.
🇺🇸 원문 (English)
STACKIT IaaS API contains a missing authorization check in the PUT servers service-accounts endpoint. An authenticated, low-privileged attacker can attach an arbitrary service account to a virtual machine they control without validation of their permission to use it, then query the Instance Metadata Service (IMDS) to retrieve an OAuth2 token for that service account and act with its privileges. The impact is confined to the attacker’s own project. The STACKIT Identity Provider enforces strict project matching between the target VM and the requested service account during token impersonation, so cross-project and cross-organization exploitation is not possible. Any further access is bounded by the IAM roles already assigned to the targeted service account.
📍 영향받는 시스템
STACKIT IaaS API (servers service-accounts 엔드포인트를 사용하는 모든 버전, 제조사 패치 버전 확인 필요)
⚔️ 공격 벡터
저권한 인증 사용자가 PUT servers service-accounts API로 자신의 VM에 임의 서비스 계정을 연결한 뒤 IMDS에서 OAuth2 토큰을 발급받아 해당 권한으로 작업
🛡️ 대응 방법
STACKIT 공지에 따라 API 권한 검증 패치를 적용하고, 서비스 계정 IAM 역할을 최소 권한으로 점검
🔧 검증 코드
HTTP 403 또는 401 응답이면 권한 검증이 동작하는 것이고, 200/204 응답이면 취약한 상태일 가능성이 있으므로 STACKIT 패치 적용 여부를 즉시 확인해야 합니다.
curl -s -o /dev/null -w '%{http_code}' -X PUT https://api.stackit.cloud/ -H 'Authorization: Bearer <LOW_PRIV_TOKEN>' 2>/dev/null
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
💻 영향받는 소프트웨어
IBM Verify Identity Access