近日,德國軟體開發商HannoBöck稱,一個早在2011年就被發現的PDF解析庫中的隱蔽bug,如今在大多數主流的PDF閱讀器中再次出現。
該bug最初是由德國軟體開發商Andreas Bogk,在Evince(GNOME桌面環境下的一個PDF,PostScript,DjVu,TIFF與DVI文檔查看工具)的解析器組件中被發現的,當時Andreas Bogk還協助Evince修復了該漏洞,並在2011年的混沌通信大會上展示了該漏洞。
Bogk發現具有特定結構的PDF文檔(PDF文件交叉引用內部參照表)會導致Evince應用程序進入一個死循環,並佔用本地所有的CPU資源,迅速耗盡內存,從而使Evince應用程序崩潰。
這個bug被大多數人所忽略,人們從未將它視為一個主要的安全問題,認為這只是一個安裝在Linux桌面上的小應用程序。
六年前的bug在主流的PDF閱讀器中重現
六年後的今天,曾經被人們忽視的小問題,如今卻轉變成了一個大問題。Böck表示,已經在眾多知名的PDF閱讀器中發現了類似的問題。
例如,Böck在PDFium中發現了Bogk當時報告的「loop」bug,該庫允許Chrome無需任何插件就可以在瀏覽器中,渲染PDF文檔。
Firefox中的pdf.js庫也受到影響。此外,Pdf.js庫還被用在了GitHub上,用於在網站界面渲染PDF文檔,而無需用戶下載文件並在第三方應用程序中查看。因此,GitHub的實現也極易受到「loop」bug的影響。
在Windows 8或更高版本中默認安裝的Windows Runtime PDF Renderer庫或WinRT PDF也受此影響。這是Edge內置的PDF查看器,也是Windows「Reader App」的默認PDF解析器。
類似地,開源PDF解析器(如Ghostscript和QPDF)同樣也受到了影響。這也意味著許多其他已經安裝部署Ghostscript或QPDF的web和桌面,都將受到該漏洞的影響。
Böck已向所有受影響的產品廠商報告了舊的錯誤信息,他們正準備為此推出補丁程序。
Adobe Reader未受影響
Adobe Reader和Apple的OS X內置PDF查看器並未受到影響。
研究人員說,他主要是通過Fuzzing技術來對每個項目庫進行測試后發現問題的。Fuzzing是一種基本的安全測試技術,用於測試人員分析程序的異常輸出響應。Google的安全專家非常熱衷於該技術,並極力向任何有興趣傾聽他們建議的人推薦該技術。
Böck指責受影響項目的管理員,沒有運行更新的測試套件。軟體開發人員不應該在沒有成功通過測試套件的情況下,發布新版本的應用程序。Böck同時還建議PDF應用程序,將Bogk「loop bug」演示文件添加到他們的測試用例中。