The vulnerability lies in a transitive dependency, quick-xml, which is used by the rpki crate for parsing RRDP XML files. Routinator uses the rpki crate to handle RPKI repository updates. The vulnerability is a denial-of-service caused by a crash when parsing a maliciously crafted XML file with a specially designed Document Type Definition (DTD), likely causing uncontrolled resource consumption or a panic due to an issue like entity expansion.
The patch for this vulnerability in Routinator does not involve any direct code changes in its own source files. Instead, the fix was to upgrade the rpki dependency from version 0.19.0 to 0.19.3 in Cargo.toml. This new version of rpki includes an updated version of quick-xml where the XML parsing vulnerability is fixed.
The identified vulnerable functions are the entry points in the Routinator codebase that initiate the RPKI data processing and repository updates. When Routinator is run, either as a one-off command or as a server, these functions are on the call stack that ultimately triggers the vulnerable XML parsing logic within the rpki crate. An attacker could exploit this by hosting a malicious RRDP repository. When Routinator attempts to sync with this repository, it would fetch and parse the malicious XML file, leading to a crash.