CVE-2026-83813
NiskieCVSS 3.1Streszczenie
W bibliotece Twisted, w wersjach przed 26.10.0rc1, protokół DNSDatagramProtocol akceptuje odpowiedź UDP DNS na oczekujące zapytanie, jeśli zgadza się 16-bitowy identyfikator transakcji, ale nie weryfikuje źródłowego adresu IP i portu. Umożliwia to atakującemu wstrzyknięcie sfałszowanej odpowiedzi DNS.
Ocena ryzyka
Skuteczne sfałszowanie odpowiedzi może przekierować rozwiązywanie nazw hostów, umożliwiając przechwytywanie poczty, podatność SSRF lub pozycjonowanie jako man-in-the-middle.
Rekomendacja
Zaktualizuj Twisted do wersji 26.10.0rc1 lub nowszej. Unikaj ponownego używania instancji DNSDatagramProtocol dla wielu zapytań.
Inne podatności w Twisted
Zobacz wszystkie- CVE-2026-115877Średnie
W Twisted przed wersją 26.10.0rc1 metoda twisted.web.http.HTTPChannel.headerReceived odrzuca bajt NUL w wartości nagłówka HTTP, ale akceptuje samotny znak powrotu karetki lub samotny znak nowej linii. Ponieważ Twisted dzieli linie nagłówków tylko na CRLF, ukryty nagłówek Content-Length może pozostać wklejony w inną wartość, podczas gdy łagodny front end traktuje samotny znak jako terminator linii. Wynikająca z tego rozbieżność ramkowania może przemycić kolejne żądanie poza kontrolą dostępu front endu, zatruć współdzielone połączenie lub pamięć podręczną i narazić późniejszego klienta na niewłaściwą odpowiedź. Problem jest pozostałością niepełnej naprawy wcześniejszych zabezpieczeń Twisted przed przemytem żądań. Problem naprawiono w wersji 26.10.0rc1.
- CVE-2026-115778Wysokie
W Twisted przed wersją 26.10.0rc1 metoda twisted.conch.telnet.Telnet.dataReceived dopisuje każdy bajt otrzymany po IAC SB do trwałego bufora subnegocjacji aż do odebrania IAC SE, bez limitu długości. Negocjacja opcji Telnet odbywa się przed uwierzytelnieniem, więc nieuwierzytelniony peer może pominąć terminator i stale powiększać bufor. Wynikające z tego wyczerpanie pamięci może zakończyć proces i wszystkie hostowane przez niego usługi. Problem naprawiono w wersji 26.10.0rc1.
- CVE-2026-115776Wysokie
W Twisted przed wersją 26.10.0rc1 metoda twisted.words.protocols.irc.IRC.dataReceived przechowuje wszystkie bajty otrzymane bez znaku nowej linii w buforze połączenia i nie stosuje limitu długości linii. Podklasa serwera twisted.words.service.IRCUser dziedziczy to zachowanie, a buforowanie odbywa się przed uwierzytelnieniem poleceniami PASS, NICK lub USER. Nieuwierzytelnione połączenie może stale powiększać bufor, aż współdzielony proces serwera zabraknie pamięci i rozłączy wszystkich użytkowników. Problem naprawiono w wersji 26.10.0rc1.
- CVE-2026-115775Wysokie
W Twisted przed wersją 26.10.0rc1 parser twisted.words.xish.domish ExpatElementStream pozwala nieuwierzytelnionemu zdalnemu peerowi utrzymywać otwarty element kontenera i stale dodawać elementy potomne. Parser przechowuje niedokończoną stanzę jako drzewo w pamięci bez limitu bajtów lub liczby elementów, a parsowanie strumienia XMPP przed uwierzytelnieniem udostępnia to zachowanie zanim poświadczenia zostaną zaakceptowane. Pojedyncze połączenie może zatem wyczerpać pamięć serwera i zakończyć proces. Problem naprawiono w wersji 26.10.0rc1.
- CVE-2026-115774Średnie
W bibliotece Twisted, w wersjach przed 26.10.0rc1, serwer IMAP4Server po uwierzytelnieniu i wybraniu skrzynki może otrzymać polecenie SEARCH z ujemną wartością rozmiaru literału. Powoduje to przesunięcie kursora parsera poniżej zera i zawieszenie pętli skanującej z powodu indeksowania ujemnego w Pythonie, co blokuje jednowątkowy reactor.
- CVE-2026-106454Średnie
W Twisted w wersji 25.5.0 i wcześniejszych funkcja wildcardToRegexp() w twisted/mail/imap4.py przekazuje znaki z wzorca LIST lub LSUB klienta bezpośrednio do re.compile(), co umożliwia atakującemu wywołanie katastrofalnego cofania się wyrażeń regularnych. Ponieważ Twisted używa jednowątkowego reaktora kooperacyjnego, blokujące dopasowanie zawiesza całą komunikację serwera.
Oryginalny opis (angielski, źródło NVD)
Twisted is an event-based framework for internet applications, supporting Python 3.6+. Prior to 26.10.0rc1, twisted.names.dns.DNSDatagramProtocol accepts a UDP DNS response for a pending query when its 16-bit transaction ID matches but does not verify that the response came from the queried host and port. An attacker able to deliver a packet to the resolver's listening port with the correct transaction ID can inject a forged answer. The standard twisted.names.client.Resolver uses a new random source port for each query, increasing off-path attack complexity, while applications that reuse a DNSDatagramProtocol instance expose only the transaction-ID search space after the first query. A successful forgery can redirect hostname resolution and enable mail interception, server-side request forgery, or man-in-the-middle positioning. This issue is fixed in version 26.10.0rc1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

