GSS資安電子報0175期【2019年十大新Open Source安全弱點】

2020年三月12日(四) PM 10:14

原文參考:https://resources.whitesourcesoftware.com/blog-whitesource/top-security-open-source-vulnerabilities

翻譯及整理:叡揚資訊 資訊安全事業處

175.1 

       2019年過去了,所有人都帶著希望與新的計劃迎向2020年,儘管過去我們有許多事情選擇放棄,但open source安全弱點的問題,仍然像以往一樣被重視。為了讓大家知道,我們辛苦工作的知識團隊,深入研究WhiteSource open source弱點資料庫,為您提供2019年排名前十名open source安全弱點。而我們的資料庫包含將近350萬個弱點文件,以及由NVD、安全公告和open source問題追踪器等數十個來源匯集而成,以確保盡可能地涵蓋open source所有弱點問題。

       今年十大已知open source 安全弱點清單中,包含許多元件編寫時常用的程式語言如JavaScript、Java、Go、C和Ruby等。這些弱點元件包含所有從container orchestration到操作系統,或從Java的Web服務器環境到Ruby託管服務等等,這樣的例子不勝枚舉。

       而2019年前幾名open source弱點清單中,某些弱點的ID是以WS開頭,而不是常見的CVE開頭;這是因為儘管NVD是一個大型且知名的弱點資料庫,廣泛涵蓋了CVE的元件,但它不包括在CVE資料庫以外,發布的open source弱點,原因是因為open source社群具有協作和非集中式的性質,因此某些open source弱點會在CVE以外的open source 元件問題跟蹤器或公告中發布;而WhiteSource資料庫除了NVD之外,還從多種資源中收集數據,因此,當一個open source弱點發布到NVD以外的資源中,且沒有CVE開頭的索引時,在WhiteSource團隊研究並確認後,它將帶有WS開頭WhiteSource的索引號。

無論是WS還是CVE弱點,以下清單是2019年發布的十大open source安全弱點。

1. Lodash

175.2

CVE-2018-16487

受影響的版本:4.17.11之前版本

嚴重程度評分:嚴重— 9.8

這個問題(ID為WS-2018-0210)在WhiteSource的弱點資料庫已經觀察一段時間,於2019才在NVD中發布,雖然去年已經領先NVD發布這個問題,但因為這個元件受歡迎程度及該問題的弱點評分很高,所以決定將他列為2019弱點的第一名,並再次來做介紹。

這個弱點的原型是在Lodash node模組中被發現,可以透過trick merge、mergeWith和defaultsDeep來添加或修改Object原型屬性。Lodash是一個非常受歡迎的open source軟體,可幫助簡化JavaScript使用array、number、object、string…等功能,使開發人員透過使用Lodash的模組化來操作和測試iterating array、object、string並創建複合函數。

根據Lodash文件指出,此元件協助簡化JavaScript的使用,因Lodash在npm當前的版本(v4.17.15)每週下載超過2700萬,這表示用戶都認同這個元件。您可以在以下找到有關此弱點的更多資訊以及在GitHub上的修復訊息

 

2. JS-YAML

175.3

WS-2019-0063

受影響的版本:3.13.1之前版本

嚴重程度評分:高— 8

JS-YAML被發現在3.13.1之前的版本,容易受到注入代碼的攻擊,這個流行的JavaScript元件在安全性修復方面已經有一年的歷史,這只是他們要處理的問題之一。根據npm security公告,load()函數可能透過惡意的YAML文件執行任意代碼注入。

JS-YAML是JavaScript YAML 1.2的解析和編輯器,是專門讀取YAML資料庫的元件,YAML是一種適用於所有程式語言較人性化的數據序列標準;根據JS-YAML在GitHubnpm的文件指出,這元件是從PyYAML衍生而出,被完全重寫後已變得非常快,並支援1.2規範。

npm的網站上JS-YAML每週下載量超過1,400萬次,並有9,400多個dependents,展示了這個元件受歡迎以及被廣泛使用的程度,若您也是眾多JS-YAML的用戶之一,您可持續追蹤使用的版本以確保安全。

關於此問題建議更新至3.13.1以後的版本。


3. fstream

CVE-2019-13173

受影響的版本:1.0.12之前版本

嚴重程度評分:高— 7.5

在fstream 1.0.12之前的版本,容易被任意文件覆蓋影響。根據npm安全公告,fstream.DirWriter()函數容易受到攻擊,而攻擊者將提取系統中已存在的文件,包含hardlink及hardlink連接比對文件的壓縮檔以覆蓋系統文件。

fstream 是非常受歡迎的open source軟體,目前每週在npm超過470萬的下載次數,而此專案為Node提供更進階的串流服務,使Github文件描述該專案功能類似於FS Stream,但帶有stat,且支援directories 和symbolic link以及普通文件。即使使用者不曾變更內容或新增連結,也能用來設定統計文件的訊息。根據npm安全公告回覆將其版本更新至1.0.12版之後即可解決此問題。

這是另一個WhitesSource比NVD還早提出安全疑慮,並加入弱點資料庫的JS問題(編號為WS-2019-0100)。某些開發語言會比其他語言更有可能在NVD以外的地方發布弱點,且有超過31%以上的JS弱點發布在NVD以外的弱點資料庫,就如同這個例子,這個弱點一開始被發布在WS弱點資料庫,隨後NVD才將其加入CVE弱點資料庫並發布。

您可以在以下找到有關此弱點的更多資訊以及在GitHub上的修復訊息。

 

4. Python

175.4

CVE-2019-16056

受影響的版本:版本至2.7.16、3.x至3.5.7、3.6.x至3.6.9和3.7.x至3.7.4版本

嚴重程度評分:高— 7.5

這個問題是在Python email模組,特定的版本中發現的弱點,在郵件位址中若包含多個@符號,則可能無法正確的解析電子郵件位址,而攻擊者可能利用此弱點,誘使應用程式接收應被拒絕的郵件位址。

自2015年起,Python一直是受社群喜愛的語言之一,在GitHub的主要語言清單中一直排名第三,直到今年躍升第二名,並取代了java的寶座。而輸入驗證模組(CWE-20)是Python中最常見的問題類型,但不代表備受喜愛的Python是個不安全的語言。實際上,此元件的安全性相當可靠。當我們隨著時代的演進,研究Python中open source的安全性時,我們發現在過去十年中,高嚴重性弱點的百分比相對較低,總體的弱點較2015年以來數量是持續減少的。

您可以在GitHubPython問題追蹤器找到有關Python弱點和修復的更多資訊。

 

5. Linux kernel

175.5

CVE-2019-15292

受影響的版本:5.0.9.之前版本

嚴重程度評分:嚴重— 9.8

考慮到社群及程式數量逐年增長,將帶來大量的資金來調查及解決OG open source軟體的問題,為整個產業提供更強大的動力。2019年也是如此,Linux kernel團隊也發布,且修復了許多的弱點。

此問題是去年八月發布的高度嚴重弱點之一,ubuntu 安全公告中指出,Empia EM28xx DVB USB的設備驅動程式,在斷開連線後含有一個UAF弱點,而駭客恐利用此弱點導致系統服務停擺。

請檢查並確保您是否使用易受攻擊的版本,並在這裡這裡這裡,了解更多有關Linux kernel安全問題和修復狀態。

 

6. Apache Tomcat

175.6

CVE-2019-0232

受影響的版本:9.0.0.M1至9.0.17、8.5.0至8.5.39和7.0.0至7.0.93

嚴重程度評分:高— 8.1

 Apache Tomcat使用人數眾多,它來自一個龐大且活躍的社群,多年來一直在努力提供Java人員,運行Web應用程式所需的軟體。

專案中的弱點版本,當enableCmdLineArguments在Windows上運行時,由於JRE將指令及參數傳遞給Windows的方式存在錯誤,,因此Apache Tomcat中的共用閘道接口 (Common Gateway Interface , CGI)Servlet能夠遠端代碼執行,讓駭客可通過網絡執行惡意指令。

在目標運行Windows,以非默認配置,以及結合批量處理文件時,才能利用這個問題。發生這些情況時,該弱點可能導致輸入驗證的弱點(CWE-20)。。

要解決這個問題,使用者需確認Tomcat依據預設設定執行,並停用CGI選項enableCmdLineArguments。推薦的修復方式是升級到7.9.948.5.409.0.19等安全的版本。

Seclists.org網站發布了有關此弱點的說明,您可以在Markus Wulftange 網站以及MSDN文章中找到有關JRE更多訊息。

 

7. cURL

175.7

CVE-2019-5481

受影響的版本:7.52.0至7.65.3

CVE-2019-5482

受影響的版本:7.19.4至7.65.3

嚴重程度評分:嚴重— 9.8

9月通報了兩個高風險的cURL弱點。第一個CVE-2019-5481問題是以C為基礎URL傳輸元件。此弱點是double-free的弱點在FTP-kerberos程式碼中被找到。根據curl安全公告提出"透過CURLOPT_KRBLEVEL選項設置,易受攻擊的libcurl版本會以FTP傳輸到伺服器,使用kerberos"

接著第二個弱點 CVE-2019-5482,這是curl’s的TFTP協議處理程序中暫存區超過負荷。

curl已經普遍用於現代科技的網路傳輸,包含汽車,路由器,列印機,視聽音響設備,手機,影音播放器等。 因為curl用於成千上萬的軟體與APP,每一天影響的人數達十億人,幾乎是影響每個人,因此建議您盡快檢查curl版本並更新。

慶幸的是,兩個安全弱點的修復版均在弱點被發現的兩週內發佈在curl社群,大大低於商業期望的標準,這個例子說明了在開源社群中修復弱點發布更新的速度極快,並且建議使用者確保不遺漏更新版本。

您可以在此處cURL安全公告上找到修復方式及更多資訊。

 

8. RubyGems

175.8

CVE-2019-8320

受影響的版本:2.7.6及更高版本至3.0.2

嚴重程度評分:高— 7.4

所有喜愛的Ruby開發人員要特別注意在易受攻擊的RubyGems版本中發現了directory traversal問題,是在大型Ruby社群中受歡迎的hosting service。

3月份發布的RubyGem安全公告顯示, RubyGems版本存在的弱點,讓駭客可以刪除刪除目標位置,“在新增資料夾或打開檔案之前(現在包括用於symlinks的路徑檢查程式)”;並進一步解釋:“如果該目標隱藏在symlink後面,則惡意gem可能會使駭客刪除用戶電腦上的檔案“。RubyGem警告開發人員:“有鑑於gem作為最高權限運行的使用頻率,以及可預測系統路徑(例如:/ tmp,/ usr等),可能會導致使用者資料遺失或系統無法使用”。

此弱點由bug bounty 操作者HackerOne報告給RubyGems社群,您可以在這裡找到概念證明。RubyGems也在這裡發布了補丁。

這顯示出bug bounty已成為open source社群中安全生態系統的一環。這只是在HackerOne上發布的RubyGems問題中的一個例子。 您可以在RubyGem官方網站上查看所有問題的完整列表及解決方案。

 

9. Kubernetes

175.9

CVE-2019-11253

受影響的版本:v1.0-1.12和v1.13.12,v1.14.8,v1.15.5和v1.16.2之前的版本

嚴重程度評分:高— 7.5

這是一個來自container社群中OGs的一個問題,在不提及container的系統下,這份列表可能不完整。

API伺服器在弱點版本中,不當輸入驗證的問題,允許授權用戶可以發送惡意的YAML或JSON指令。這將導致伺服器消耗過多的CPU或記憶體,然後可能讓系統無法使用。這類型的攻擊又稱作Billion Laughs Attack,因為在最廣為人知的案例中,第一個實體是字串" lol"( Laugh Out Loud),因此被稱為"billion laughs"。可悲的是,這種攻擊的結果可能會很有趣。

Containers已逐漸成為DevSecOps關鍵的一環,隨著Container的流行,Kubernetes和其他open source元件越來越受到安全社群的關注,幫助他們發現、修復和發布更多的安全問題。假如你是Kubernetes越來越多的使用者之一,建議採用Kubernetes安全守則,並保持最新版本。

您可以在GitHubKubernetes安全公告上找到有關該弱點說明及其修復方式。

 

10. Sudo

175.10

CVE-2019-14287

受影響的版本:1.8.28之前的版本

嚴重程度評分:高— 8.8 

最後同樣重要的是來自Sudo的headline-grabber,該程式被用於Linux操作系統或其他Unix-like的操作系統,可幫助使用者委派特權。

10月14日,Sudo團隊發布了有關CVE-2019-14287的安全警報,這個新的安全問題是由Apple Information Security的Joe Vennix發現,在 1.8.28 之前的所有Sudo的版本中,該安全弱點可能使惡意用戶能夠以root用戶身份執行任意命令,即使在不允許root訪問的情況下也是如此。

考慮到Sudo在Linux用戶中的使用情況非常普遍,因此在很短的時間內,此安全弱點被廣泛得知。

Sudo團隊迅速發布了一個安全版本,因此,如果您使用易受攻擊的版本與易受攻擊的安全性配置,則應該要完成更新到1.8.28或更高版本。

 

特別提出說明:SQLite

CVE-2019-8457

受影響的版本:從3.6.0到3.27.2

嚴重程度評分:嚴重— 9.8

SQLite團隊在今年已經全力以赴處理安全問題,因此我們認為應該特別提及該項目(project)。在易受攻擊的SQLite3版本中發現了一個嚴重的安全弱點。發現在處理無效的rtree tables時,rtreenode()函式中的boundary condition可能允許遠程攻擊者向應用程式發送特製的請求,並觸發heap越界讀取(CWE-125)使其crash 。

您可以在SQLite 3.28.0版發布的說明和公告中,閱讀有關此問題及其修復方式的更多訊息。

SQLite是一種實行SQL database engine的C語言元件,並且擁有世界上最廣泛部署的Database Engine美譽。就該項目(project)而言支援包括所有行動設備、大多數電腦以及無限的應用程式,但不限於Android、iPhone和iOS devices,Mac或Windows 10 設備,每個Firefox、Chrome、和Safari瀏覽器,Skype、iTunes、Dropbox client、PHP、Python,或大多數電視機、數位視訊機上盒和汽車多媒體系統。

與許多大型且知名的open source專案一樣,在程式上有許多必需關注的安全性問題,以致頻繁發布新的安全弱點,及其修復的方式。我們都在使用SQLite支援的設備及應用程式,也許多人依賴SQLite開發專案,因此最要緊的是持續更新版本,這樣我們就不會檢測(find)出自己使用的是易受攻擊的版本,也不會陷入Magellan-type的困境。

年復一年保護Open Source 的安全

       以上是2019年我們排名前十名,以及一個需要特別關注的open source弱點。這些各式各樣的元件只是為了向您說明,任何open source 元件無論新舊無論大小,都可能具有易受攻擊的版本需要更新。最重要的是要記住,雖然我們努力將範圍縮小到十個,但每年還是會發布成千上萬個open source安全弱點,而大多數都已被修復。這十個高度受歡迎的open source元件清單中,包括了從高到嚴重等級的安全問題,但是還有成千上萬個open source安全弱點被遺漏了。

      如果此列表中只有一個最重要的重點,那就是:確保社群發布新弱點後,立即追蹤您的open source元件,並解決易受攻擊的版本。open source元件已成為我們軟體開發不可或缺的一部分。因此,試著保持這樣的決議,以確保它們整年都安全。

想要掌握更多新的open source安全弱點更新?請查看主要弱點說明

相關文章

金融業恐淪Log4j漏洞風暴最大受害者!可能有高達一半比例的公司使用10個以上有...

企業如果想要因應Log4j漏洞的危機,首先要先清查自己到底有多少系統使用了有漏洞的Log4j版本,而根據國內一家廠商對用戶進行的調查,許多產業都無法倖免,但其中,金融業所要處理的Log4j漏洞管理作業可能最繁重,因為他們的金融業用戶中,使用有漏洞Log4j版本超過10個的公司,竟高達50%
2022/01/03