🇰🇷 한글 설명
pretix API를 통해 내보내기 작업을 생성할 때 사용되는 UUID를 검증하는 과정에서 보안 결함이 발견되었습니다. 특정 API 엔드포인트가 다운로드 요청 시 해당 UUID가 올바른 사용자에게 속한 파일인지 확인하지 않아 발생합니다.
💡 쉬운 설명
파일을 다운로드할 때 사용하는 일종의 '파일 열쇠(UUID)'가 본인 것인지 확인하는 절차가 빠져 있는 상태입니다. 다만, 공격자가 무작위로 유효한 열쇠를 알아내기가 매우 어렵기 때문에 실제 공격은 쉽지 않습니다.
🇺🇸 원문 (English)
When creating an export through the pretix API, API clients are
returned an UUID value for their export job (a long, random string like
35742818-c375-4d15-839f-d49aecce94d6). Using this UUID, the API client
can then request the actual file for download. The same kind of UUID is
used in other places in pretix when temporary files are generated for
internal use or download.
One remaining API endpoint, however, wrongfully did not verify if the
UUID used for download actually belongs to a file that is supposed to
be downloadable and belongs to the correct user. In reality, this is
hard to exploit because an attacker would need to have access to a valid
UUID for the file they desire which is unlikely to happen without a
separate security problem giving them access to logs etc.
📍 영향받는 시스템
pretix (API 엔드포인트 미검증 버전)
⚔️ 공격 벡터
유효한 파일 UUID를 탈취한 후, 권한이 없는 사용자가 해당 UUID를 사용하여 파일을 직접 다운로드 시도
🛡️ 대응 방법
API 엔드포인트에서 다운로드 요청 시 UUID의 소유권 및 다운로드 가능 여부를 검증하도록 패치 적용
🔧 검증 코드
권한이 없는 UUID 요청 시 403 Forbidden이 반환되는지, 혹은 200 OK로 파일이 다운로드되는지 확인
curl -s -I https://<target-api-endpoint>/<target-uuid> | grep -E 'HTTP/1.1 200|HTTP/1.1 403'
💻 영향받는 소프트웨어
IBM Security Verify Access