🔍 CVE-2026-109181

4.3
CVSS Score
MEDIUM
2026-10-12
2026-10-18 13:16
✅ 완료

🇰🇷 한글 설명

jshERP 3.6 이하 버전에서 인증된 사용자가 권한을 우회하여 다른 사용자의 청구서를 조회할 수 있는 취약점이 발견되었습니다. 공격자가 GET /depotHead/list 요청 시 JSON 검색 조건에 purchaseStatus=0을 추가하면, 시스템이 생성자 필터를 무시하고 모든 테넌트의 구매, 판매 및 재고 청구서를 노출하게 됩니다.

💡 쉬운 설명

로그인한 사용자가 특정 규칙을 이용해 자신이 볼 수 없는 다른 사람의 구매 내역이나 재고 정보를 몰래 훔쳐볼 수 있는 문제입니다. 검색창에 특정 명령어를 몰래 끼워 넣는 방식으로 발생합니다.

🇺🇸 원문 (English)

jshERP through 3.6 contains an authorization bypass vulnerability that allows authenticated users restricted to personal or department data to list other users' bills by adding a purchaseStatus value. Attackers can include purchaseStatus=0 in the search JSON on GET /depotHead/list, causing DepotHeadService.select to drop the creator filter and expose all tenant purchase, sales and inventory bills.

📍 영향받는 시스템

jshERP version 3.6 and below

⚔️ 공격 벡터

인증된 사용자가 GET /depotHead/list 요청 시 JSON 파라미터에 purchaseStatus=0을 삽입하여 필터링 우회

🛡️ 대응 방법

jshERP를 최신 보안 패치가 적용된 버전으로 업데이트하거나, DepotHeadService.select 로직에서 purchaseStatus 값에 따른 필터링 검증 로직을 강화해야 합니다.

🔧 검증 코드

명령어 실행 결과로 본인 소유가 아닌 타인의 청구 데이터가 포함된 JSON 응답이 반환되면 취약한 상태입니다.

Shell / Script
curl -X GET 'http://<target>/depotHead/list' -H 'Content-Type: application/json' -d '{"purchaseStatus":0}'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Spring Data REST