diff --git a/src/openrct2/network/NetworkBase.cpp b/src/openrct2/network/NetworkBase.cpp index 6360e73aee..2e75cfa47a 100644 --- a/src/openrct2/network/NetworkBase.cpp +++ b/src/openrct2/network/NetworkBase.cpp @@ -2559,6 +2559,15 @@ void NetworkBase::Server_Handle_AUTH(NetworkConnection& connection, NetworkPacke { try { + // RSA technically supports keys up to 65536 bits, so this is the + // maximum signature size for now. + constexpr auto MaxRSASignatureSizeInBytes = 8192; + + if (sigsize == 0 || sigsize > MaxRSASignatureSizeInBytes) + { + throw std::runtime_error("Invalid signature size"); + } + std::vector signature; signature.resize(sigsize);