OpenSSL RCE 漏洞影響多個Synology產(chǎn)品
OpenSSL RCE 漏洞影響多個Synology產(chǎn)品。
中國臺灣NAS廠商Synology近日公開了影響其產(chǎn)品的2個遠程代碼執(zhí)行漏洞和DoS OpenSSL漏洞,CVE編號為CVE-2021-3711和CVE-2021-3712。
CVE-2021-3711
為解密SM2加密的數(shù)據(jù),應用需要調(diào)用API函數(shù)EVP_PKEY_decrypt()。一般來說,應用會調(diào)用該函數(shù)兩次。第一次,函數(shù)的out 參數(shù)為NULL,退出時outlen參數(shù)等于解密明文所需的緩存大小。然后應用會分配足夠大小的緩存并再次調(diào)用EVP_PKEY_decrypt(),這次調(diào)用時out參數(shù)為非空值。
該漏洞是SM2解密代碼實現(xiàn)中的一個漏洞,具體來說是第一次調(diào)用EVP_PKEY_decrypt()計算得到的解密明文所需的緩存大小可以小于第二次調(diào)用的真實大小。這會導致應用第二次調(diào)用 EVP_PKEY_decrypt() 時由于緩存太小引發(fā)緩存溢出。可以向應用展示解密SM2內(nèi)容的惡意攻擊者可以修改緩存數(shù)據(jù)的內(nèi)容引發(fā)最大62字節(jié)的溢出,改變應用行為或引發(fā)應用奔潰。緩存的位置與具體應用有關,但都是堆分配的。該漏洞CVSS3評分8.1分,影響OpenSSL 1.1.1-1.1.1k版本,目前已在 OpenSSL 1.1.1l版本中修復。
CVE-2021-3712
ASN.1字符串在OpenSSL中以ASN1_STRING結構的形式表示,包含一個表示字符串數(shù)據(jù)的緩存和表示緩存長度的域。而正常的C字符串是以NUL (0)字節(jié)結束的字符串數(shù)據(jù)形式來表示緩存的。雖然不是嚴格要求,使用OpenSSL自帶的d2i函數(shù)處理的ASN.1字符串以及用 ASN1_STRING_set() 函數(shù)設置的字符串都會以NUL結束。但是在ASN1_STRING數(shù)組中,應用可以直接設置data域和length域來構建不以NUL結束的有效的ASN1_STRING結構。具體可以使用ASN1_STRING_set0()函數(shù)來實現(xiàn)。
但大多數(shù)打印ASN.1 數(shù)據(jù)的OpenSSL函數(shù)都假定ASN1_STRING字符串數(shù)組是以NUL結束的。當應用請求打印ASN.1結構,而ASN.1結構中包含不以NUL結尾的數(shù)據(jù)域的ASN1_STRING時,就會引發(fā)讀緩存溢出。這一問題同樣可以出現(xiàn)在證書處理中,包括X509_get1_email()、X509_REQ_get1_email() 和 X509_get1_ocsp() 函數(shù)。如果惡意攻擊者可以讓應用直接構建一個ASN1_STRING,然后通過受影響的OpenSSL函數(shù)來出席,就可以引發(fā)DoS攻擊和應用奔潰。應用于證書攻擊時可能引發(fā)隱私內(nèi)存內(nèi)容泄露,比如私鑰和敏感明文信息。該漏洞影響OpenSSL 1.1.1-1.1.1k和OpenSSL 1.0.2-1.0.2y版本,目前已在OpenSSL 1.1.1j 和OpenSSL 1.0.2za版本中修復。
受影響的產(chǎn)品
受影響的產(chǎn)品包括Synology DiskStation Manager (DSM)、Synology Router Manager (SRM)、虛擬網(wǎng)絡Plus 服務器和虛擬服務器,具體包括:

本文翻譯自:https://www.synology.com/en-us/security/advisory/Synology_SA_21_24如若轉載,請注明原文地址。