Średni Odebrany

CVE-2026-19576

opublikowano:
modyfikacja:
Ocena CVSS
6.8
Średni · v3.1
wektor: CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

Sterownik wejściowy Goodix GT9xx w sterownikach/input/input_gt911.c odczytuje liczbę punktów dotyku z rejestru stanu kontrolera i maskuje ją za pomocą GT911_TOUCH_POINTS_MSK (0x0F), uzyskując wartość 0..15. W funkcji gt911_process() wartość ta jest używana bezpośrednio jako pętla związana z wypełnianiem point_reg[], tablicy stosu o rozmiarze CONFIG_INPUT_GT911_MAX_TOUCH_POINTS, której zakres Kconfig wynosi 1..5, a wartość domyślna wynosi 1. Żadne inne sprawdzenie nie ogranicza zliczania; sterownik oparł się jedynie na komentarzu stwierdzającym, że sterownik został zaprogramowany na początku tak, aby raportował nie więcej punktów niż skonfigurowano.

Każda iteracja pętli generuje odczyt I2C ośmiu bajtów bezpośrednio do point_reg[i], więc kontroler zgłaszający więcej punktów, niż mieści się w tablicy, powoduje zapisanie do 112 bajtów danych dostarczonych przez urządzenia równorzędne za końcem tablicy, w ramce stosu gt911_process() w systemowym wątku kolejki roboczej. Następnie dwie kolejne pętle odczytują wartości poza zakresem z tej samej tablicy. Wyzwolenie go wymaga kontroli lub możliwości zastąpienia kontrolera dotykowego I2C – jest to prawdopodobne w przypadku wielu obsługiwanych płyt, w których panel GT9xx jest wtykowym modułem wyświetlacza lub osłoną, a nie częścią na PCB; sfałszowane urządzenie musi jedynie odpowiedzieć na sondę inicjującą, podając obsługiwany identyfikator produktu i obiekt blob konfiguracyjny z poprawną sumą kontrolną. To samo przepełnienie może również wystąpić w sposób niekontradykcyjny, w przypadku panelu klasy GT9271, który ignoruje programowanie licznika dotyku przez sterownik i raportuje do dziesięciu punktów, lub w przypadku uszkodzenia magistrali pojedynczego bajtu stanu.

Skutkiem jest zapis na stosie poza granicami z zawartością wybraną przez atakującego i wykonywaną z uprawnieniami jądra, co oznacza potencjalne przejęcie kontroli nad MCU hosta, a także odczyty poza granicami i awarie. Wektorem ataku jest wyłącznie dostęp do sprzętu fizycznego/lokalnego; nie ma ścieżki sieciowej, USB ani wywołania systemowego prowadzącej do defektu. Poprawka ogranicza raportowaną liczbę za pomocą min() względem CONFIG_INPUT_GT911_MAX_TOUCH_POINTS przed jakimkolwiek indeksowaniem tablicy.

>_ Słabości (CWE)

>_ Referencje

Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.

This product uses the NVD API but is not endorsed or certified by the NVD.

Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.

CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.

NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org