按 Enter 到主內容區
:::

TWCERT-電子報

:::

更新加密工具GnuPG,阻止偽造簽章事件

發布日期:
字型大小:
  • 發布單位:TWCERT/CC
  • 更新日期:2019-04-02
  • 點閱次數:508
更新加密工具GnuPG,阻止偽造簽章事件

CVE編號

CVE-2018-12020

內文

●概述:
GNU Privacy Guard簡稱GnuPG,係完整且免費的OpenPGP標準建置,以萬能鑰管理系統保護簽章資料,眾多前端應用程式均借重其現成加密技術,可謂是全球最普及的email用戶端數位簽章軟體,經分析因其程式mainproc.c瑕疵,未對妥善檢查檔名參數,遠端攻擊者得以伺機注入多種控制符號,並偽造status message交由其他程式解析,若負責解析的程式採用--status-fd 2選項,則偽冒攻擊生效,詐騙者訊息被用戶程式解析且信任,與一個月前禍及Thunderbird、Apple Mail、Outlook的加密工具漏洞”eFail”相較,本次SigSpoof更為嚴重,影響電郵安全、備份安全、更新檔佈署等工作領域,亦衝擊如Git般的source code版本控制系統,GnuPG Project已更新版本,可公開下載。
●編註:
(1) SigSpoof弱點特性
在OpenPGP協定運作時,原始輸入檔案名稱視同字串參數,可以被納進簽章或加密訊息,與GnuPG之身分訊息合併在單一純文字封包,並以預定義之關鍵字區隔,而在接收端解密與驗證運算階段,GPG tool使用關鍵字切割資訊,能通知及顯示該檔名,當然要帶著有效簽章,因身分訊息(status message)產生時伴隨著"--status-fd N"的選項值,N代表檔案描述符,當N=2,也就是 --status-fd 2 時,身分訊息與正規診斷訊息共用stderr(C語言內建標準錯誤輸出,通常是螢幕)途徑。
然而GnuPG程式碼mainproc.c因設計瑕疵,未對長達255字元之檔名參數作妥善檢查,讓遠端攻擊者得以注入結束控制符號串列(換行符號、GOODSIG或VALIDSIG狀態碼),甚至偽造status message,身分訊息會交由其他程式解析,以取得簽章與相關參數之有效性資訊,若負責解析的程式本身採用--status-fd 2選項,則惡意偽冒攻擊生效,讓詐騙者訊息被用戶程式解析且信任,儘管GnuPG開發者投注高度能量去過濾所輸出的診斷辨識內容,但使用上述技巧,仍可假造已簽章郵件的身分稽核資料。
(2)風險分析
文內所述攻擊手法極度危險,偽造之message封包甚至完全無須加密,即能包含於該加密檔案的檔名參數內,GnuPG此破綻影響層次深遠,因為現行運用範圍包括電郵安全、備份安全、更新檔佈署等領域,多數工具軟體皆涉及該事件,甚至類似Git這樣的source code版本控制系統亦受衝擊。

影響產品

GnuPG 2.2.8 之前版本

解決辦法

下載GnuPG 2.2.8壓縮檔,連結https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.8.tar.bz2,簽章可連結https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.8.tar.bz2.sig
回頁首