CVE-2026-115774
ŚrednieCVSS 4.9Streszczenie
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.
Ocena ryzyka
Atakujący z ważnym kontem IMAP może zawiesić cały proces serwera, blokując inne połączenia IMAP oraz usługi SMTP i POP3 działające w tym samym procesie, co prowadzi do odmowy usługi.
Rekomendacja
Zaktualizuj Twisted do wersji 26.10.0rc1 lub nowszej. Do czasu aktualizacji rozważ ograniczenie dostępu do usługi IMAP lub uruchamianie jej w izolowanym procesie.
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-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.mail.imap4.IMAP4Server reaches twisted.mail.imap4.parseNestedParens with a negative literal size in an authenticated SEARCH command after the client enters the selected mailbox state. The negative size moves the parser cursor below zero, and Python's negative indexing prevents the synchronous scanning loop from terminating. The loop freezes the single-threaded reactor, stopping other IMAP connections and any SMTP or POP3 services hosted in the same process until restart. This issue is fixed in version 26.10.0rc1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

