🇰🇷 한글 설명
Open Source Point of Sale의 품목 검색 기능에서 SQL 인젝션 취약점이 발견되었습니다. 커스텀 속성 검색 필터(search_custom)가 활성화된 경우, GET 파라미터의 입력값이 검증 없이 HAVING 절에 직접 삽입되어 인증된 공격자가 임의의 SQL 쿼리를 실행할 수 있습니다.
💡 쉬운 설명
검색창에 특수한 명령어를 입력하여 데이터베이스의 숨겨진 정보를 훔쳐볼 수 있는 취약점입니다. 권한이 있는 사용자가 시스템 내부의 중요한 데이터를 무단으로 조회하거나 조작할 수 있습니다.
🇺🇸 원문 (English)
Open Source Point of Sale is a web based point-of-sale application written in PHP using CodeIgniter framework. Versions contain an SQL Injection in the Items search functionality. When the custom attribute search feature is enabled (search_custom filter), user-supplied input from the search GET parameter is interpolated directly into a HAVING clause without parameterization or sanitization. This allows an authenticated attacker with basic item search permissions to execute arbitrary SQL queries. A patch did not exist at the time of publication.
📍 영향받는 시스템
Open Source Point of Sale (CodeIgniter 기반 PHP 애플리케이션)
⚔️ 공격 벡터
HTTP GET 요청의 search 파라미터를 통한 SQL 인젝션 공격
🛡️ 대응 방법
입력값에 대한 파라미터화 쿼리(Parameterized Query)를 적용하고 입력값 검증 로직을 추가해야 합니다.
🔧 검증 코드
명령어 실행 결과 search_custom 필터가 HAVING 절에 직접 사용되는 코드 라인이 출력되면 취약한 상태입니다.
grep -r "search_custom" . | grep "HAVING"