Open b4d2 opened 2 years ago
@JimLarson @michaelfig This does not have an area label that is covered by our weekly tech / planning meetings, so it will likely fall through the cracks for planning for MN-1. Can you please assign the proper label? We cover: agd, agoric-cosmos, amm, core economy, cosmic-swingset, endo, getrun, governance, installation-bundling, metering, run-protocol, staking, swingset, swingset-runner, token economy, ui, wallet, zoe, zoe contract
to note - while at first this appears to be a self-footgun, one could patch the issue on their ag-solo node, and send a packet to the chain where this issue exists, which would result in the same json parse crash behavior but on all of the validators
It is probably more important for us to harden our exposed endpoints, e.g. https://github.com/Agoric/agoric-sdk/issues/4068 and https://github.com/Agoric/agoric-sdk/issues/3878.
the same json parse crash behavior but on all of the validators
I don't want to make it sound like we're not trying to address this vulnerability in the chain: we definitely are! The only reason we aren't prioritising this particular issue, as @Tartuffo mentioned, is because it is specifically about the solo node, so we can legitimately fix the chain issue without needing to work on the solo issue.
Describe the bug
It appears that some of the connective tissue between the cosmos layer and the JS layer where json message length is treated differently, resulting in a valid JS message, but when parsing it on the golang layer it is not. The reproduction steps below crash the local node, but all vats continue to run normally (including http)
To Reproduce
Steps to reproduce the behavior:
agoric start local-chain --reset
agoric start local-solo --reset
open -a "Google Chrome" $(agoric open --repl --no-browser | grep http)
E(home.zoe).getInstallation("A".repeat(10000000))
Expected behavior
All valid JS that works normally within the XS/repl layer should be also equally valid when traveling through the cosmos layer
Platform Environment
git describe --tags --always
)72cc8d6bcf428596653593708959446fb0a29596
ref #4264