CVE-2026-106454
ŚrednieCVSS 4.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 24 - wyżej niż 24% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może zdalnie zawiesić serwer IMAP, powodując odmowę usługi dla wszystkich użytkowników.
Rekomendacja
Brak dostępnej poprawki; zaleca się monitorowanie projektu Twisted w celu uzyskania aktualizacji i rozważenie ograniczenia dostępu do serwera IMAP.
Inne podatności w Twisted
Zobacz wszystkie- CVE-2026-83813Niskie
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.
- 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.
Oryginalny opis (angielski, źródło NVD)
Twisted is an event-based framework for internet applications, supporting Python 3.6+. In 25.5.0 and earlier, wildcardToRegexp() in twisted/mail/imap4.py translates the IMAP asterisk and percent wildcards but passes all other characters from an authenticated client's LIST or LSUB pattern directly to re.compile(), allowing nested or otherwise expensive regular expression constructs to cause catastrophic backtracking when matched against mailbox names. Because Twisted uses a cooperative single-threaded reactor, the blocking match suspends all server input and output for the duration of the match. No fixed release is available as of this review.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

