宅中地 - 每日更新
宅中地 - 每日更新

贊助商廣告

X

Protocol Buffers模式漏洞曝光:六大安全缺陷可導致遠程代碼執行

2026年06月13日 首頁 » 熱門科技

谷歌Protocol Buffers格式的一個被廣泛使用的JavaScript實現庫,因對不可信數據過度信任,導致受影響的應用程式面臨遠程代碼執行及其他攻擊風險。

Cyera的研究人員披露了影響"protobuf.js"的六個漏洞,這些漏洞均源於該庫對模式(schema)和元數據的處理方式存在缺陷。攻擊者可利用輸入驗證疏漏插入惡意數據,進而影響應用程式的行為。

Protocol Buffers是一種以緊湊、結構化格式打包數據的技術,旨在簡化不同應用程式之間的資訊交換。protobuf.js庫據報道每周下載量超過5000萬次。該庫通常通過gRPC工具、Google Cloud庫及其他框架等依賴項被間接引入應用程式,這使得企業難以對其進行追蹤。

研究人員披露的六個CVE漏洞涵蓋遠程代碼執行、拒絕服務(DoS)、原型污染(prototype pollution)、原型注入(prototype injection)以及代碼生成等問題。

Cyera研究人員Assaf Morag和Vladimir Tokarev在一篇部落格文章中表示:"儘管這些漏洞的利用通常需要特定條件,但這些條件在數據和AI生態系統中越來越普遍——這些系統會在服務、代碼庫、雲平台和第三方集成之間頻繁交換數據、模式和配置文件。"

目前,protobuf.js及其命令行代碼生成工具protobufjs-cli均已提供相應補丁。

其中最為嚴重的漏洞是編號為CVE-2026-44291的代碼生成缺陷。

據Cyera介紹,protobuf.js會動態生成編碼器和解碼器函數,並通過JavaScript的Function()構造函數對其進行編譯。在特定條件下,攻擊者可操控從模式中派生的資訊,使原本用於描述消息的數據轉變為可執行代碼。

研究人員演示了一條攻擊鏈:通過原型污染誘使protobuf.js將攻擊者控制的值識別為合法的protobuf類型,這些值隨後被嵌入生成的代碼中,並在Node.js進程內被執行。

其影響還延伸至運行時應用程式之外。另一個代碼注入漏洞(編號CVE-2026-44295)影響pbjs命令行工具——精心構造的模式名稱可被嵌入生成的JavaScript文件,並在這些文件被後續導入時觸發執行。

儘管成功利用這些漏洞需要滿足特定前提條件(例如能夠影響protobuf的模式或描述符),但研究人員指出,現代軟體日益頻繁地在代碼庫、雲環境、API和第三方集成之間交換模式、描述符和配置文件,這使得上述前提條件的限制性已大不如前。

其餘漏洞的嚴重程度相對較低。研究人員發現了一個原型注入漏洞(CVE-2026-44292),可通過篡改繼承對象屬性來改變應用程式行為;此外還有三個拒絕服務漏洞(CVE-2026-44289、CVE-2026-44290和CVE-2026-44294),可利用惡意構造的輸入使應用程式崩潰或耗盡其資源。

研究人員還指出,protobuf.js通常作為傳遞性依賴被引入,這意味著企業可能在未意識到軟體棧中存在該庫的情況下便已面臨暴露風險。隨著模式在自動化開發流水線和軟體供應鏈中流轉,傳統上被視為被動數據的組件,可能成為攻擊的通道。

"開發團隊會定期接受代碼貢獻、集成第三方組件,並通過CI/CD流水線自動處理文件,"他們解釋道,"我們發現,在某些條件下,惡意的protobuf模式可能被引入這一工作流程,並最終在可信的構建環境中被執行。"

他們補充稱,一旦在這一階段發生安全事件,將對產品、客戶和業務運營產生深遠的下游影響。

上述漏洞影響protobuf.js 7.5.5及更早版本,以及8.0.0和8.0.1版本,同時也影響protobuf.js-cli的相關漏洞版本。修復補丁已在protobuf.js 7.5.6和8.0.2版本中提供,protobuf.js-cli用戶建議升級至1.2.1或2.0.2版本。

Q&A

Q1:protobuf.js曝出的漏洞具體有哪些類型?

A:此次共披露六個CVE漏洞,涵蓋遠程代碼執行、拒絕服務(DoS)、原型污染、原型注入以及代碼生成缺陷。其中最嚴重的是CVE-2026-44291,攻擊者可操控模式派生資訊,使數據轉變為可執行代碼,並在Node.js進程內執行,危害極大。

Q2:protobuf.js漏洞為什麼難以被企業察覺?

A:因為protobuf.js通常作為傳遞性依賴被間接引入,例如通過gRPC工具、Google Cloud庫等框架自動集成,企業往往並不知道自己的軟體棧中存在該庫,因此容易在不知情的情況下面臨安全風險。

Q3:如何修復protobuf.js的安全漏洞?

A:官方已發布補丁。用戶應將protobuf.js升級至7.5.6或8.0.2版本;若使用protobuf.js-cli,則應升級至1.2.1或2.0.2版本,以修復所有已披露的安全漏洞。

宅中地 - Facebook 分享 宅中地 - Twitter 分享 宅中地 - Whatsapp 分享 宅中地 - Line 分享
相關內容
Copyright ©2026 | 服務條款 | DMCA | 聯絡我們
宅中地 - 每日更新