Skip to content

Commit fe9bbae

Browse files
committed
docs(security): 2026-07-24 post-audit diff review — MDS072 SSRF
Diff review of the 110 files merged since the 2026-07-17 review (base d496596..d4af5d5). The window's whole security story is the new MDS072 external-link-check rule — mdsmith's first rule that makes outbound HTTP at lint time. Findings (all confirmed): - S001 (Medium, CWE-918): MDS072 probes document-supplied URLs with no private/loopback/link-local/metadata filtering and follows redirects with the default client — blind SSRF/internal-service oracle reachable from check, fix, and the LSP diagnostics-on-open path when enabled in .mdsmith.yml. Response body is discarded, so no direct exfil (deciding factor for Medium vs High). - S002 (Low, CWE-770): probe count is bounded by concurrency but not in total, making a hostile document an egress/DoS amplifier. - S003 (Info): telemetry.md still asserts zero runtime egress and omits the opt-in MDS072 exception. Panic containment and the §0 baseline (no exec/spawn sink, recipes not executed) reconfirmed. Fixes scheduled as plan 2607242010 (SSRF/egress hardening) and 2607242011 (docs hardening batch). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NT4Fth7C1skiUkriawFk5c
1 parent d4af5d5 commit fe9bbae

8 files changed

Lines changed: 611 additions & 12 deletions

File tree

PLAN.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,4 +257,6 @@ footer: |
257257
| 2607171900 | 🔳 | opus | [Slidev structure rule (MDS073) — validate layouts, slots, fields, and frontmatter keys per slide](plan/2607171900_slidev-structure-rule.md) |
258258
| 2607191917 | 🔲 | haiku | [Add dedicated unit tests for printInitCatalog and setInitUsage](plan/2607191917_arch-fix-printinitcatalog-unit-test.md) |
259259
| 2607191918 | 🔲 | haiku | [Deduplicate isClaimed between internal/schema and requiredstructure](plan/2607191918_arch-fix-isclaimed-dedup.md) |
260+
| 2607242010 | 🔲 | sonnet | [MDS072 external-link-check: SSRF and egress hardening](plan/2607242010_mds072-ssrf-network-hardening.md) |
261+
| 2607242011 | 🔲 | haiku | [Security hardening batch — 2026-07-24](plan/2607242011_security-hardening-batch-2026-07-24.md) |
260262
<?/catalog?>

SECURITY.md

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,17 @@ header: |
6464
|------|--------|-------|
6565
row: "| {date} | [{title}]({filename}) | {scope} |"
6666
?>
67-
| Date | Review | Scope |
68-
| ---------- | ---------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
69-
| 2026-07-17 | [mdsmith post-audit diff review — 2026-07-17](docs/security/2026-07-17-post-audit-diff-review/report.md) | diff since the 2026-07-10 post-audit diff review — SARIF 2.1.0 output, apm-input-token placeholder, the init --add pack surface, the okf starter, and the perf/schema churn |
70-
| 2026-07-10 | [mdsmith post-audit diff review — 2026-07-10](docs/security/2026-07-10-post-audit-diff-review/report.md) | diff since the 2026-07-03 post-audit diff review — word-list file loading, the F001/F002 fixes, directive-engine workspace containment, CLI/engine parser, CI/supply chain |
71-
| 2026-07-03 | [mdsmith post-audit diff review — 2026-07-03](docs/security/2026-07-03-post-audit-diff-review/report.md) | diff since the 2026-06-19 full-repo audit — directive engine, CLI/engine core, LSP, VS Code extension, CI/supply chain |
72-
| 2026-06-19 | [mdsmith full-repo security audit — 2026-06-19](docs/security/2026-06-19-full-repo-audit/report.md) | full repo — all seven threat-model surfaces |
73-
| 2026-06-19 | [LSP server and VS Code extension security audit](docs/security/2026-06-19-lsp-vscode-audit/report.md) | LSP server and VS Code extension |
74-
| 2026-06-12 | [mdsmith security audit — 2026-06-12](docs/security/2026-06-12-full-repo-audit/report.md) | full repo — all seven threat-model surfaces |
75-
| 2026-06-12 | [Git integration and LSP server audit](docs/security/2026-06-12-git-lsp-audit/report.md) | Git integration and LSP server |
76-
| 2026-06-09 | [mdsmith security audit — 2026-06-09](docs/security/2026-06-09-full-repo-audit/report.md) | full repo — all surfaces |
77-
| 2026-05-12 | [Supply-Chain Hardening — mini-shai-hulud / TanStack Class](docs/security/2026-05-12-supply-chain-hardening/report.md) | npm, PyPI, VS Code Marketplace, and Open VSX publishing surface; GitHub Actions CI/CD; lockfile and lifecycle-script handling. |
78-
| 2026-04-05 | [Adversarial Markdown Input](docs/security/2026-04-05-adversarial-markdown/report.md) | Adversarial markdown input causing unintended side effects on the host machine |
67+
| Date | Review | Scope |
68+
| ---------- | ---------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
69+
| 2026-07-24 | [mdsmith post-audit diff review — 2026-07-24](docs/security/2026-07-24-post-audit-diff-review/report.md) | diff since the 2026-07-17 post-audit diff review — the new MDS072 external-link-check network-probing rule, the MDS073 slidev slide-structure rule, foreign managed-region protection for fix, the merge-driver -merge scoping fix, and the init.go split |
70+
| 2026-07-17 | [mdsmith post-audit diff review — 2026-07-17](docs/security/2026-07-17-post-audit-diff-review/report.md) | diff since the 2026-07-10 post-audit diff review — SARIF 2.1.0 output, apm-input-token placeholder, the init --add pack surface, the okf starter, and the perf/schema churn |
71+
| 2026-07-10 | [mdsmith post-audit diff review — 2026-07-10](docs/security/2026-07-10-post-audit-diff-review/report.md) | diff since the 2026-07-03 post-audit diff review — word-list file loading, the F001/F002 fixes, directive-engine workspace containment, CLI/engine parser, CI/supply chain |
72+
| 2026-07-03 | [mdsmith post-audit diff review — 2026-07-03](docs/security/2026-07-03-post-audit-diff-review/report.md) | diff since the 2026-06-19 full-repo audit — directive engine, CLI/engine core, LSP, VS Code extension, CI/supply chain |
73+
| 2026-06-19 | [mdsmith full-repo security audit — 2026-06-19](docs/security/2026-06-19-full-repo-audit/report.md) | full repo — all seven threat-model surfaces |
74+
| 2026-06-19 | [LSP server and VS Code extension security audit](docs/security/2026-06-19-lsp-vscode-audit/report.md) | LSP server and VS Code extension |
75+
| 2026-06-12 | [mdsmith security audit — 2026-06-12](docs/security/2026-06-12-full-repo-audit/report.md) | full repo — all seven threat-model surfaces |
76+
| 2026-06-12 | [Git integration and LSP server audit](docs/security/2026-06-12-git-lsp-audit/report.md) | Git integration and LSP server |
77+
| 2026-06-09 | [mdsmith security audit — 2026-06-09](docs/security/2026-06-09-full-repo-audit/report.md) | full repo — all surfaces |
78+
| 2026-05-12 | [Supply-Chain Hardening — mini-shai-hulud / TanStack Class](docs/security/2026-05-12-supply-chain-hardening/report.md) | npm, PyPI, VS Code Marketplace, and Open VSX publishing surface; GitHub Actions CI/CD; lockfile and lifecycle-script handling. |
79+
| 2026-04-05 | [Adversarial Markdown Input](docs/security/2026-04-05-adversarial-markdown/report.md) | Adversarial markdown input causing unintended side effects on the host machine |
7980
<?/catalog?>

0 commit comments

Comments
 (0)