🔍 CVE-2025-68147

8.1
CVSS Score
HIGH
2025-12-17
2026-10-13 11:10
✅ 완료

🇰🇷 한글 설명

Open Source Point of Sale(opensourcepos) 3.4.0 버전부터 3.4.2 버전 이전까지의 버전에서 저장된 크로스 사이트 스크립팅(XSS) 취약점이 존재합니다. 이 취약점은 '반품 정책' 구성 필드에서 사용자 입력을 제대로 필터링하지 않아 발생하며, 공격자는 이 필드에 악의적인 자바스크립트 코드를 삽입하여 사용자의 브라우저에서 코드가 실행되도록 할 수 있습니다.

💡 쉬운 설명

opensourcepos의 '반품 정책' 필드에 악의적인 코드를 삽입하여 사용자의 브라우저에서 코드가 실행되게 할 수 있습니다. 이는 세션 탈취,敏感 데이터 도용, 비인가 동작 등의 문제를 일으킬 수 있습니다. Open Source Point of Sale 3.4.2 버전으로 업데이트하거나 '반품 정책' 필드에 평문만 입력하여暂时적인 대책을 취할 수 있습니다.

🇺🇸 원문 (English)

Open Source Point of Sale (opensourcepos) is a web based point of sale application written in PHP using CodeIgniter framework. Starting in version 3.4.0 and prior to version 3.4.2, a Stored Cross-Site Scripting (XSS) vulnerability exists in the "Return Policy" configuration field. The application does not properly sanitize user input before saving it to the database or displaying it on receipts. An attacker with access to the "Store Configuration" (such as a rogue administrator or an account compromised via the separate CSRF vulnerability) can inject malicious JavaScript payloads into this field. These payloads are executed in the browser of any user (including other administrators and sales staff) whenever they view a receipt or complete a transaction. This can lead to session hijacking, theft of sensitive data, or unauthorized actions performed on behalf of the victim. The vulnerability has been patched in version 3.4.2 by ensuring the output is escaped using the `esc()` function in the receipt template. As a temporary mitigation, administrators should ensure the "Return Policy" field contains only plain text and strictly avoid entering any HTML tags. There is no code-based workaround other than applying the patch.

📍 영향받는 시스템

Open Source Point of Sale 3.4.0 ~ 3.4.2

⚔️ 공격 벡터

관리자 또는 계정 접근 권한을 가진 공격자가 '반품 정책' 필드에 악의적인 자바스크립트 코드를 삽입

🛡️ 대응 방법

Open Source Point of Sale 3.4.2 버전으로 업데이트하거나 '반품 정책' 필드에 평문만 입력

🔧 검증 코드

로컬에서 Python을 실행하여 Open Source Point of Sale의 '반품 정책' 필드에 악의적인 코드가 삽입되었는지 확인합니다. 이 코드는 예제 URL을 사용하므로 실제 Open Source Point of Sale 설치 URL로 변경해야 합니다. 또한 이 코드는 간단한 확인 용도이며, 실제 취약점 진단에는 더详细한 검사가 필요할 수 있습니다.

Shell / Script
python -c "import requests; r = requests.get('https://example.com/opensourcepos/admin/receipt'); if '<script>' in r.text: print('{"result": "취약", "reason": "반품 정책 필드에 악의적인 코드 삽입"}'); else: print('{"result": "양호", "reason": "반품 정책 필드에 악의적인 코드 삽입되지 않음"}')"

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:N

💻 영향받는 소프트웨어

PHP