NLnet Labs Routinator versions 0.9.0 up to and including 0.10.1, support the gzip transfer encoding when querying RRDP repositories. This encoding can be used by an RRDP repository to cause an out-of-memory crash in these versions of Routinator. RRDP uses XML which allows arbitrary amounts of white space in the encoded data. The gzip scheme compresses such white space extremely well, leading to very small compressed files that become huge when being decompressed for further processing, big enough that Routinator runs out of memory when parsing input data waiting for the next XML element.
The product manages a group of objects or resources and performs a separate memory allocation for each object, but it does not properly limit the total amount of memory that is consumed by all of the combined objects.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Routinator | Nlnetlabs | 0.9.0 (including) | 0.10.2 (excluding) |
Cfrpki | Ubuntu | impish | * |
Cfrpki | Ubuntu | trusty | * |
Cfrpki | Ubuntu | upstream | * |
Cfrpki | Ubuntu | xenial | * |
Routinator | Ubuntu | trusty | * |
Routinator | Ubuntu | xenial | * |
While the product might limit the amount of memory that is allocated in a single operation for a single object (such as a malloc of an array), if an attacker can cause multiple objects to be allocated in separate operations, then this might cause higher total memory consumption than the developer intended, leading to a denial of service.