CVE-2026-115776
WysokieCVSS 7.5Streszczenie
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.
Ocena ryzyka
Nieuwierzytelniony atakujący może wyczerpać pamięć serwera IRC i spowodować rozłączenie wszystkich użytkowników, prowadząc do odmowy usługi. Ryzyko dotyczy serwerów IRC opartych na Twisted.
Rekomendacja
Zaktualizuj Twisted do wersji 26.10.0rc1 lub nowszej. Do czasu aktualizacji ogranicz dostęp do serwera IRC lub wdróż limity długości linii na poziomie proxy.
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-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.words.protocols.irc.IRC.dataReceived retains all bytes received without a line feed in its per-connection buffer and applies no maximum line length. The twisted.words.service.IRCUser server subclass inherits this behavior, and buffering occurs before PASS, NICK, or USER authentication commands. An unauthenticated connection can continuously grow the buffer until the shared server process runs out of memory and drops all users. This issue is fixed in version 26.10.0rc1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

