CVEs

CVE-2024-45238

Certificate containing a malformed subjectPublicKey crashes Fort 1.6.2-, when compiled with OpenSSL < 3.

Description A malicious RPKI repository that descends from a (trusted) Trust Anchor can serve (via rsync or RRDP) a resource certificate containing a bit string that doesn’t properly decode into a Subject Public Key. OpenSSL does not report this problem during parsing, and when compiled with OpenSSL libcrypto versions below 3, Fort was recklessly dereferencing the pointer.
Impact Crash. (Potential unavailability of Route Origin Validation.)
Patch Commit 5689dea, released in Fort 1.6.3.
Acknowledgments Thanks to Niklas Vogel and Haya Schulmann for their research and disclosure.

CVE-2024-45237

Certificate containing a Key Usage bit string longer than 2 bytes causes buffer overflow on Fort 1.6.2-.

Description A malicious RPKI repository that descends from a (trusted) Trust Anchor can serve (via rsync or RRDP) a resource certificate containing a Key Usage extension consisting of more than two bytes of data. Fort used to write this string on a 2-byte buffer without properly sanitizing its length, leading to buffer overflow.
Impact Depending on compilation options, the vulnerability would lead to a crash (which might in turn lead to unavailability of Route Origin Validation), incorrect validation results or arbitrary code execution.
Patch Commit 939d988, released in Fort 1.6.3.
Acknowledgments Thanks to Niklas Vogel and Haya Schulmann for their research and disclosure.

CVE-2024-45235

Certificate containing an Authority Key Identifier missing a keyIdentifier crashes Fort 1.6.2-.

Description A malicious RPKI repository that descends from a (trusted) Trust Anchor can serve (via rsync or RRDP) a resource certificate containing an Authority Key Identifier extension missing the keyIdentifier field. Fort was referencing the pointer without sanitizing it first.
Impact Crash. (Potential unavailability of Route Origin Validation.)
Patch Commit b1eb3c5, released in Fort 1.6.3.
Acknowledgments Thanks to Niklas Vogel and Haya Schulmann for their research and disclosure.

CVE-2024-45236

Signed Object containing empty signedAttrs crashes Fort 1.6.2-.

Description A malicious RPKI repository that descends from a (trusted) Trust Anchor can serve (via rsync or RRDP) a signed object containing an empty signedAttributes. Fort was accessing the set’s elements without sanitizing it first.
Impact Crash. (Potential unavailability of Route Origin Validation.)
Patch Commit 4dafbd9, released in Fort 1.6.3.
Acknowledgments Thanks to Niklas Vogel and Haya Schulmann for their research and disclosure.

CVE-2024-45239

Signed Object containing null eContent crashes Fort 1.6.2-.

Description A malicious RPKI repository that descends from a (trusted) Trust Anchor can serve (via rsync or RRDP) a ROA or Manifest containing a null eContent. Fort was dereferencing the pointer without sanitizing it first.
Impact Crash. (Potential unavailability of Route Origin Validation.)
Patch Commit 942f921, released in Fort 1.6.3.
Acknowledgments Thanks to Niklas Vogel and Haya Schulmann for their research and disclosure.

CVE-2024-45234

Certificate containing signedAttrs not in canonical form crashes Fort 1.6.2-.

Description A malicious RPKI repository that descends from a (trusted) Trust Anchor can serve (via rsync or RRDP) a ROA or Manifest containing a signedAttrs encoded in non-canonical form. This bypassed the BER-decoder, reaching a point in the code that panicked when faced with data not encoded in DER.
Impact Crash. (Potential unavailability of Route Origin Validation.)
Patch Commit 521b1a0, released in Fort 1.6.3.
Acknowledgments Thanks to Niklas Vogel and Haya Schulmann for their research and disclosure.

CVE-2024-48943

Malicious rsync repositories can block Fort by drip-feeding repository objects.

Description A malicious RPKI rsync repository can prevent Fort from finishing its validation run by drip-feeding its content.
Impact Delayed validation. (Stale or unavailable Route Origin Validation.)
Patch Commit 4ee88d1, released in Fort 1.6.4.
Acknowledgments Thanks to Koen van Hove for his research and disclosure, and Job Snijders for the proposed fix.

CVE-2024-56170

Fort is employing the latest fetched manifest, rather than the one with the most recent metadata.

Description RPKI manifests are listings of relevant files that clients are supposed to verify.
Assuming everything else is correct, the most recent version of a manifest should be prioritized over other versions, to prevent replays, accidental or otherwise.
Manifests contain the manifestNumber and thisUpdate fields, which can be used to gauge the relevance of a given manifest, when compared to other manifests. The former is a serial-like sequential number, and the latter is the date in which the manifest was created.
Fort is not comparing the up-to-dateness of the most recently-fetched manifest against the cached manifest. As such, it’s prone to roll back into a previous version if it’s served a valid outdated manifest.
Impact Outdated Route Origin Validation.
Patch Scheduled for Fort release 2.0.0.
Acknowledgments Job Snijders

CVE-2024-56169

Fort’s cache provides insufficient fallbacking.

Description RPKI Relying Parties (such as Fort) are supposed to maintain a backup cache of the remote RPKI data. This can be employed as fallback in case a new fetch fails or yields incorrect files.
Fort is presently using its cache merely as a bandwidth saving tool. (Because the fetching is performed through deltas.) If a fetch fails midway or yields incorrect files, Fort is left without a viable fallback.
Impact Incomplete Route Origin Validation data.
Patch Scheduled for Fort release 2.0.0.
Acknowledgments Ties de Kock
Issue 82

CVE-2024-56375

Manifest containing empty fileList crashes Fort 1.6.3, 1.6.4.

Description A malicious RPKI repository that descends from a (trusted) Trust Anchor can serve (via rsync or RRDP) a Manifest RPKI object containing an empty fileList.
Fort dereferences (and shortly afterwards writes) this array during a shuffle attempt, before the validation that would normally reject it when empty.
This out-of-bounds access is caused by an integer underflow that causes the surrounding loop to iterate infinitely. As Fort gets stuck permanently attempting to overshuffle an array that doesn’t actually exist, a crash is pretty much guaranteed.
Impact Crash. (Potential unavailability of Route Origin Validation.)
Patch Commit 17f0952, released in Fort 1.6.5.
Acknowledgments Niklas Vogel