Apache ResilientDB is a High Throughput Yielding Permissioned Blockchain Fabric founded by ExpoLab at UC Davis in 2018. ResilientDB advocates a system-centric design by implementing a multi-threaded architecture with deep pipelines. Further, ResilientDB separates the ordering of client transactions from their execution, allowing it to process messages out of order.
Apache ResilientDB (incubating) suffers from a remote pre-authentication uncontrolled memory allocation in its replica TCP acceptor. In platform/common/network/tcp_socket.cpp, TcpSocket::Recv reads an 8-byte length prefix directly off the socket and passes it to malloc() with no maximum-size check and no NULL-check, then reads that many bytes. This routine is reached, before any signature or authentication check, from the replica's main service listener (platform/rdbc/acceptor.cpp Acceptor::Run -> Accept -> Recv, started by platform/networkstrate/service_network.cpp). Any host that can open a TCP connection to a replica's service port can therefore send a large length prefix and force an arbitrarily large allocation; a handful of parallel connections declaring multi-gigabyte lengths exhaust the replica's memory (OOM), taking the node down and, at scale, breaking the network's BFT liveness.