WhiteSource 公司基于 NVD,、安全公告和開源項(xiàng)目問題追蹤工具等回顧了2020年出現(xiàn)的十大開源漏洞,。如下:
1,、Lodash
CVE-2020-8203:CVSS 評分:7.4,,高危,受影響版本:4.17.2之前版本
易受攻擊的 Lodash 版本在使用 _.zipObjectDeep 時,,存在一個原型污染漏洞,。HackerOne 發(fā)布的原始報(bào)告指出,該漏洞可被用于在 Object.prototype 中注入屬性,,從而導(dǎo)致敏感信息暴露,、數(shù)據(jù)增加或修改或者拒絕服務(wù)。該報(bào)告提供了復(fù)現(xiàn)步驟:
通過 lodash 的 “zipObjectDeep” 函數(shù)構(gòu)建一個對象:
Lodash 是一個 JavaScript 工具庫,,文檔指出,,Lodash 通過簡化和數(shù)組、數(shù)字,、對象,、字符串等的工作,使得 JavaScript 更易于處理,。這也是為何很多開發(fā)人員喜歡用這個開源庫迭代數(shù)組,、對象和字符串;操縱和測試值,;以及創(chuàng)建復(fù)合函數(shù)的原因所在,。
2、FasterXML jackson-databind
CVE-2020-24616:CVSS評分8.1,,高危,,影響 2.9.10.6 之前的 2.x 版本
易受攻擊的 FasterXML Jackson-databind 錯誤地處理了和 br.com.anteros.dbcp.AnterosDBCPDataSource (即 Anteros-DBCP)之間存在關(guān)系的序列化小工具和鍵入之間的交互。
序列化是Java 開發(fā)人員的常見實(shí)踐,。多年來,,Java 序列化框架和庫中都出現(xiàn)了很多序列化問題。因 JSON 庫而聞名的一名開源開發(fā)人員 @cowtowncoder 指出,,“序列化小工具”的負(fù)面作用是能夠執(zhí)行惡意操作,,造成遠(yuǎn)程代碼執(zhí)行、拒絕服務(wù)或敏感數(shù)據(jù)泄露等攻擊,。雖然這種 exploit 類型可能會造成實(shí)際后果,,但該開發(fā)員表示這些攻擊不易執(zhí)行且要求具備很多前提條件。
多年來,,得益于它翻譯流行數(shù)據(jù)交換轉(zhuǎn)換器 JSON 和 Java 的方式,,jackson-databind 都是人們的最愛,是開發(fā)人員運(yùn)行 API 的必選,。如果你也是 Java 開發(fā),,請務(wù)必保證 Jackson-databind 是最新版本。
3、HtmLUnit
CVE-2020-5529:CVSS 8.1分,,高危,,影響2.37.0之前的版本
易受攻擊的 HtmlUnit 中存在代碼執(zhí)行問題。從NVD 中可看到,,當(dāng) HtmlUnit 不正確地初始化 Rhino 引擎時,,惡意 JavaScript 代碼可在應(yīng)用程序中執(zhí)行任意 Java 代碼。當(dāng)被嵌入安卓應(yīng)用程序中時,,由于對 Rhino 引擎的初始化未正確執(zhí)行,,惡意 JavaScript 代碼可在應(yīng)用上執(zhí)行任意 Java 代碼。
從文檔可知,,HtmlUnit 是 “Java 程序的 GUI-Less 瀏覽器”,,同時支持 JavaScript 和 AJAX 庫。它為 HTML 文檔建模,,并提供 API 供用戶調(diào)用頁面,、填寫表單、單擊鏈接等,。該開源項(xiàng)目通常用于測試或從網(wǎng)站檢索信息。
4,、Handlebars
CVE-2019-20920,,CVSS 評分8.1,高危,,影響3.0.8之前的版本以及4.5.3之前的 4.x 版本,。
NPM 安全公告指出,易受攻擊的 Handlebars 中存在一個任意代碼執(zhí)行問題,。該安全公告解釋稱,,該包的 lookup 助手未正確驗(yàn)證模板,使得惡意人員能夠提交在系統(tǒng)中執(zhí)行任意 JavaScript 的模板,。該漏洞可用于在服務(wù)器處理 Handlebars 模板中或者在受害者瀏覽器中運(yùn)行任意代碼,。該漏洞之前漏洞的修復(fù)方案不完整導(dǎo)致的。
Handlebars 是 Mustache 模板語言的一個擴(kuò)展,,是一種“無邏輯的模板語言,,使查看和代碼分離”更容易。目前從 npm 每周的下載超過700萬次,,它是一個極其熱門的開源項(xiàng)目,,由認(rèn)真負(fù)責(zé)的社區(qū)支持和維護(hù)。
5,、http-proxy
CVE 編號尚未分配:影響1.18.1之前的版本
某些 http-proxy 版本易受拒絕服務(wù)攻擊,。主體部分較長的HTTP 請求能夠觸發(fā) ERR_HTTP_HEADERS_SENT 未被處理的異常,從而使代理服務(wù)器崩潰。只有當(dāng)代理服務(wù)器通過使用 proxyReq.setHeader 函數(shù)在代理請求中設(shè)置標(biāo)頭時,,才會發(fā)生這種情況,。
Http-proxy 是一種 HTTP 可編程代理庫,支持 websocket 并有助于實(shí)現(xiàn)多個組件如反向代理和負(fù)載平衡器之類的組件,。它是一個非常受歡迎的開源庫,,目前每周的 NPM 下載量接近1200萬,而且支持2000多個依賴,。鑒于此,,用戶有必要確保使用的是最新版本 1.18.1。
6,、decompress
CVE-2020-12265,,CVSS 評分9.8,嚴(yán)重,,影響 4.2.1 以前的版本
NPM 安全公告指出,,受影響的 decompress 版本易受任意文件寫入漏洞影響。惡意人員可通過包含含有 / 的文件名稱寫入任意文件夾,,因?yàn)樵撥浖粫ㄟ^相對路徑阻止文件提取,。
Decompress 是一個致力于輕松提取文檔的開源項(xiàng)目。它說明了相對小型項(xiàng)目中的漏洞,,很多人通過它執(zhí)行簡單的任務(wù),,如果漏洞未得到修復(fù)可為用戶造成巨大損害。Decompress 等項(xiàng)目讓編程更容易,,但雖然它們執(zhí)行的任務(wù)看似簡單,,但不能因此忽視對開源漏洞的管理工作。
安全公告建議更新至版本 4.2.1 或后續(xù)版本,。
7,、XStream
CVE-2020-26217,CVSS評分8.8,,高危,,影響1.4.14之前版本
易受攻擊的 XStream 中存在一個遠(yuǎn)程代碼執(zhí)行漏洞。XStream 解釋稱,,“在解組時處理的流包括重構(gòu)之前寫入對象的類型信息,。因此,XStream 基于這些類型信息創(chuàng)建新的實(shí)例,。攻擊者能夠操縱處理后的輸入流,,并替換或注入可以執(zhí)行任意 shell 命令的對象?!?/p>
GitHub 安全公告建議依賴 XStream 的用戶將安全框架的默認(rèn)黑名單更新到 1.4.14 或后續(xù)版本,。遵循建議通過白名單設(shè)置 XStream 的 Security Framework 的用戶不受影響。
XStream 是一個開源庫,執(zhí)行從 Java 到 XML 的序列化,,然后再返回,。文檔列出了傳輸、持久性,、配置和單元測試的典型用法,。由于它是許多開源 Java Web 應(yīng)用程序所使用的非常流行的庫,因此確保正在使用最新版本并遵循建議非常重要,。
8,、Netty
CVE-2020-11612,CVSS 評分9.8,,影響 4.1.46 之前的 4.1.x 版本,。
ZlibDecoders 易受攻擊的 Netty 版本在解碼 ZlibEncoded 字節(jié)流時,可導(dǎo)致無限制的內(nèi)存分配,。惡意人員可利用該漏洞向 Netty 服務(wù)器發(fā)送較大的 ZlibEncoded 字節(jié)流,,從而迫使服務(wù)器將所有可用內(nèi)存分配給單個解碼器。
Netty 是一個異步事件驅(qū)動的網(wǎng)絡(luò)應(yīng)用程序框架,,旨在快速開發(fā)可維護(hù)的高性能協(xié)議服務(wù)器和客戶端,。該項(xiàng)目的文檔指出,此 NIO 客戶端/服務(wù)器框架有助于簡化和梳理 TCP 和 UDP 套接字服務(wù)器等網(wǎng)絡(luò)編程,。
9,、Spring Framework
CVE-2020-5398,CVSS 評分7.5,,影響版本包括:5.2.3之前的 5.2.x 版本、5.1.13 之前的 5.1.x 版本以及5.0.16之前的5.0.x版本,。
在受影響的 Spring Framework 版本中,,當(dāng)應(yīng)用程序在響應(yīng)(文件名稱屬性是由用戶提供的衍生輸入)中設(shè)置 “Content-Disposition” 標(biāo)頭時,應(yīng)用程序易受反射型文件下載 (RFD) 攻擊的影響,。
如果你正在使用 Java,,很可能會遇到 Spring。它是極其流行的 Java 應(yīng)用開發(fā)框架,,得益于其模塊化和輕量的特點(diǎn),,可使開發(fā)人員輕松創(chuàng)建出強(qiáng)大的應(yīng)用程序。眾所周知,,它顛覆了控制設(shè)計(jì)原理(結(jié)合了分層,、輕量級容器以及可在接口上編程的能力)。
10,、PyYAML
CVE-2020-1747,,CVSS 評分9.8,影響 5.3.1 之前的版本。
當(dāng)不受信任的 YAML 文件通過 full_load 方法或通過 FullLoader 負(fù)載器處理時,,易受攻擊的 PyYAML 庫易受任意代碼執(zhí)行漏洞的影響,。攻擊者可利用該漏洞通過濫用 python/object/new 構(gòu)建器在系統(tǒng)上濫用任意代碼。
PyYAML 是一款極其流行的針對 Python 的 YAML 解析器和發(fā)射器,。由于近年來 Python 的熱度高居不下,,因此用戶最好確保使用的是 PyYAML 的更新版本。