| 제목 | deepseek-ai DeepSeek Harness ≤ `0.1.0-rc.5` Improper Resolution of Path Equivalence |
|---|
| 설명 | When dsh loads the bundle layer of a profile (`loadProfile` in `packages/boot/app-boot/src/profile.ts`), it reads each bundle's `package.json` and takes the declared `dsh.bundle.patch` field value (referred to as `declared`). It only checks whether this value is `undefined`, then directly uses `path.join(packageDir, declared)` to construct the absolute path of the patch file and reads it.
Because `declared` is entirely controlled by the bundle package's `package.json` (i.e., controllable by an attacker through a malicious package installed via `dsh plugin add`), and there is no path containment/traversal validation before concatenation, an attacker can include `../` segments or an absolute path in `declared`, causing `path.join` to escape the bundle package directory and point to arbitrary files outside the package directory. `loadProfile` then uses `loadOverlayPatches` to read that out-of-bounds path and parse it as a dsh patch list.
Combined with the diagnostic commands `dsh --profile <name> --dump-config` / `--dump-default-config` (which only parse, do not boot, and do not evaluate `!!js`), the parsed content of the traversed file is output to stdout, thereby disclosing arbitrary YAML/JSON file contents outside the package directory (such as configuration files containing credentials). This information disclosure impact is independent of the already reported `!!js` arbitrary code execution (eval sink): on the normal startup (boot) path, if the traversed file contains `!!js` expressions, they will also be evaluated (flowing into the same reported eval sink); whereas the `--dump-config` path discloses file contents without executing any code. |
|---|
| 원천 | ⚠️ https://github.com/deepseek-ai/deepseek-harness/discussions/3354 |
|---|
| 사용자 | rockmelodeis (UID 100628) |
|---|
| 제출 | 2026. 08. 19. AM 11:17 (1 월 ago) |
|---|
| 모더레이션 | 2026. 09. 28. AM 09:14 (1 month later) |
|---|
| 상태 | 수락 |
|---|
| VulDB 항목 | 410989 [DeepSeek deepseek-harness 까지 0.1.7-rc.2 Bundle Patch profile.ts loadProfile dsh.bundle.patch 디렉토리 순회] |
|---|
| 포인트들 | 20 |
|---|