CVE-2026-46263
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: drm/amd/display: Stream enkoder indeksinin hüdudlardan kənar olması probleminin düzəldilməsi v3 eng_id mənfi ola bilər və bu, stream_enc_regs[] massivinin hüdudlardan kənar indekslənməsinə səbəb ola bilər. eng_id birbaşa cəmi 5 elementi olan stream_enc_regs[] massivi üçün indeks kimi istifadə olunur. eng_id 5 (ENGINE_ID_DIGF) və ya mənfi olduqda, bu, massivin sonundan kənar yaddaşa girişə səbəb ola bilər. eng_id indeks kimi istifadə edilməzdən əvvəl ARRAY_SIZE() vasitəsilə hüdud yoxlaması əlavə edilib. Unsigned cast (işarəsiz tipə çevirmə) həmçinin mənfi dəyərləri rədd edir. Bu, hüdudlardan kənar girişin qarşısını alır. Aşağıdakı smatch xətası düzəldilir: dcn*_resource.c: stream_encoder_create() funksiyası stream_enc_regs[eng_id]-ni hüdudlardan kənar (ölçü 5) indeksləyə bilər. drivers/gpu/drm/amd/amdgpu/../display/dc/resource/dcn351/dcn351_resource.c 1246 static struct stream_encoder *dcn35_stream_encoder_create( 1247 enum engine_id eng_id, 1248 struct dc_context *ctx) 1249 { ... 1255 1256 /* VPG, AFMT, DME registr bloklarının DIO blok instansiyasına xəritələnməsi */ 1257 if (eng_id <= ENGINE_ID_DIGF) { ENGINE_ID_DIGF 5-dir. <= yerinə < olmalıdır? Əlaqəli olmasa da, Smatch niyə "eng_id"-nin mənfi ola biləcəyini deyir? end_id signed long tipindədir, lakin çağıran tərəfdə onun mənfi olmasının qarşısını alan yoxlamalar mövcuddur. 1258 vpg_inst = eng_id; 1259 afmt_inst = eng_id; 1260 } else 1261 return NULL; 1262 ... 1281 1282 dcn35_dio_stream_encoder_construct(enc1, ctx, ctx->dc_bios, 1283 eng_id, vpg, afmt, --> 1284 &stream_enc_regs[eng_id], ^^^^^^^^^^^^^^^^^^^^^^^ Bu stream_enc_regs[] massivi 5 elementdən ibarətdir, buna görə də biz massivin sonundan bir element kənara çıxırıq. ... 1287 return &enc1->base; 1288 } v2: Roman/Dan tərəfindən təklif edildiyi kimi aşkar hüdud yoxlamasından istifadə edin; unsigned int cast-dən qaçın. v3: Kompilyator artıq iki dəyəri necə müqayisə edəcəyini bilir, ona görə də (int) cast-ə ehtiyac yoxdur. (Roman)
Necə düzəltmək olar
- linux linux_kernel6.12.75, 6.18.14, 6.19.4 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 6.9 ≤ v < 6.12.75, 6.13 ≤ v < 6.18.14, 6.19 ≤ v < 6.19.4 | 6.12.75, 6.18.14, 6.19.4 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.