CVE-2026-89541
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: SUNRPC: gss_unwrap_resp_priv uzunluq yoxlamaları təkmilləşdirildi gss_unwrap_resp_priv() funksiyası RPCSEC_GSS şəffaf (opaque) uzunluğunu aşağıdakı şəkildə yoxlayır: offset = (u8 *)(p) - (u8 *)head->iov_base; if (offset + opaque_len > rcv_buf->len) goto unwrap_failed; maj_stat = gss_unwrap(ctx->gc_gss_ctx, offset, offset + opaque_len, rcv_buf); Hər iki operand u32 tipindədir və cəm u32 formatında hesablanır. opaque_len dəyəri 0xffffffff-ə yaxın olan cavab, offset + opaque_len cəminin rcv_buf->len-dən kiçik olan kiçik bir dəyərə çevrilməsinə (wrap) səbəb olur, beləliklə sərhəd yoxlamasından keçir və gss_unwrap() funksiyası end < begin şərti ilə çağırılır. Yoxlama həmçinin aşağı sərhədin olmaması ilə xarakterizə olunur, buna görə də [0, GSS_KRB5_TOK_HDR_LEN) diapazonundakı istənilən opaque_len qəbul edilir və gss_krb5_unwrap_v2()-yə ötürülür; bu funksiyanın dekripsiya öncəsi başlığı ptr+4 və ptr+6 ünvanlarını oxuyaraq tokendən kənara çıxır. Xüsusi hazırlanmış RPCSEC_GSS cavabı qaytaran krb5p NFS serveri, klientdə gss_krb5_unwrap_v2() və onu izləyən rotate_left() dövründə sərhədlərdən kənar oxumalara (out-of-bounds reads) səbəb ola bilər. Problem, tək birləşmiş yoxlamanın u32 aritmetikasında təhlükəsiz olan və RFC 4121 minimum xarici token uzunluğunu təmin edən üç mühafizə mexanizmi ilə əvəz edilməsi yolu ilə həll edilmişdir: if (offset > rcv_buf->len) goto unwrap_failed; if (opaque_len > rcv_buf->len - offset) goto unwrap_failed; if (opaque_len < GSS_KRB5_TOK_HDR_LEN) goto unwrap_failed; Birinci mühafizə ikinci mühafizədəki çıxma əməliyyatını qeydsiz şəkildə təhlükəsiz edir; offset dəyəri head kvec daxilində uğurlu xdr_inline_decode() nəticəsindən törəyir, ona görə də praktikada artıq sərhədi təmin edir. Aşağı hədd isə 5b757c2e57a5 ("SUNRPC: svcauth_gss: enforce krb5 token minimum length") commit-ində əlavə edilmiş server tərəfli yoxlamanı əks etdirir.
Necə düzəltmək olar
- Linux Linux3691c4b3488d8ca046b9941e5be30c626dbbbb50, 85fa6b12e8f439739ac36ef2aad925f37c8b976a, 401f6a5b338d05bb1069ad814d9f77e3c367854f, 81fd7654a8429718adfcb2a7e03496077f547ed0, 89a15a50f84d32d4b99db86f957427fcbe20a99a, ebcbd2523a8524c3d24e111cdbed8e271d910269, d395c30d570ca6168f0297b191709927d1258273, 87831b92112c81db251d46756d65daa4f91af6a2 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 2d2da60c63b67174add32f06e8d54c3a0c5cd9cf ≤ v < 3691c4b3488d8ca046b9941e5be30c626dbbbb50, 2d2da60c63b67174add32f06e8d54c3a0c5cd9cf ≤ v < 85fa6b12e8f439739ac36ef2aad925f37c8b976a, 2d2da60c63b67174add32f06e8d54c3a0c5cd9cf ≤ v < 401f6a5b338d05bb1069ad814d9f77e3c367854f, 2d2da60c63b67174add32f06e8d54c3a0c5cd9cf ≤ v < 81fd7654a8429718adfcb2a7e03496077f547ed0, 2d2da60c63b67174add32f06e8d54c3a0c5cd9cf ≤ v < 89a15a50f84d32d4b99db86f957427fcbe20a99a, 2d2da60c63b67174add32f06e8d54c3a0c5cd9cf ≤ v < ebcbd2523a8524c3d24e111cdbed8e271d910269, 2d2da60c63b67174add32f06e8d54c3a0c5cd9cf ≤ v < d395c30d570ca6168f0297b191709927d1258273, 2d2da60c63b67174add32f06e8d54c3a0c5cd9cf ≤ v < 87831b92112c81db251d46756d65daa4f91af6a2, 2.6.15 | 3691c4b3488d8ca046b9941e5be30c626dbbbb50, 85fa6b12e8f439739ac36ef2aad925f37c8b976a, 401f6a5b338d05bb1069ad814d9f77e3c367854f, 81fd7654a8429718adfcb2a7e03496077f547ed0, 89a15a50f84d32d4b99db86f957427fcbe20a99a, ebcbd2523a8524c3d24e111cdbed8e271d910269, d395c30d570ca6168f0297b191709927d1258273, 87831b92112c81db251d46756d65daa4f91af6a2 |
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.