🔍 CVE-2026-100618

8.5
CVSS Score
HIGH
2026-09-26
2026-09-30 18:18
✅ 완료

🇰🇷 한글 설명

Capgo 앱의 아이콘 업데이트 경로에서 권한 부여 결함이 발견되었습니다. 인증된 사용자가 특정 API 키를 사용하여 자신의 권한을 벗어난 다른 조직의 비공개 이미지 객체를 관리자 권한을 가진 워커를 통해 덮어쓰거나 수정할 수 있습니다.

💡 쉬운 설명

앱 아이콘을 바꾸는 기능을 악용하여, 원래는 볼 수 없는 다른 사람의 중요한 파일을 몰래 수정하거나 바꿀 수 있는 보안 약점이 있습니다. 공격자가 권한이 없는 파일에 접근할 수 있게 만드는 문제입니다.

🇺🇸 원문 (English)

Capgo (capgo.app) is affected by an authorization flaw in the app icon update path. The PUT /app/:id endpoint accepts a user-controlled `icon` value, normalizes it, and stores it in public.apps.icon_url without verifying that the image path belongs to the target app's own image namespace (e.g. org/{owner_org}/{app_id}/...). Updating apps.icon_url fires the on_app_update trigger, whose worker reads record.icon_url and calls cleanStoredImageMetadata(), which runs with service-role credentials (supabaseAdmin()) and downloads and re-uploads the referenced storage object with upsert: true. As a result, an authenticated holder of an app-limited write API key can cause the privileged worker to rewrite an out-of-scope private image object (for example an organization logo) that the key cannot read or write directly under Supabase Storage RLS. All versions are affected; no patched version was available at the time of the advisory.

📍 영향받는 시스템

Capgo (capgo.app) 모든 버전

⚔️ 공격 벡터

PUT /app/:id 엔드포인트에 권한이 없는 이미지 경로를 icon 값으로 전달하여 관리자 권한의 워커를 실행

🛡️ 대응 방법

해당 엔드포인트에서 입력된 이미지 경로가 해당 앱의 네임스페이스에 속하는지 검증하는 로직을 추가하고 패치를 적용해야 함

🔧 검증 코드

명령어 실행 후 권한이 없는 경로의 파일이 성공적으로 수정되거나 오류 없이 처리되면 취약점이 존재하는 것으로 판단함

Shell / Script
curl -X PUT -H 'Authorization: Bearer <API_KEY>' -d '{"icon": "../private/org_logo.png"}' https://capgo.app/app/<app_id>

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:H/A:N

💻 영향받는 소프트웨어

Windows iSCSI Target Service