@@ -222,6 +222,16 @@ serves private account or organization feeds. Non-ClawHub feed URLs do not
222222inherit this trust and must either use an explicitly configured trust root or an
223223explicit unsigned opt-in.
224224
225+ OpenClaw must not bootstrap trust by downloading ClawHub's initial public key
226+ from the same feed host, such as a ` /public-key ` endpoint. If that host is
227+ compromised, the attacker could serve both a malicious feed and a matching key.
228+ The initial ClawHub public key should come from OpenClaw's shipped artifacts,
229+ source-controlled release metadata, or an operator-controlled local
230+ configuration channel. ClawHub can store the corresponding private signing key
231+ in its deployment secret store and may expose public-key metadata for human
232+ inspection, but that metadata is informational until verified by an already
233+ trusted root or a signed rotation document.
234+
225235``` jsonc
226236{
227237 " catalog" : {
@@ -394,6 +404,12 @@ for a configured signed remote feed. `verification.trustUrl` is optional; when
394404absent, the bundled ClawHub root or configured local keys directly verify feed
395405envelopes.
396406
407+ A public-key discovery endpoint can help operators inspect or compare keys, but
408+ it is not a trust bootstrap mechanism. Clients should accept a new ClawHub feed
409+ signing key only when it is bundled in a trusted OpenClaw release, configured by
410+ the local operator, or delivered through a rotation document signed by an
411+ already trusted key.
412+
397413### Trust verification implementation series
398414
399415The first hosted-feed implementation has already landed the transport, fallback,
0 commit comments