CVE-2026-40335
ŚrednieCVSS 5.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 9 - wyżej niż 9% wszystkich znanych CVE
Streszczenie
libgphoto2 w wersjach do 2.5.33 włącznie zawiera błąd odczytu poza granicami bufora w funkcji ptp_unpack_DPV() w pliku camlibs/ptp2/ptp-pack.c. Przypadki UINT128 i INT128 zwiększają offset o 16 bajtów bez sprawdzenia, czy w buforze pozostało wystarczająco dużo danych.
Ocena ryzyka
Błąd odczytu poza granicami bufora może powodować awarie aplikacji lub potencjalny wyciek danych z pamięci podczas przetwarzania danych PTP.
Rekomendacja
Zaktualizuj libgphoto2 do wersji zawierającej commit 433bde9888d70aa726e32744cd751d7dbe94379a, która poprawia walidację granic bufora.
Inne podatności w libgphoto2
Zobacz wszystkie- CVE-2026-120452Średnie
Biblioteka libgphoto2 do wersji 2.5.34 zawiera podatność polegającą na odczycie i zapisie poza granicami sterty w funkcji jl2005bcd_decompress(). Złośliwe kamery USB mogą dostarczyć małe wartości tablicy alokacji i nagłówek miniatury, powodując przekroczenie bufora o około 30 KB i wyciek zawartości sterty w obrazach podglądu.
- CVE-2026-120451Średnie
libgphoto2 do wersji 2.5.34 zawiera przepełnienie bufora na stosie i stercie w funkcji jl2005c_init(). Złośliwe urządzenia USB mogą podać nieograniczoną liczbę wpisów tablicy alokacji, nadpisać adres powrotu i dane sterty, co potencjalnie umożliwia wykonanie kodu.
- CVE-2026-40341Niskie
W libgphoto2 do wersji 2.5.33 włącznie występuje odczyt poza granicami bufora w ptp_unpack_EOS_FocusInfoEx, który może spowodować awarię biblioteki podczas przetwarzania danych z niezaufanych urządzeń USB. Poprawka znajduje się w commicie c385b34af260595dfbb5f9329526be5158985987.
- CVE-2026-40340Średnie
libgphoto2 w wersjach do 2.5.33 włącznie ma podatność out-of-bounds read w funkcji ptp_unpack_OI() w camlibs/ptp2/ptp-pack.c (linie 530–563). Funkcja waliduje len < PTP_oi_SequenceNumber (czyli len < 48), ale następnie odczytuje offsety 48–56, do 9 bajtów poza zwalidowaną granicą, poprzez heurystykę wykrywania rozmiaru obiektu Samsung Galaxy 64-bit. Poprawka jest w commicie 7c7f515bc88c3d0c4098ac965d313518e0ccbe33.
- CVE-2026-40339Średnie
libgphoto2 w wersjach do 2.5.33 włącznie zawiera błąd odczytu poza granicami bufora w funkcji ptp_unpack_Sony_DPD() w pliku camlibs/ptp2/ptp-pack.c. Funkcja odczytuje bajt FormFlag bez uprzedniego sprawdzenia granic, w przeciwieństwie do standardowej funkcji ptp_unpack_DPD(), która taką walidację wykonuje.
- CVE-2026-40338Średnie
libgphoto2 w wersjach do 2.5.33 włącznie ma błąd odczytu poza granicami w przypadku PTP_DPFF_Enumeration funkcji ptp_unpack_Sony_DPD() w camlibs/ptp2/ptp-pack.c (linia 856). Funkcja odczytuje 2-bajtowy licznik N przez dtoh16o(data, *poffset) bez sprawdzenia, czy w buforze pozostały 2 bajty. Standardowa funkcja ptp_unpack_DPD() w linii 704 ma tę kontrolę, co potwierdza, że w wariancie Sony została pominięta przez przeoczenie. Poprawka jest w commicie 3b9f9696be76ae51dca983d9dd8ce586a2561845.
- CVE-2026-40336Niskie
libgphoto2 w wersjach do 2.5.33 włącznie ma wyciek pamięci w funkcji ptp_unpack_Sony_DPD() w pliku camlibs/ptp2/ptp-pack.c. Podczas przetwarzania dodatkowej listy enumeracji (wprowadzonej w kamerach Sony z 2024+) funkcja nadpisuje dpd->FORM.Enum.SupportedValue nowym wywołaniem calloc() bez zwolnienia poprzedniej alokacji, co powoduje wyciek tablicy i zawartych w niej łańcuchów przy każdym parsowaniu deskryptora właściwości.
- CVE-2026-40334Niskie
W libgphoto2 do wersji 2.5.33 włącznie funkcja ptp_unpack_Canon_FE() w camlibs/ptp2/ptp-pack.c (linia 1377) kopiuje nazwę pliku do 13-bajtowego bufora przez strncpy bez jawnego zakończenia znakiem NUL. Gdy dane źródłowe mają dokładnie 13 bajtów bez terminatora, bufor pozostaje niezakończony, co prowadzi do odczytów poza granicami w kolejnych operacjach na łańcuchach. Poprawka znajduje się w commicie 259fc7d3bfe534ce4b114c464f55b448670ab873.
- CVE-2026-40333Średnie
libgphoto2 w wersjach do 2.5.33 włącznie ma dwie funkcje w camlibs/ptp2/ptp-pack.c, które przyjmują wskaźnik danych bez parametru długości, wykonując nieograniczone odczyty. Ich wywołujący w ptp_unpack_EOS_events() mają dostępny xsize, ale go nie przekazują, co uniemożliwia walidację odczytów względem granicy bufora. Poprawka jest w commicie 1817ecead20c2aafa7549dac9619fe38f47b2f53.
Oryginalny opis (angielski, źródło NVD)
libgphoto2 is a camera access and control library. Versions up to and including 2.5.33 have an out-of-bounds read in `ptp_unpack_DPV()` in `camlibs/ptp2/ptp-pack.c` (lines 622–629). The UINT128 and INT128 cases advance `*offset += 16` without verifying that 16 bytes remain in the buffer. The entry check at line 609 only guarantees `*offset < total` (at least 1 byte available), leaving up to 15 bytes unvalidated. Commit 433bde9888d70aa726e32744cd751d7dbe94379a patches the issue.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

