-
Notifications
You must be signed in to change notification settings - Fork 24
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
For #82. It seems I'm finally done making dramatic wide-reaching changes to the codebase. There's still plenty to add and test, but I would like to start pushing atomic commits from now on. This is a squashed version of development brach "issue82". It includes a few merges with main. ``` cache/ rsync/ # rsync refresh 0/ # rsync module: rsync://a.b.c/mod1 rpp1/ # Repository Publication Point 1 d.mft d.crl d1.roa rpp2/ e.mft e.crl ta.cer # Trust Anchor 1/ # rsync module: rsync://a.b.c/mod2 ... 2/ # rsync module: rsync://x.y.z/mod1 ... https/ # HTTPS refresh 0 # https://a.b.c/repo/ta.cer 1 # https://x.y.z/repo/ta.cer rrdp/ # RRDP refresh 0/ # https://m.n.o/notification.xml 0 # rsync://m.n.o/mod1/rpp1/a.mft 1 # rsync://m.n.o/mod1/rpp1/b.crl 2 # rsync://m.n.o/mod1/rpp2/c.mft 3 # rsync://m.n.o/mod1/rpp2/d.cer 1/ # https://p.q.r/notification.xml ... fallback/ # Committed RPPs 0/ # Fallback of rsync://a.b.c/mod1/rpp1 0 # Hard link: cache/rsync/0/rpp1/d.mft 1 # Hard link: cache/rsync/0/rpp1/d.crl 2 # rsync://a.b.c/mod1/rpp1/d2.roa # (Unique because of refresh) 1 # Hard link: cache/https/0 2/ # Fallback of m.n.o's rsync://m.n.o/mod1/rpp1 0 # Hard link: cache/rrdp/0/0 1 # Hard link: cache/rrdp/0/1 index.json # URL/path mappings and some metadata ``` - `cache/rsync`, `cache/https` and `cache/rrdp` contain "refreshes" (the exact latest files according to the servers). RRDP withdraws are honored, and rsyncs run without --compare-dest. - "Refresh" files marked as valid are backed up in `cache/fallback` at the end of each validation cycle. - Validation first tests fallback+refresh. (If a file exists in both, refresh wins.) If that fails, it retries with fallback only. - The index is not a tree; everything is caged in numbered directories and indexed by exact URL, to prevent file overriding by URL hacking. There's also a `cache/tmp` directory, where Fort temporarily dumps notifications, snapshots and deltas. This directory will be removed once #127 is fixed.
- Loading branch information
Showing
164 changed files
with
6,227 additions
and
6,631 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
--- | ||
title: CVE | ||
--- | ||
|
||
# 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](https://github.com/openssl/openssl/blob/OpenSSL_1_1_1w/crypto/x509/x_pubkey.c#L152-L157), 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](https://github.com/NICMx/FORT-validator/commit/5689dea5e878fed28c5f338a27d7cda4151a14f1), 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](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3) 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](https://github.com/NICMx/FORT-validator/commit/939d988551d17996be73f52c376a70a3d6ba69f9), 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](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.1) missing the `keyIdentifier` field. Fort was referencing the pointer without sanitizing it first. | | ||
| Impact | Crash. (Potential unavailability of Route Origin Validation.) | | ||
| Patch | Commit [b1eb3c5](https://github.com/NICMx/FORT-validator/commit/b1eb3c507ae920859bbe294776ebc2bb30bb7e56), 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`](https://datatracker.ietf.org/doc/html/rfc6488#section-2.1.6.4). Fort was accessing the set's elements without sanitizing it first. | | ||
| Impact | Crash. (Potential unavailability of Route Origin Validation.) | | ||
| Patch | Commit [4dafbd9](https://github.com/NICMx/FORT-validator/commit/4dafbd9de64a5a0616af97365bc1751465b29d2e), 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`](https://datatracker.ietf.org/doc/html/rfc6488#section-2.1.3.2). Fort was dereferencing the pointer without sanitizing it first. | | ||
| Impact | Crash. (Potential unavailability of Route Origin Validation.) | | ||
| Patch | Commit [942f921](https://github.com/NICMx/FORT-validator/commit/942f921ba7244cdcf4574cedc4c16392a7cc594b), 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](https://github.com/NICMx/FORT-validator/commit/521b1a0db5041258096fbabdf8fc1e10ecc793cf), released in Fort 1.6.3. | | ||
| Acknowledgments | Thanks to Niklas Vogel and Haya Schulmann for their research and disclosure. | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.