Twisted is an event-based framework for internet applications, supporting Python 3.6+. Prior to 26.4.0rc2, the twisted.names module is vulnerable to a Denial of Service (DoS) attack via resource exhaustion during DNS name decompression. A remote, unauthenticated attacker can exploit this by sending a crafted TCP DNS packet containing deeply chained compression pointers. This flaw bypasses previous loop-prevention logic, causing the single-threaded Twisted reactor to hang while processing millions of recursive lookups, effectively freezing the server. This vulnerability is fixed in 26.4.0rc2.
The product does not properly control the allocation and maintenance of a limited resource.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Twisted | Twisted | * | 26.4.0 (excluding) |
| Twisted | Twisted | 26.4.0-rc1 (including) | 26.4.0-rc1 (including) |
| Twisted | Ubuntu | devel | * |
| Twisted | Ubuntu | esm-infra/xenial | * |
| Twisted | Ubuntu | jammy | * |
| Twisted | Ubuntu | noble | * |
| Twisted | Ubuntu | questing | * |
| Twisted | Ubuntu | resolute | * |
| Twisted | Ubuntu | upstream | * |
Mitigation of resource exhaustion attacks requires that the target system either:
The first of these solutions is an issue in itself though, since it may allow attackers to prevent the use of the system by a particular valid user. If the attacker impersonates the valid user, they may be able to prevent the user from accessing the server in question.
The second solution is simply difficult to effectively institute – and even when properly done, it does not provide a full solution. It simply makes the attack require more resources on the part of the attacker.