進出口銀行嚴重漏洞曝光

發表 矯正性釋放 進出口 4.92.2 隨著關鍵的消除 弱點 (CVE-2019,15846),在預設配置中,這可能導致具有 root 權限的攻擊者遠端執行程式碼。 只有當啟用 TLS 支援並透過將專門設計的用戶端憑證或修改值傳遞給 SNI 來利用該支援時,才會出現此問題。 漏洞 已確定 由誇利斯。

問題 現在 在處理程序中轉義字串中的特殊字元(string_interpret_escape() 來自 string.c),是由於字串末尾的 '\' 字元在空字元 ('\0') 之前被解釋並轉義而引起的。 轉義時,序列 '\' 和後面的空行尾代碼被視為單個字符,並且指針移動到行外的數據,該數據被視為行的延續。

呼叫 string_interpret_escape() 的程式碼根據實際大小為排出分配一個緩衝區,並且暴露的指標最終位於緩衝區邊界之外的區域。 因此,當嘗試處理輸入字串時,會出現從分配的緩衝區邊界之外的區域讀取資料的情況,並且嘗試寫入未轉義的字串可能導致寫入超出緩衝區的邊界。

在預設配置下,在與伺服器建立安全連線時,可以透過向 SNI 發送專門設計的資料來利用該漏洞。 也可以透過修改為客戶端憑證驗證配置的配置中的peerdn值或匯入憑證時來利用該問題。 從發布開始就可能透過 SNI 和 Peerdn 進行攻擊 進出口 4.80,其中 string_unprinting() 函數用於取消列印peerdn和SNI內容。

漏洞利用原型已準備好透過 SNI 進行攻擊,在具有 Glibc 的 Linux 系統上的 i386 和 amd64 架構上運行。 此漏洞利用堆區域上的資料覆蓋,導致覆蓋儲存日誌檔案名稱的記憶體。 檔案名稱替換為“/../../../../../../../../etc/passwd”。 接下來,包含寄件者地址的變數將被覆蓋,該變數首先保存在日誌中,這允許您向系統新增使用者。

發行版發布的包含漏洞修復的軟體包更新 Debian, Ubuntu, Fedora, SUSE/開放SUSE и FreeBSD的。 RHEL 和 CentOS 題 不敏感,因為 Exim 未包含在其常規包存儲庫中(在 EPEL обновление 已經 形成的, 但現在 未放置 到公共存儲庫)。 在 Exim 程式碼中,該問題透過一行程式碼解決了 修補,如果反斜線位於行尾,則會停用反斜線的轉義效果。

作為阻止該漏洞的解決方法,您可以停用 TLS 支援或添加
ACL 部分「acl_smtp_mail」:

拒絕條件= ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
拒絕條件= ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

來源: opennet.ru

添加評論