情境示意圖,背景圖片來源/JJ Ying on unsplash

Bleeping Computer報導,NPM (Node Package Manager)線上套件庫兩個受歡迎的函式庫遭作者刻意破壞,使數千個使用這些函式庫的應用程式無法使用或出現亂碼。

兩個出問題的函式庫為colors及faker。前者可為node.js console定義文字色彩,後者則可用於產生測試時的大量假數據。兩者下載次數各超過2,000萬及280萬,在GitHub上分別有4,500及1,000顆星。此外與之相依的專案各有1.9萬及2,500多個。這兩個函式庫都是由Marak Squires(代號Marak)的開發人員開發維護。

但本周使用兩個函式庫的應用程式或系統出現怪事。例如使用faker的AWS Cloud Development Kit顯示「LIBERTY、LIBERTY、LIBERTY」的文字,並有一堆亂碼。

原本媒體以為是駭客攻擊事件,但追查發現,「兇手」正是函式庫作者Marak本人。一周前他在 colors.js v1.4.44-liberty-2中,在commit的程式碼加入了一無窮迴圈,這個迴圈在啟動程式碼即立即執行,導致使用該函式庫的Node.js伺服器出現阻斷服務(Denial of Service, DoS)情形、或是在使用color函式庫的專案中顯示無意義non-ASCII亂碼(稱為zalgo text)。而在他更新到faker 6.6.6中,這個套件變成空的,裏面沒有原始碼。

Marak隨後也將相關的GitHub儲存庫移除,可能導致使用它專案的數千或數萬專案人停止運作。

雖然乍看之下很惡意,但Marak在去年的一篇部落格談及以開源專案為生的困境。他開發faker已經超過10年,大部份財星500大企業都有使用。但這個大型專案維護很花力氣,但是開發團隊僅獲得開源社群及GitHub贊助商支持,以獲得一些捐贈費用,沒有任何企業付費。他指出,和大多數人一樣,他也有家要養,有帳單要付。他決定要針對faker專案收費以支持未來開發。

這名開發人員本周表示,不願再無償維護這些函式庫,服務財星500大企業或小型企業。他要求使用者付每年6位數的合約,否則就把這些專案分叉出去請別人來開發。底下留言者也有人表示支持與理解。

媒體snyk報導,Marak另外還參與了約170項NPM專案套件,因此類似的問題可能還會持續發生。

熱門新聞

Advertisement