Files
WRNexusJS/docs
ClintchizandClaude Opus 5 fcf4ed3039 docs: close a prototype-chain authorization bypass in the plan
server.ts looked procedures up with plain property indexing, so every
Object.prototype member resolved as truthy. A prototype member carries no
`permission`, so the permission gate was skipped entirely.

Verified: with a contract whose only procedure declares a permission and a
checkPermission that always denies, invoke("add") correctly returns
RPC_DENIED, while invoke("constructor") returns {"ok":true,"value":{"a":2}}
and the gate never runs.

Reachable over the wire as POST /__wrnexus/rpc/<service>/constructor by
anything that clears the internal-caller check - i.e. any workspace app.

Fixed at both layers: Object.hasOwn for the procedure and handler lookups,
and a character-class guard on the path segments before they are used as
lookup keys.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 19:42:49 +05:30
..
2026-08-01 01:09:58 +05:30
2026-07-22 17:29:08 +05:30
2026-07-27 12:42:18 +05:30
2026-07-22 17:29:08 +05:30
2026-07-29 12:51:10 +05:30
2026-07-29 12:51:10 +05:30
2026-08-02 23:18:51 +05:30
2026-07-27 12:42:18 +05:30
2026-08-02 23:18:51 +05:30
2026-08-02 23:18:51 +05:30
2026-08-02 23:18:51 +05:30
2026-08-02 23:18:51 +05:30
2026-08-02 23:18:51 +05:30
2026-07-22 17:29:08 +05:30
2026-07-27 12:42:18 +05:30
2026-07-22 17:29:08 +05:30
2026-07-27 12:42:18 +05:30
2026-08-03 19:47:30 +05:30
2026-08-04 12:19:09 +05:30