RPKI TOOLS

We take security very seriously. If you have found a security issue in one of our RPKI products, please submit a security report.


Infinite length chain of RRDP repositories

Date:2021-11-09
CVE:CVE-2021-43172
Credit:Koen van Hove
Affects:Routinator up to and including version 0.10.1
Not affected:Other versions
Severity:Medium
Impact:Route Origin Validation could be remotely disabled
Solution:Install Routinator 0.10.2 or newer

Routinator prior to 0.10.2 happily processes a chain of RRDP repositories of infinite length causing it to never finish a validation run.

In RPKI, a CA can choose the RRDP repository it wishes to publish its data in. By continuously generating a new child CA that only consists of another CA using a different RRDP repository, a malicious CA can create a chain of CAs of de-facto infinite length. Routinator prior to version 0.10.2 did not contain a limit on the length of such a chain and will therefore continue to process this chain forever. As a result, the validation run will never finish, leading to Routinator continuing to serve the old data set or, if in the initial validation run directly after starting, never serve any data at all.

Routinator 0.10.2 limits the maximum distance a CA may have from a trust anchor certificate via the new max-ca-depth config variable which defaults to 32 and thereby implicitly limits the length of the repository chain.


Hanging RRDP request

Date:2021-11-09
CVE:CVE-2021-43173
Credit:Koen van Hove
Affects:Routinator up to and including version 0.10.1
Not affected:Other versions
Severity:Medium
Impact:Route Origin Validation could be remotely disabled
Solution:Install Routinator 0.10.2 or newer

In Routinator prior to 0.10.2, a validation run can be delayed significantly by an RRDP repository by not answering but slowly drip-feeding bytes to keep the connection alive. This can be used to effectively stall validation.

While Routinator has a configurable time-out value for RRDP connections, this time-out was only applied to individual read or write operations rather than the complete request. Thus, if an RRDP repository sends a little bit of data before that time-out expired, it can continuously extend the time it takes for the request to finish. Since validation will only continue once the update of an RRDP repository has concluded, this delay will cause validation to stall, leading to Routinator continuing to serve the old data set or, if in the initial validation run directly after starting, never serve any data at all.

Routinator 0.10.2 applies the existing rrdp-timeout configuration option to a full RRDP request.


gzip transfer encoding caused out-of-memory crash

Date:2021-11-09
CVE:CVE-2021-43174
Credit:Koen van Hove
Affects:Routinator version 0.9.0 up to and including version 0.10.1
Not affected:Other versions
Severity:Medium
Impact:Routinator is killed by the OS because of an out-of-memory condition
Solution:Install Routinator 0.10.2 or newer

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.

Routinator 0.10.2 disables support for the gzip transfer encoding.

While it would have been possible to fix the out-of-memory condition, the large amount of data still needs to be handled, leading to a severe delay in validation runs. We have therefore decided to disable the gzip encoding completely.


Invalid RPKI data could disable Route Origin Validation on RTR clients

Date:2021-09-21
CVE:CVE-2021-41531
Credit:Job Snijders
Affects:Routinator up to and including version 0.9.0
Not affected:Other versions
Severity:Medium
Impact:Route Origin Validation could be disabled for RTR clients
Solution:Install Routinator 0.10.0 or newer

Routinator prior to 0.10.0 produces invalid RTR payload if an RPKI CA uses too large values in the max-length parameter in a ROA. This will lead to RTR clients such as routers to reject the RPKI data set, effectively disabling Route Origin Validation.

Due to lack of checking of ROA object content, Routinator will simply pass through any max-length value provided in the ROA. However, a max-length value must never be larger than the maximum prefix length of the address family. Data with larger values will be considered invalid by any RTR client leading to a rejection of the entire data set.

Routinator 0.10.0 ensures that any ROA objects containing max-length values larger than the maximum prefix length of a prefix’ address family are rejected.


Missing files should result in entire CA being considered invalid

Date:2020-08-05
CVE:CVE-2020-17366
Credit:Job Snijders
Affects:Routinator up to and including version 0.7.1
Not affected:Other versions
Severity:Medium
Impact:A legitimate route is marked as RPKI invalid
Solution:Install Routinator 0.8.0 or newer

An issue was discovered in NLnet Labs Routinator 0.1.0 through 0.7.1. It allows remote attackers to bypass intended access restrictions or to cause a denial of service on dependent routing systems by strategically withholding RPKI Route Origin Authorisation ".roa" files or X.509 Certificate Revocation List files from the RPKI relying party's view.

Routinator 0.8.0 follows the rules proposed by draft-ietf-sidrops-6486bis. It ensures that if any object published by a CA is found to be invalid, the entire CA – including all its objects – is rejected. This means that none of its ROAs are included nor are any of its child CAs even being looked at. This avoids a possible situation where a legitimate route is being marked as RPKI invalid because only a subset of the ROAs covering its prefix were considered valid and used.