Tor before 0.4.5.7 allows a remote attacker to cause Tor directory authorities to exit with an assertion failure, aka TROVE-2021-002.
The product contains an assert() or similar statement that can be triggered by an attacker, which leads to an application exit or other behavior that is more severe than necessary.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Tor | Torproject | * | 0.3.5.14 (excluding) |
| Tor | Torproject | 0.4.4.4 (including) | 0.4.4.8 (excluding) |
| Tor | Torproject | 0.4.5.0 (including) | 0.4.5.7 (excluding) |
| Tor | Torproject | 0.4.4.0-alpha (including) | 0.4.4.0-alpha (including) |
| Tor | Torproject | 0.4.4.1-alpha (including) | 0.4.4.1-alpha (including) |
| Tor | Torproject | 0.4.4.2-alpha (including) | 0.4.4.2-alpha (including) |
| Tor | Torproject | 0.4.4.3-alpha (including) | 0.4.4.3-alpha (including) |
| Tor | Ubuntu | bionic | * |
| Tor | Ubuntu | esm-apps/bionic | * |
| Tor | Ubuntu | esm-apps/focal | * |
| Tor | Ubuntu | esm-apps/xenial | * |
| Tor | Ubuntu | esm-infra-legacy/trusty | * |
| Tor | Ubuntu | focal | * |
| Tor | Ubuntu | groovy | * |
| Tor | Ubuntu | hirsute | * |
| Tor | Ubuntu | impish | * |
| Tor | Ubuntu | trusty | * |
| Tor | Ubuntu | trusty/esm | * |
| Tor | Ubuntu | upstream | * |
| Tor | Ubuntu | xenial | * |
While assertion is good for catching logic errors and reducing the chances of reaching more serious vulnerability conditions, it can still lead to a denial of service. For example, if a server handles multiple simultaneous connections, and an assert() occurs in one single connection that causes all other connections to be dropped, this is a reachable assertion that leads to a denial of service.