| タイトル | MingSoft ms-mdiy 3.0.6 Exposure of Access Control List Files to an Unauthorized Control |
|---|
| 説明 | **MingSoft MCMS ms-mdiy: Information disclosure via unauthenticated `/mdiy/form/get` and `/mdiy/dict/list` endpoints**
### Description
The following front-end endpoints are accessible without authentication and leak internal configuration:
| Endpoint | Disclosed data |
|---|---|
| `GET /mdiy/form/get.do?modelName=<name>` | Full `ModelEntity`: `modelJson` (form HTML/JS/SQL templates), `modelTableName`, `fieldMap`, field rules, etc. |
| `GET /mdiy/dict/list.do?dictType=<type>` | System dictionary entries (e.g. article attributes: featured, slideshow, headline, etc.) |
| `GET /mdiy/dict/listExcludeApp.do` | Cross-site dictionary data |
When `isWebSubmit=true`, `/mdiy/form/get` returns the complete model definition, significantly lowering the effort required to exploit VULN-1 and VULN-2.
###Root Cause
1. Anonymous access policy for `/mdiy/**`.
2. `web.FormAction#get` returns the full entity via `ResultData.success(modelEntity)` without field filtering.
3. `web.DictAction#list` requires no authentication; only checks that `dictType` is non-empty.
### Impact
- Exposure of database table names, field mappings, and business logic scripts.
- Enumeration of dictionary values useful for business-logic abuse and social engineering.
- Provides precise parameters (`modelName`, `modelId`, column names) for SQL injection and unauthorized data access.
### CVSS 3.1 Vector (suggested)
```
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Base Score: 5.3 (Medium)
```
### Reproduction Steps and PoC
**Model information disclosure:**
```http
GET /mdiy/form/get.do?modelName=liuyan HTTP/1.1
Host: target:8080
```
Response includes `modelTableName: "MDIY_FORM_LIUYANLMFF"`, full `modelJson` (HTML/JS/SQL), `fieldMap`, etc.
**Dictionary information disclosure:**
```http
GET /mdiy/dict/list.do?dictType=文章属性 HTTP/1.1
Host: target:8080
```
*(URL-encode non-ASCII `dictType` values as needed.)*
Response returns multiple `dictLabel` / `dictValue` pairs (e.g. featured, slideshow, etc.).
### Remediation
1. `form/get` should return only the minimum fields needed to render the form; **do not** expose SQL, scripts, or table schemas from `modelJson`.
2. Require authentication for dictionary APIs, or restrict them to an explicitly public subset.
3. Apply consistent access control and response field filtering across all `/mdiy/**` endpoints.
---
|
|---|
| ユーザー | murkfox (UID 15240) |
|---|
| 送信 | 2026年06月23日 07:42 (2 月 ago) |
|---|
| モデレーション | 2026年08月08日 20:48 (2 months later) |
|---|
| ステータス | 承諾済み |
|---|
| VulDBエントリ | 387211 [MingSoft MCMS 迄 3.0.6 ms-mdiy /mdiy/form/get 情報漏えい] |
|---|
| ポイント | 17 |
|---|