Commit 6d402a8
committed
docs(skill): default --block-private-networks for agent-driven examples
Adds a new Security section to SKILL.md and turns --block-private-networks
on by default in every canonical command across MCP, CLI, and CDP. The
flag already exists in the Lightpanda binary — this is a docs/defaults
change, not a feature.
Threat model
============
Lightpanda executes page JavaScript. A skill specifically marketed for
agent integrations (Claude Code, Openclaw, others — per the README) is
going to feed it URLs that originate outside the agent's control:
search-result links, redirects, page-internal fetch calls, embedded
<iframe> srcs. Any of those can resolve to localhost, RFC1918 ranges,
or cloud-metadata endpoints (169.254.169.254 etc.). This is plain old
SSRF — the only novelty is the agent context, which makes it more
likely the user didn't manually vet the URL.
--block-private-networks is the kernel-level IP filter Lightpanda
already provides for exactly this case: it inspects post-DNS
destination IPs and rejects anything in private ranges, regardless of
what triggered the request (page JS, redirect chain, subresource).
Changes
=======
- New 'Security: block private networks for agent-driven use' section
between Install and 'When to Use What', explaining the threat model.
- Flag added to: claude mcp add, MCP JSON args, lead + 3 follow-up CLI
fetch examples, canonical lightpanda serve command.
- --block-private-networks + --block-cidrs documented in CLI fetch
options list with brief descriptions and a back-link to Security.
- --block-private-networks documented in CDP serve options list.
- One-paragraph callout under canonical serve command explaining CDP
has the same SSRF surface as MCP/CLI flows.
- scripts/install.sh: final Run with: echo updated to match new
canonical command.
Users with legitimate need to hit private hosts (own dev server,
staging behind VPN, intranet docs) just drop the flag — explicit
guidance for when that's appropriate is included throughout.1 parent bc562f3 commit 6d402a8
2 files changed
Lines changed: 19 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
37 | 41 | | |
38 | 42 | | |
39 | 43 | | |
| |||
51 | 55 | | |
52 | 56 | | |
53 | 57 | | |
54 | | - | |
| 58 | + | |
55 | 59 | | |
56 | 60 | | |
57 | 61 | | |
| |||
63 | 67 | | |
64 | 68 | | |
65 | 69 | | |
66 | | - | |
| 70 | + | |
67 | 71 | | |
68 | 72 | | |
69 | 73 | | |
| |||
111 | 115 | | |
112 | 116 | | |
113 | 117 | | |
114 | | - | |
| 118 | + | |
115 | 119 | | |
116 | 120 | | |
117 | 121 | | |
| |||
122 | 126 | | |
123 | 127 | | |
124 | 128 | | |
| 129 | + | |
| 130 | + | |
125 | 131 | | |
126 | 132 | | |
127 | 133 | | |
| 134 | + | |
| 135 | + | |
128 | 136 | | |
129 | 137 | | |
130 | | - | |
| 138 | + | |
131 | 139 | | |
132 | 140 | | |
133 | 141 | | |
134 | 142 | | |
135 | | - | |
| 143 | + | |
136 | 144 | | |
137 | 145 | | |
138 | 146 | | |
139 | 147 | | |
140 | | - | |
| 148 | + | |
141 | 149 | | |
142 | 150 | | |
143 | 151 | | |
| |||
146 | 154 | | |
147 | 155 | | |
148 | 156 | | |
149 | | - | |
| 157 | + | |
150 | 158 | | |
151 | 159 | | |
| 160 | + | |
| 161 | + | |
152 | 162 | | |
153 | 163 | | |
154 | 164 | | |
155 | 165 | | |
| 166 | + | |
156 | 167 | | |
157 | 168 | | |
158 | 169 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
132 | 132 | | |
133 | 133 | | |
134 | 134 | | |
135 | | - | |
| 135 | + | |
0 commit comments