| 제목 | dexhunter kaggle-mcp 0.1.0 Path Traversal |
|---|
| 설명 | The prepare_kaggle_dataset tool expects competition_id to be a Kaggle competition slug, but it uses that value directly as a filesystem path component when creating the local extraction directory:
data_dir = Path(__file__).parent / "data" / arguments["competition_id"]
os.makedirs(data_dir, exist_ok=True)
Because no slug validation, canonicalization, or root-boundary check is applied, traversal sequences such as ../../../../tmp/poc escape the intended src/kaggle_mcp/data/ tree. The directory is created before Kaggle API download or extraction occurs, so the path traversal is reachable even when the later download fails.
|
|---|
| 원천 | ⚠️ https://github.com/dexhunter/kaggle-mcp/issues/1 |
|---|
| 사용자 | MidA (UID 96794) |
|---|
| 제출 | 2026. 04. 10. PM 12:55 (6 개월 ago) |
|---|
| 모더레이션 | 2026. 04. 26. PM 10:02 (16 days later) |
|---|
| 상태 | 수락 |
|---|
| VulDB 항목 | 359748 [dexhunter kaggle-mcp 까지 406127ffcb2b91b8c10e20e6c2ca787fbc1dc92d src/kaggle_mcp/server.py prepare_kaggle_dataset competition_id 디렉토리 순회] |
|---|
| 포인트들 | 20 |
|---|