🇰🇷 한글 설명
Open Source Point of Sale(opensourcepos)의 3.4.2 미만 버전에서 발생하는 IDOR 취약점입니다. 인증된 저권한 사용자가 employee_id 파라미터를 조작하여 관리자를 포함한 다른 사용자의 비밀번호 변경 기능에 접근할 수 있습니다. 이 문제는 애플리케이션이 객체 소유권이나 권한 검사를 수행하지 않아 발생합니다.
💡 쉬운 설명
로그인 권한이 있는 일반 사용자가 숫자 값 하나만 바꾸면 다른 사람, 심지어 관리자의 비밀번호까지 마음대로 바꿀 수 있는 보안 결함입니다. 시스템이 '이 사용자가 이 정보를 바꿀 권한이 있는지'를 제대로 확인하지 않아서 발생합니다.
🇺🇸 원문 (English)
Open Source Point of Sale (opensourcepos) is a web based point of sale application written in PHP using CodeIgniter framework. Prior to version 3.4.2, an Insecure Direct Object Reference (IDOR) vulnerability allows an authenticated low-privileged user to access the password change functionality of other users, including administrators, by manipulating the `employee_id` parameter. The application does not verify object ownership or enforce authorization checks. Version 3.4.2 adds object-level authorization checks to validate that the current user owns the employee_id being accessed.
📍 영향받는 시스템
Open Source Point of Sale (opensourcepos) version < 3.4.2
⚔️ 공격 벡터
인증된 사용자가 HTTP 요청의 employee_id 파라미터 값을 타인의 ID로 조작하여 전송
🛡️ 대응 방법
opensourcepos를 버전 3.4.2 이상으로 업데이트하여 객체 수준 권한 검사 기능을 적용
🔧 검증 코드
소스 코드 내에서 employee_id를 사용하는 컨트롤러를 확인하고, 해당 버전이 3.4.2 미만인지 체크하여 취약 여부를 판단합니다.
grep -r "employee_id" /path/to/opensourcepos/application/controllers/ | grep -v "3.4.2"
📊 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