CVE-2026-61695
WysokieCVSS 7.5Streszczenie
Wire, biblioteka gRPC i protobuf dla Swift, w wersjach przed 6.4.1 i 7.0.0-alpha04 ma błąd w ProtoReader.skipGroup, który akceptuje ujemną długość dla pola LENGTH_DELIMITED wewnątrz nieznanego pola START_GROUP. Prowadzi to do nieodwracalnego zatrzymania procesu Swift podczas dekodowania niezaufanych danych protobuf, bez uwierzytelnienia i interakcji użytkownika.
Ocena ryzyka
Każdy proces Swift dekodujący niezaufane dane protobuf może zostać zdalnie zablokowany (crash), powodując odmowę usługi bez potrzeby uwierzytelnienia.
Rekomendacja
Zaktualizuj Wire do wersji 6.4.1 lub 7.0.0-alpha04 bądź nowszej. Unikaj dekodowania niezaufanych danych protobuf bez walidacji.
Inne podatności w Wire
Zobacz wszystkie- CVE-2026-63126Wysokie
Biblioteka Wire (gRPC/protobuf dla Androida, Kotlina, Swifta i Javy) w wersjach przed 6.4.5 oraz 7.0.0-alpha04 nie waliduje spójnie długości kontrolowanych przez atakującego względem bieżącej granicy logicznej komunikatu protobuf. W Kotlinie ścieżki dekodowania (m.in. ProtoAdapter.decode, internalNextLengthDelimited, ReadBuffer.readVarint, ProtoDecoder.decodeSizeDelimited) mogą wykroczyć poza granice logiczne, wykonać arytmetykę na wskaźnikach lub zarezerwować nadmierną pamięć. Atakujący dostarczający zniekształcone bajty protobuf może wywołać niekontrolowane wyjątki, pułapki, zachowania poza zakresem lub nadmierną alokację, prowadząc do odmowy usługi.
- CVE-2026-45799Wysokie
Podatność w bibliotece Wire (gRPC/protobuf) dla Androida, Kotlina, Swifta i Javy. W wersjach przed 6.3.0 i 7.0.0-alpha03, metody skipGroup() nie sprawdzają, czy długość pola LENGTH_DELIMITED jest nieujemna, co może prowadzić do ArrayIndexOutOfBoundsException i awarii usług dekodujących niezaufane dane.
Oryginalny opis (angielski, źródło NVD)
Wire provides gRPC and protocol buffers for Android, Kotlin, Swift, and Java. Prior to 6.4.1 and 7.0.0-alpha04, Wire's Swift runtime ProtoReader.skipGroup(expectedEndTag:unknownFieldsWriter:) accepts a negative length for a LENGTH_DELIMITED field inside an unknown START_GROUP field. ProtoReader.readData() forwards the negative count to ReadBuffer.readData(count:), whose upper-bound-only check permits the value to reach Foundation Data(bytes:count:) and trigger an unrecoverable process trap instead of a catchable ProtoDecoder.Error. Any Swift process decoding untrusted protobuf bytes can be crashed without authentication, user interaction, or knowledge of the target schema. This issue is fixed in versions 6.4.1 and 7.0.0-alpha04.

