🔍 CVE-2026-32712

5.4
CVSS Score
MEDIUM
2026-04-07
2026-07-24 23:10
✅ 완료

🇰🇷 한글 설명

Open Source Point of Sale 3.4.3 이전 버전의 Daily Sales 관리 테이블에서 고객명(customer_name) 컬럼이 escape: false로 설정되어 있어 Stored XSS 취약점이 발생합니다. 고객 관리 권한을 가진 공격자가 고객의 이름 필드에 악성 JavaScript를 주입하면, Daily Sales 페이지를 조회하는 모든 사용자의 브라우저에서 실행됩니다.

💡 쉬운 설명

POS 시스템에서 고객 이름을 입력할 때 안전하지 않은 처리로 인해 악의적인 코드가 삽입될 수 있습니다. 이 코드는 시스템을 사용하는 다른 사람의 컴퓨터에서 자동으로 실행되어 정보 탈취 등의 피해를 줄 수 있습니다.

🇺🇸 원문 (English)

Open Source Point of Sale is a web based point-of-sale application written in PHP using CodeIgniter framework. Prior to 3.4.3, a Stored Cross-Site Scripting (XSS) vulnerability exists in the Daily Sales management table. The customer_name column is configured with escape: false in the bootstrap-table column configuration, causing customer names to be rendered as raw HTML. An attacker with customer management permissions can inject arbitrary JavaScript into a customer's first_name or last_name field, which executes in the browser of any user viewing the Daily Sales page. This vulnerability is fixed in 3.4.3.

📍 영향받는 시스템

Open Source Point of Sale 3.4.2 이하 (PHP, CodeIgniter 기반)

⚔️ 공격 벡터

고객 관리 권한 보유자가 고객의 first_name 또는 last_name 필드에 JavaScript 코드 주입

🛡️ 대응 방법

3.4.3 이상으로 업그레이드하거나 bootstrap-table 컬럼 설정에서 escape: true로 변경

🔧 검증 코드

escape: false 설정이 있는 줄이 출력되면 취약점이 존재하는 것이며, 아무것도 출력되지 않거나 escape: true만 보이면 패치가 적용된 상태입니다.

Shell / Script
grep -r 'escape.*false' /path/to/ospos/assets/js/ | grep -i 'customer\|sales'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

PHP