Ġiet identifikata vulnerabbiltà kritika (CVE-2021-43527) fil-libreriji kriptografiċi NSS (Network Security Services) żviluppati minn Mozilla. Din il-vulnerabbiltà tista' twassal għall-eżekuzzjoni tal-kodiċi tal-attakkant meta jiġu pproċessati firem diġitali DSA jew RSA-PSS speċifikati bl-użu tal-metodu ta' kodifikazzjoni DER (Distinguished Encoding Rules). Il-kwistjoni, bl-isem tal-kodiċi BigSig, hija rranġata f'NSS 3.73 u NSS ESR 3.68.1. Aġġornamenti għall-pakketti tad-distribuzzjoni huma disponibbli għal Debian, RHEL, Ubuntu, SUSE, Ark Linux, Gentoo, FreeBSD. L-aġġornamenti għal Fedora għadhom mhumiex disponibbli.
Il-problema sseħħ f'applikazzjonijiet li jużaw NSS biex jimmaniġġjaw firem diġitali CMS, S/MIME, PKCS #7 u PKCS #12, jew meta jivverifikaw ċertifikati fl-implimentazzjonijiet TLS, X.509, OCSP u CRL. Il-vulnerabbiltà tista 'tidher f'diversi applikazzjonijiet ta' klijenti u server li jappoġġjaw TLS, DTLS u S/MIME, klijenti tal-email u telespettaturi PDF li jużaw is-sejħa NSS CERT_VerifyCertificate() biex jivverifikaw firem diġitali.
LibreOffice, Evolution u Evince jissemmew bħala eżempji ta' applikazzjonijiet vulnerabbli. Potenzjalment, il-problema tista 'taffettwa wkoll proġetti bħal Pidgin, Apache OpenOffice, Suricata, Curl, Chrony, Red Hat Directory Server, Red Hat Certificate System, mod_nss għas-server Apache http, Oracle Communications Messaging Server, Oracle Directory Server Enterprise Edition. Madankollu, il-vulnerabbiltà ma tidhirx fil-Firefox, Thunderbird u Tor Browser, li jużaw librerija separata mozilla::pkix, inkluża wkoll fl-NSS, għall-verifika. Browsers ibbażati fuq il-kromju (sakemm ma jkunux mibnija speċifikament bl-NSS), li użaw NSS sal-2015, iżda mbagħad qalbu għal BoringSSL, mhumiex affettwati wkoll mill-problema.
Il-vulnerabbiltà hija kkawżata minn żball fil-kodiċi tal-verifika taċ-ċertifikat fil-funzjoni vfy_CreateContext mill-fajl secvfy.c. L-iżball jimmanifesta ruħu kemm meta l-klijent jaqra ċ-ċertifikat mis-server kif ukoll waqt l-ipproċessar. server Ċertifikati tal-klijent. Meta tivverifika firma diġitali kkodifikata bid-DER, l-NSS jiddekodifika l-firma f'buffer ta' daqs fiss u jgħaddi dan il-buffer lill-modulu PKCS #11. Matul aktar ipproċessar, id-daqs tal-firem DSA u RSA-PSS jiġi ċċekkjat b'mod żbaljat, u dan iwassal għal buffer overflow allokat għall-istruttura VFYContextStr jekk id-daqs tal-firma diġitali jaqbeż is-16384 bit (2048 byte huma allokati għall-buffer, iżda l-potenzjal tal-firma għal daqs akbar mhux verifikat).
Il-kodiċi li fih il-vulnerabbiltà jista’ jiġi rintraċċat lura għall-2003, iżda ma kienx ta’ theddida sakemm sar refactoring fl-2012. Fl-2017, sar l-istess żball meta ġie implimentat l-appoġġ RSA-PSS. Biex twettaq attakk, ġenerazzjoni intensiva ta 'riżorsi ta' ċerti ċwievet mhix meħtieġa biex tinkiseb id-dejta meħtieġa, peress li l-overflow iseħħ fl-istadju qabel ma tiċċekkja l-korrettezza tal-firma diġitali. Il-parti tad-dejta li tmur lil hinn mill-konfini hija miktuba f'żona tal-memorja li fiha indikaturi għall-funzjonijiet, li tissimplifika l-ħolqien ta 'exploits tax-xogħol.
Il-vulnerabbiltà ġiet skoperta minn riċerkaturi minn Google Project Zero waqt li kienu qed jesperimentaw b'metodi ġodda ta' ttestjar ta' fuzzing u hija turija tajba ta' kif vulnerabbiltajiet trivjali jistgħu jibqgħu ma jinstabux għal żmien twil fi proġett magħruf ħafna ttestjat:
- Il-kodiċi NSS jinżamm minn tim tas-sigurtà b'esperjenza li juża tekniki ta' ttestjar u analiżi tal-iżbalji l-aktar avvanzati. Hemm diversi programmi fis-seħħ biex iħallsu premjijiet sinifikanti għall-identifikazzjoni tal-vulnerabbiltajiet fl-NSS.
- NSS kien wieħed mill-ewwel proġetti li ngħaqad mal-inizjattiva oss-fuzz ta 'Google u ġie ttestjat ukoll fis-sistema tal-ittestjar tal-fuzz ibbażata fuq libFuzzer ta' Mozilla.
- Il-kodiċi tal-librerija ġie ċċekkjat ħafna drabi f'diversi analizzaturi statiċi, inkluż li ġie mmonitorjat mis-servizz Coverity mill-2008.
- Sal-2015, NSS intuża f'Google Chrome u kien ivverifikat b'mod indipendenti mit-tim ta 'Google indipendentement minn Mozilla (mill-2015, Chrome qaleb għal BoringSSL, iżda l-appoġġ għall-port ibbażat fuq NSS jibqa').
Il-problemi ewlenin li minħabba fihom il-problema baqgħet ma nstabitx għal żmien twil:
- Il-librerija modulari NSS u l-ittestjar tal-fuzzing twettqu mhux kollha kemm huma, iżda fil-livell ta 'komponenti individwali. Pereżempju, il-kodiċi għad-dekodifikazzjoni tad-DER u ċ-ċertifikati tal-ipproċessar ġie ċċekkjat separatament - waqt il-fuzzing, seta' nkiseb ċertifikat li jwassal għall-manifestazzjoni tal-vulnerabbiltà inkwistjoni, iżda l-kontroll tiegħu ma laħaqx il-kodiċi ta' verifika u l-problema ma waslitx. tiżvela ruħha.
- Waqt l-ittestjar tal-fuzzing, ġew stabbiliti restrizzjonijiet stretti fuq id-daqs tal-output (10000 bytes) fin-nuqqas ta 'restrizzjonijiet simili fl-NSS (ħafna strutturi fil-modalità normali jista' jkollhom daqs ta 'aktar minn 10000 bytes, għalhekk kienet meħtieġa aktar data ta' input biex jiġu identifikati l-problemi) . Għal verifika sħiħa, il-limitu kellu jkun 224-1 bytes (16 MB), li jikkorrispondi għad-daqs massimu taċ-ċertifikat permess fit-TLS.
- Kunċett żbaljat dwar il-kopertura tal-kodiċi tal-ittestjar tal-fuzz. Il-kodiċi vulnerabbli ġie ttestjat b'mod attiv, iżda bl-użu ta 'fuzzers li ma setgħux jiġġeneraw id-dejta tal-input meħtieġa. Pereżempju, fuzzer tls_server_target uża sett predefinit ta' ċertifikati lesti, li llimitaw il-verifika tal-kodiċi tal-verifika taċ-ċertifikat għal messaġġi TLS u bidliet fl-istat tal-protokoll biss.
Sors: opennet.ru
