🇰🇷 한글 설명
교육 기관용 배치 관리 시스템인 PlaciPy 1.0.0 버전에서 권한 부여(Authorization) 결함이 발견되었습니다. 인증된 사용자라면 학생의 이메일을 이용한 GET, PUT, DELETE API 요청을 통해 타인의 학생 정보를 조회, 수정 또는 삭제할 수 있습니다.
💡 쉬운 설명
로그인만 하면 다른 학생의 개인 정보를 마음대로 보거나 수정하고 삭제할 수 있는 보안 허점이 있습니다. 관리자가 아닌 일반 사용자도 권한 없이 시스템의 중요한 데이터를 조작할 수 있는 상태입니다.
🇺🇸 원문 (English)
PlaciPy is a placement management system designed for educational institutions. In version 1.0.0, the GET /api/students/:email
PUT /api/students/:email/status, and DELETE /api/students/:email routes in backend/src/routes/student.routes.ts only enforce authentication using authenticateToken but do not enforce authorization. The application does not verify whether the authenticated user owns the student record being accessed, has an administrative / staff role, or is permitted to modify or delete the target student.
📍 영향받는 시스템
PlaciPy version 1.0.0
⚔️ 공격 벡터
인증된 사용자가 API 경로의 이메일 파라미터를 타인의 것으로 변경하여 요청을 보내는 방식
🛡️ 대응 방법
해당 API 라우트에 사용자 역할(Role) 및 데이터 소유권 확인을 위한 권한 부여(Authorization) 로직을 추가해야 합니다.
🔧 검증 코드
본인의 토큰으로 타인의 이메일 경로에 요청을 보냈을 때, 403 Forbidden이 아닌 200 OK와 함께 데이터가 반환되면 취약한 것입니다.
curl -X GET -H 'Authorization: Bearer <valid_token>' https://<target>/api/students/<other_student_email>
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
💻 영향받는 소프트웨어
IBM Security Verify Access