🇰🇷 한글 설명
code100x의 Mobile API에서 인증 우회 취약점이 발견되었습니다. 공격자가 'g' HTTP 헤더에 조작된 JSON 페이로드를 삽입하면 인증 없이 임의의 사용자로 사칭할 수 있습니다. 이는 middleware.ts가 Auth-Key 헤더의 값을 검증하지 않고 신원 헤더 생성을 건너뛰기 때문에 발생하며, 결과적으로 관리자나 다른 사용자의 강의 데이터에 무단 접근할 수 있습니다.
💡 쉬운 설명
로그인하지 않은 공격자가 가짜 신분증을 만들어 시스템을 속이고 다른 사람의 정보를 훔쳐볼 수 있는 문제입니다. 특정 헤더 값을 조작하면 시스템이 공격자를 정상적인 사용자로 착각하게 됩니다.
🇺🇸 원문 (English)
code100x contains an authentication bypass vulnerability in the Mobile API that allows unauthenticated attackers to impersonate arbitrary users by supplying a crafted JSON payload in the 'g' HTTP header. The middleware in middleware.ts skips identity header generation when an Auth-Key header is present without validating its value, allowing attackers to inject a spoofed user identity header that the downstream route handler in the mobile courses endpoint accepts as trusted, granting unauthorized access to course data belonging to any enrolled user or administrator.
📍 영향받는 시스템
code100x Mobile API (middleware.ts를 사용하는 버전)
⚔️ 공격 벡터
HTTP 'g' 헤더에 조작된 JSON 페이로드를 삽입하여 사용자 신원을 위조하는 방식
🛡️ 대응 방법
middleware.ts에서 Auth-Key 헤더의 유효성을 검증하도록 로직을 수정하고, 신원 헤더 생성 로직을 강화해야 합니다.
🔧 검증 코드
명령어 실행 시 인증 없이 관리자(admin)의 데이터가 반환되거나 200 OK 응답이 오면 취약한 상태입니다.
curl -I -H 'Auth-Key: dummy' -H 'g: {"user_id":"admin"}' https://api.code100x.com/mobile/courses
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
💻 영향받는 소프트웨어
IBM Verify Identity Access