په موزیلا NSS کې د کوډ اجرا کولو زیانمنتیا کله چې سندونه پروسس کوي

یو مهم زیانمنونکی (CVE-2021-43527) د NSS (د شبکې امنیت خدماتو) د کریپټوګرافیک کتابتونونو په سیټ کې پیژندل شوی چې د موزیلا لخوا رامینځته شوی ، کوم چې د DSA یا RSA-PSS ډیجیټل لاسلیکونو پروسس کولو پرمهال د برید کونکي کوډ اجرا کولو لامل کیدی شي. د DER کوډ کولو طریقه (د کوډ کولو ځانګړی قواعد). مسله، د BigSig کوډ نومول شوی، په NSS 3.73 او NSS ESR 3.68.1 کې حل شوی. په توزیع کې د بسته بندي تازه معلومات د Debian، RHEL، Ubuntu، SUSE، Arch Linux، Gentoo، FreeBSD لپاره شتون لري. د فیډورا لپاره تراوسه هیڅ تازه معلومات شتون نلري.

ستونزه په هغه غوښتنلیکونو کې رامینځته کیږي چې د CMS، S/MIME، PKCS #7 او PKCS #12 ډیجیټل لاسلیکونو اداره کولو لپاره NSS کاروي، یا کله چې په TLS، X.509، OCSP او CRL تطبیقونو کې سندونه تاییدوي. زیانمنتیا په مختلفو مراجعینو او سرور غوښتنلیکونو کې ښکاره کیدی شي چې د TLS، DTLS او S/MIME، بریښنالیک مراجعینو او د PDF لیدونکو ملاتړ کوي چې د ډیجیټل لاسلیکونو تصدیق کولو لپاره د NSS CERT_VerifyCertificate() کال کاروي.

LibreOffice، Evolution او Evince د زیان منونکي غوښتنلیکونو مثالونو په توګه یاد شوي. په احتمالي توګه، ستونزه ممکن په پروژو هم اغیزه وکړي لکه Pidgin، Apache OpenOffice، Suricata، Curl، Chrony، Red Hat Directory Server، Red Hat Certificate System، mod_nss د اپاچی HTTP سرور لپاره، د اوریکل مخابراتو پیغام رسولو سرور، اوریکل ډایرکټر سرور انټرپریس ایډیشن. په هرصورت، زیان په فایرفوکس، تندربرډ او تور براوزر کې نه ښکاري، کوم چې د تایید لپاره جلا موزیلا::pkix کتابتون کاروي، چې په NSS کې هم شامل دی. د کرومیم میشته براوزرونه (مګر دا چې دوی په ځانګړي ډول د NSS سره جوړ شوي نه وي) ، کوم چې تر 2015 پورې NSS کارولی ، مګر بیا بورینګ ایس ایل ته بدل شوی ، هم د ستونزې لخوا اغیزمن ندي.

زیانمنتیا د secvfy.c فایل څخه vfy_CreateContext فنکشن کې د سند تصدیق کولو کوډ کې د غلطۍ له امله رامینځته کیږي. تېروتنه هغه وخت رامنځ ته کیږي کله چې پیرودونکي د سرور څخه سند لولي او کله چې سرور د پیرودونکي سندونه پروسس کوي. کله چې د DER-encoded ډیجیټل لاسلیک تصدیق کوي، NSS لاسلیک په ثابت اندازې بفر کې ډیکوډ کوي او بفر د PKCS #11 ماډل ته لیږدوي. د نورو پروسس کولو په جریان کې، اندازه د DSA او RSA-PSS لاسلیکونو لپاره په غلطه توګه چک کیږي، کوم چې د VFYContextStr جوړښت لپاره تخصیص شوي بفر د ډیریدو لامل کیږي که چیرې د ډیجیټل لاسلیک اندازه د 16384 بټونو څخه زیاته وي (2048 بایټ د بفر لپاره تخصیص شوي، مګر دا نه لیدل کیږي چې لاسلیک لوی کیدی شي)).

هغه کوډ چې زیانمنونکي لري په 2003 کې موندل کیدی شي، مګر دا په 2012 کې د بیا کار کولو تر ترسره کیدو پورې ګواښ نه و. په 2017 کې، ورته غلطی د RSA-PSS مالتړ پلي کولو په وخت کې رامنځته شوې. د برید د ترسره کولو لپاره، د اړتیا وړ معلوماتو ترلاسه کولو لپاره د ځینې کلیدونو د سرچینې ژور تولید ته اړتیا نشته، ځکه چې د ډیجیټل لاسلیک درستیت چک کولو دمخه په مرحله کې ډیر جریان واقع کیږي. د ډیټا هغه برخه چې له حدودو هاخوا تیریږي د حافظې ساحې ته لیکل کیږي چې دندې ته اشاره کوي ، کوم چې د کاري استحصال رامینځته کول اسانه کوي.

زیانمنتیا د ګوګل پروژې زیرو د څیړونکو لخوا کشف شوه پداسې حال کې چې د نوي فز کولو ازموینې میتودونو سره تجربه کول او دا یو ښه ښودنه ده چې څنګه کوچني زیانونه په پراخه کچه ازمول شوي مشهوره پروژه کې د اوږدې مودې لپاره نه موندل کیدی شي:

  • د NSS کوډ د تجربه لرونکي امنیتي ټیم لخوا ساتل کیږي چې د عصري ازموینې او غلط تحلیل تخنیکونو په کارولو سره. په NSS کې د زیان منونکو پیژندلو لپاره د پام وړ انعامونو ورکولو لپاره ډیری پروګرامونه شتون لري.
  • NSS یوه له لومړنیو پروژو څخه وه چې د ګوګل د oss-fuzz نوښت سره یوځای شوه او د موزیلا په libFuzzer-based fuzz ټیسټ سیسټم کې هم ازموینه شوې.
  • د کتابتون کوډ څو ځله په مختلفو جامد تحلیل کونکو کې چک شوی، پشمول د 2008 راهیسې د پوښښ خدمت لخوا څارل کیږي.
  • تر 2015 پورې، NSS په ګوګل کروم کې کارول کیده او په خپلواکه توګه د ګوګل ټیم ​​لخوا په خپلواکه توګه د موزیلا څخه تایید شوی (د 2015 راهیسې، کروم بورینګ ایس ایل ته بدل شوی، مګر د NSS پر بنسټ پورټ ملاتړ پاتې دی).

اصلي ستونزې چې له امله یې ستونزه د اوږدې مودې لپاره ناڅرګنده پاتې شوه:

  • د NSS ماډلر کتابتون او مبهم ازموینه په ټولیزه توګه نه بلکې د انفرادي اجزاوو په کچه ترسره شوې. د مثال په توګه، د DER د کوډ کولو او پروسس کولو سندونو لپاره کوډ په جلا توګه چک شوی و - د فز کولو په وخت کې، یو سند ترلاسه کیدی شي چې په پوښتنې کې د زیان مننې څرګندیدو لامل شي، مګر دا چک د تایید کوډ ته نه و رسیدلی او ستونزه نده شوې. خپل ځان ښکاره کړي.
  • د فز کولو ازموینې په جریان کې ، په NSS کې د ورته محدودیتونو په نشتوالي کې د محصول اندازې (10000 بایټس) باندې سخت محدودیتونه وضع شوي وو (ډیری جوړښتونه په نورمال حالت کې له 10000 بایټس څخه ډیر اندازه کیدی شي ، نو د ستونزو پیژندلو لپاره ډیرو معلوماتو ډیټا ته اړتیا وه) . د بشپړ تایید لپاره، حد باید 224-1 بایټس (16 MB) وي، کوم چې په TLS کې اجازه ورکړل شوي د سند اعظمي اندازې سره مطابقت لري.
  • د فز ازموینې کوډ پوښښ په اړه غلط فهم. زیانمنونکی کوډ په فعاله توګه ازمول شوی و، مګر د فزرز په کارولو سره چې د اړین ان پټ ډیټا تولیدولو توان نلري. د مثال په توګه، fuzzer tls_server_target د چمتو شوي سندونو یو پخوانی ټاکل شوی سیټ کارولی، کوم چې د سند تصدیق کوډ چیک یوازې د TLS پیغامونو او د پروتوکول حالت بدلونونو پورې محدود کړی.

سرچینه: opennet.ru

Add a comment