🇰🇷 한글 설명
Stump 0.1.10 이하 버전에서 updateSmartList 및 deleteSmartList GraphQL 뮤테이션이 생성자 확인 없이 공유된 AccessSmartList 권한에만 의존하는 취약점이 발견되었습니다. 이로 인해 권한을 가진 인증된 사용자는 다른 사용자의 스마트 리스트를 덮어쓰거나 삭제하고, 소유권을 탈취하여 원본 소유자의 접근을 차단할 수 있습니다.
💡 쉬운 설명
로그인한 사용자가 권한을 악용하여 다른 사람이 만든 목록을 마음대로 지우거나 수정할 수 있는 문제입니다. 공격자가 목록의 주인인 것처럼 속여서 원래 주인이 목록을 못 쓰게 만들 수도 있습니다.
🇺🇸 원문 (English)
In Stump through 0.1.10, the updateSmartList and deleteSmartList GraphQL mutations (crates/graphql/src/mutation/smart_lists.rs) depend only on the shared AccessSmartList permission and resolve the target list at Reader access (lacking a creator check). Any authenticated user with that permission can overwrite, delete, or take over another user's smart list. (updateSmartList sets creatorId to the caller identity, and can set visibility to PRIVATE, locking out the original owner.) NOTE: this is unrelated to the graphql crate on crates.io.
📍 영향받는 시스템
Stump 0.1.10 이하 버전
⚔️ 공격 벡터
권한이 있는 인증된 사용자가 GraphQL 뮤테이션을 통해 타인의 스마트 리스트 ID를 대상으로 조작 요청 전송
🛡️ 대응 방법
스마트 리스트 수정 및 삭제 시 요청자가 해당 리스트의 실제 생성자인지 확인하는 로직을 추가하여 패치해야 합니다.
🔧 검증 코드
출력된 버전이 0.1.10 이하인지 확인하여 취약 여부를 판단합니다.
cargo pkgid stump | grep -E '0\.1\.[0-9]{1,2}'