🔍 CVE-2026-49344

0.0
CVSS Score
UNKNOWN
2026-06-19
2026-10-25 23:10
✅ 완료

🇰🇷 한글 설명

Mercator는 정보 시스템 매핑을 위한 오픈소스 웹 애플리케이션입니다. 2025.05.19 이전 버전에서는 쿼리 엔진의 execute, schema, schemaModel 엔드포인트에 권한 검사가 없어, 읽기 전용 Auditor 역할을 포함한 모든 인증된 사용자가 User 모델을 포함한 범위 밖의 데이터를 조회할 수 있습니다. 또한 $hidden으로 선언된 password 컬럼이 필터 조건에서 제외되지 않아 LIKE 조건으로 값을 유추할 수 있습니다.

💡 쉬운 설명

인증된 일반 사용자가 원래 볼 수 없는 사용자 정보와 비밀번호 관련 데이터를 조회할 수 있는 취약점입니다. 데이터 변조나 서비스 중단은 발생하지 않습니다.

🇺🇸 원문 (English)

Mercator is an open source web application that enables mapping of the information system. Prior to version 2025.05.19, Mercator's Query Engine (`/admin/queries/execute`) accepts a JSON DSL (`from` / `select` / `filters` / `traverse` / `output`), translates it into an Eloquent query, and returns results as JSON. The controller method `QueryController::execute()` does not enforce an authorization gate, unlike `store()` and `massDestroy()` in the same controller which are correctly protected. As a result, any authenticated account — including the read-only Auditor role — can query models beyond its intended scope, including the `User` model. Additionally, the `password` column, although declared `$hidden`, is not excluded from filter predicates, which allows it to be used in `LIKE` conditions. The `schema()` and `schemaModel()` endpoints of the same controller are similarly unguarded. The Query Engine is read-only; integrity and availability are not affected. Version 2025.05.19 patches the issue.

📍 영향받는 시스템

Mercator 2025.05.19 이전 버전

⚔️ 공격 벡터

낮은 권한의 인증된 계정으로 /admin/queries/execute에 조작된 JSON DSL 요청을 보내 User 모델과 password 컬럼을 LIKE 조건으로 조회

🛡️ 대응 방법

Mercator를 2025.05.19 이상 버전으로 업데이트

🔧 검증 코드

execute 메서드 내 authorize 호출이 없다면 취약한 버전이며, 2025.05.19 이상 패치 버전에서는 권한 검사 코드가 존재해야 합니다.

Shell / Script
grep -rn "function execute" $(find / -name QueryController.php 2>/dev/null) 2>/dev/null | head -5

💻 영향받는 소프트웨어

Magento Open Source