BigSig, Mozilla NSS-i haavatavus, mis võib lubada koodi käivitamist

Uudised teemal kriitilise haavatavuse tuvastamine (juba loetletud CVE-2021-43527 all) en krüptograafiliste raamatukogude komplekt NSS (Võrgu turvateenused) Mozillalt, mis võib viia pahatahtliku koodi käivitamiseni DER (Distinguished Encoding Rules) abil määratud DSA või RSA-PSS digitaalallkirjade töötlemisel.

probleem avaldub rakendustes, mis kasutavad digitaalallkirjade käsitlemiseks NSS-i CMS, S / MIME, PKCS # 7 ja PKCS # 12, või sertifikaatide kontrollimisel juurutustes TLS, X.509, OCSP ja CRL. Haavatavus võib ilmneda erinevates TLS-i, DTLS-i ja S/MIME-toega kliendi- ja serverirakendustes, meiliklientides ja PDF-vaaturites, mis kasutavad digitaalallkirjade kontrollimiseks NSS-i CERT_VerifyCertificate ()-kutset.

Haavatavate rakenduste näidetena on mainitud LibreOffice’i, Evolutionit ja Evince’i. Võimalik, et probleem võib mõjutada ka selliseid projekte nagu Pidgin, Apache OpenOffice, Suricata, Curl.

Samal ajal haavatavus ei ilmu Firefoxis, Thunderbirdis ja Tor-brauseris, mis kasutavad kontrollimiseks eraldi mozilla :: pkix teeki, mis on samuti osa NSS-ist. The Chrome'i-põhised brauserid (välja arvatud juhul, kui need olid spetsiaalselt koostatud NSS-iga), mis kasutas NSS-i kuni 2015. aastani, kuid kandus seejärel üle BoringSSL-i, neid probleem ei puuduta.

Haavatavuse põhjuseks on vfy_CreateContext sertifikaadi kinnituskoodi viga faili secvfy.c funktsioon. Viga ilmneb nii siis, kui klient loeb serverist sertifikaati nagu siis, kui server töötleb kliendi sertifikaate.

DER-kodeeritud digitaalallkirja kontrollimisel dekodeerib NSS allkirja fikseeritud suurusega puhvriks ja edastab selle puhvri moodulile PKCS # 11. Järeltöötluse ajal kontrollitakse DSA ja RSA-PSS allkirjade suurust valesti, mille tulemuseks on mis viib VFYContextStr struktuuri jaoks eraldatud puhvri ületäitumiseni, kui digitaalallkirja suurus ületab 16384 bitti (puhvri jaoks on eraldatud 2048 baiti, kuid pole kontrollitud, kas allkiri võib olla suurem).

Haavatavust sisaldav kood pärineb aastast 2003, kuid see ei olnud ohuks kuni refaktoreerimiseni aastal 2012. 2017. aastal tehti sama viga RSA-PSS toe rakendamisel. Rünnaku läbiviimiseks ei ole vajalike andmete saamiseks vaja teatud võtmeid ressursimahukat genereerida, kuna ületäitumine toimub digitaalallkirja kehtivuse kontrollimisele eelnevas etapis. Andmete piiridest väljapoole jääv osa kirjutatakse funktsiooninäitajaid sisaldavasse mälupiirkonda, mis muudab töötavate ärakasutamiste loomise lihtsaks.

Haavatavuse tuvastasid Google Project Zero teadlased katsete käigus uute segavate testimismeetoditega ja on hea näide sellest, kuidas triviaalsed haavatavused võivad hästi testitud tuntud projektis pikka aega avastamata jääda.

Nagu peamised probleemid, mille puhul probleem tähelepanuta jäi pikka aega:

  • NSS-i draiviteegi ja hägustamise teste ei viidud läbi tervikuna, vaid üksikute komponentide tasemel.
  • Näiteks kontrolliti eraldi koodi DER-i dekodeerimiseks ja sertifikaatide töötlemiseks; Hämardamise käigus oleks võinud saada sertifikaadi, mis viis kõnealuse haavatavuse avaldumiseni, kuid selle kontrollimine ei jõudnud kontrollkoodini ja probleem ei ilmnenud.
  • Hägukatsete ajal seati väljundi suurusele (10,000 10,000 baiti) ranged piirangud, kuna NSS-is selliseid piiranguid polnud (paljud struktuurid võivad tavarežiimis olla suuremad kui 2 24 baiti, seetõttu on probleemide tuvastamiseks vaja rohkem sisendandmeid ). Täielikuks kontrollimiseks oleks pidanud piirang olema 1 16 -XNUMX baiti (XNUMX MB), mis vastab TLS-is lubatud sertifikaadi maksimaalsele suurusele.
  • Väärarusaam koodi katvuse kohta hägusate testide abil. Haavatavat koodi testiti aktiivselt, kuid kasutades fusereid, mis ei suutnud vajalikke sisendandmeid genereerida. Näiteks fuzzer tls_server_target kasutas valmis sertifikaatide eelmääratletud komplekti, mis piiras sertifikaadi kinnituskoodi kontrollimist ainult TLS-sõnumite ja protokolli olekumuutustega.

Lõpuks Tasub mainida, et probleem koodnimega BigSig on parandatud versioonides NSS 3.73 ja NSS ESR 3.68.1 ja lahenduse uuendused paketi kujul on juba välja antud erinevates distributsioonides: Debian, RHEL, Ubuntu, SUSE, Arch Linux, Gentoo, FreeBSD jne.

Kui soovite selle kohta rohkem teada saada, võite nõu pidada järgmine link.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.