Closes two items from the platform/completeness audit appendices. Amber signature verification (audit "open verification item", LOW): reconstructSignedEvent() previously trusted whatever `sig` the external Amber signer app returned — it recomputed the event id but never verified the Schnorr signature. A compromised or buggy signer could therefore return a forged/garbage signature that the app would treat as valid and publish. Now verifyEvent() is run on the reconstructed event before it is returned; failures return null, which every caller already handles as an "incomplete signature" error. This single choke point covers all Amber paths: the native AmberIntent signer, AmberCallbackPage, and AmberCallbackHandler. F9 (LOW): pin MCP server versions in .mcp.json. Both js-dev-mcp and nostrbook/mcp were fetched at @latest, silently pulling the newest release into the agent tool environment every session. Pinned to the current exact versions (0.6.3 / 0.5.3) so upgrades are deliberate. Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
14 lines
No EOL
262 B
JSON
14 lines
No EOL
262 B
JSON
{
|
|
"mcpServers": {
|
|
"js-dev": {
|
|
"type": "stdio",
|
|
"command": "npx",
|
|
"args": ["-y", "@soapbox.pub/js-dev-mcp@0.6.3"]
|
|
},
|
|
"nostr": {
|
|
"type": "stdio",
|
|
"command": "npx",
|
|
"args": ["-y", "@nostrbook/mcp@0.5.3"]
|
|
}
|
|
}
|
|
} |