Modules can call any JSON-RPC method via chain::request(chain_id, method, params); there is no allowlist ("No method allowlist, no re-encoding of params"). If the engine is configured with an RPC endpoint that exposes signing methods (eth_sign, eth_signTransaction, personal_unlockAccount), a malicious module could sign arbitrary transactions. Production endpoints are read-only in practice, so this is primarily operational. Fix: at minimum warn on dangerous methods, or document that operators must use read-only endpoints.
File: crates/nexum-engine/src/host/impls/chain.rs (approx lines 12-35)
Modules can call any JSON-RPC method via
chain::request(chain_id, method, params); there is no allowlist ("No method allowlist, no re-encoding of params"). If the engine is configured with an RPC endpoint that exposes signing methods (eth_sign,eth_signTransaction,personal_unlockAccount), a malicious module could sign arbitrary transactions. Production endpoints are read-only in practice, so this is primarily operational. Fix: at minimum warn on dangerous methods, or document that operators must use read-only endpoints.File:
crates/nexum-engine/src/host/impls/chain.rs(approx lines 12-35)