Npm libp2p kad dht 安全公告//發布於 2026-05-20//CVE-2026-45783

WP-防火墙安全团队

Unvalidated PUT_VALUE Vulnerability in @libp2p/kad-dht

插件名稱 @libp2p/kad-dht
漏洞類型 安全建議
CVE 編號 CVE-2026-45783
緊急程度
CVE 發布日期 2026-05-20
來源網址 CVE-2026-45783

@libp2p/kad-dht 中的未經驗證的 PUT_VALUE (CVE-2026-45783):WordPress 網站擁有者需要知道的事項及如何保護您的網站

概括: 對於 npm 套件 @libp2p/kad-dht (已在 16.2.6 中修補) 發布了一個高優先級的漏洞 (CVE-2026-45783 / GHSA-32mq-hpph-xfvr)。該問題允許未經驗證的 PUT_VALUE 記錄在 DHT 伺服器節點上無限制地存儲,可能會耗盡磁碟空間並導致拒絕服務或促進受影響的 Node.js 主機上的持續濫用。雖然這是一個 Node 生態系統漏洞,但 WordPress 網站擁有者和管理員應該引起注意——現代 WordPress 生態系統經常與 Node.js 工具、無頭架構、構建管道和可能使用 libp2p 的捆綁微服務重疊。這篇文章解釋了漏洞、對 WordPress 環境的實際影響、檢測步驟、緩解措施(包括立即的基於 WAF 的保護)、事件響應和長期加固。.


TL;DR — 快速行動項目

  • 漏洞:未經驗證的 PUT_VALUE 記錄可能導致 @libp2p/kad-dht 版本 < 16.2.6 的 DHT 伺服器節點上無限制的磁碟耗盡。CVE-2026-45783,CVSS 7.5。.
  • 立即緩解:在使用的地方將 @libp2p/kad-dht 更新至 16.2.6 或更高版本。重建並重新部署基於 Node 的服務和 CI 藝術品。.
  • 如果您無法立即更新:阻止或限制對暴露 DHT 端點的 Node 進程的網絡訪問;應用 WAF 規則以阻止可疑的 DHT 流量;強制執行進程磁碟配額和速率限制。.
  • WordPress 特定:審核插件/主題和托管以檢查捆綁的 Node 服務、無頭前端、CI 運行器和具有 DHT 啟用服務的開發者機器;在您的代碼庫和藝術品中掃描該套件。.
  • 使用分層防禦:主機級磁碟配額、容器化、WAF/IDS、安全的 CI/CD 實踐和依賴監控。.

漏洞的通俗解釋

libp2p 是一個模組化的網絡堆棧,用於構建點對點應用程序。kad-dht 模組實現了一個 Kademlia 風格的分佈式哈希表 (DHT),支持 PUT_VALUE 操作——將鍵值記錄寫入 DHT。.

CVE-2026-45783 描述了在 DHT 伺服器節點上未能正確驗證 PUT_VALUE 記錄的情況。攻擊者可以發送大量或非常大的 PUT_VALUE 請求,伺服器將接受並持久化這些請求,而不進行適當的大小、計數或來源驗證。由於這些記錄的存儲是無限制的,攻擊者可以導致磁碟耗盡:該進程不斷寫入記錄,直到磁碟滿,導致拒絕服務或主機上的其他損壞。.

要點:

  • 需要對 DHT 節點的網絡訪問(不需要先前的身份驗證)。.
  • 以規模利用的低複雜性——自動化腳本可以淹沒該節點。.
  • 影響運行易受攻擊版本 @libp2p/kad-dht (< 16.2.6) 的 Node.js 進程。.
  • 修補版本:16.2.6。.

為什麼 WordPress 網站擁有者應該關心

乍一看,這似乎是一個僅限 Node 的問題,與 WordPress (PHP) 無關。但 WordPress 生態系統與 Node 有許多接觸點:

  • 構建工具和資產管道:主題和插件通常在開發過程中包含 JS 構建步驟(webpack、vite)。運行 Node 的 CI 系統或開發者機器可能包含易受攻擊的依賴項。.
  • 無頭和混合架構:許多現代 WordPress 網站使用無頭前端(React/Vue),運行 Node 伺服器或微服務,可能包括 libp2p 以實現 P2P 功能或實驗。.
  • 打包的微服務:插件或託管供應商有時會提供或運行基於 Node 的微服務,用於實時功能、圖像處理或集成;這些可能使用易受攻擊的 npm 模組。.
  • 開發者工作站和 CI 執行器:如果您的開發者在連接到生產網絡的本地或 CI 環境中使用易受攻擊的庫,則利用或資源耗盡可能會影響共享基礎設施(例如,共享 CI 執行器、開發者託管的暫存環境)。.
  • 託管和平台組件:一些主機運行基於 Node 的服務,用於緩存、代理或分析;那裡的耗盡可能會干擾在同一基礎設施上託管的 WordPress 網站。.

總之:即使您的 WordPress 網站代碼完全是 PHP,您的網站正常運行時間和數據完整性也可能依賴於更廣泛託管堆棧中的 Node 進程。.


與 WordPress 環境相關的利用場景

  1. 共享託管環境
    – 一個主機為許多客戶運行基於 Node 的服務(例如,實時分析服務或使用 libp2p 的 P2P 同步服務)。.
    – 攻擊者向該服務發送大量 PUT_VALUE 記錄,導致磁碟耗盡。.
    – 主機的磁碟填滿,其他租戶(包括 WordPress 網站)遭受停機。.
  2. 插件或主題打包的 Node 微服務
    – 一個插件打包了一個輔助 Node 服務(例如,用於圖像優化、實時聊天或 websocket 連接)。.
    – 該微服務使用 @libp2p/kad-dht <16.2.6。.
    – 攻擊者觸發對該服務的無界寫入,導致底層容器或虛擬機耗盡磁碟或崩潰。.
  3. CI/CD 或開發工具
    – 一個暴露於互聯網的 CI 執行器或開發者機器(或通過被攻擊的憑證可訪問)運行一個 DHT 節點。.
    – 磁碟填滿,構建工件丟失;持續部署管道失敗,生產部署停滯。.
  4. 無頭前端和代理
    – 一個無頭的 WordPress 前端依賴於一個 Node 服務器進行 SSR 或數據同步。.
    – Node 服務器受到攻擊並被禁用,導致前端無法使用,儘管 WordPress 後端仍然存在。.
  5. 橫向移動和持續性
    – 磁碟耗盡可能被用作轉移注意力或損壞日誌/監控,幫助進一步攻擊 WordPress 組件。.

如何找出您是否受到影響

步驟 1 — 搜尋您的程式碼庫和工件

  • 在儲存庫檔案和鎖定檔中搜尋該套件:
    • grep -R "@libp2p/kad-dht" .
    • npm ls @libp2p/kad-dht || true
    • yarn why @libp2p/kad-dht || true
  • 檢查 package-lock.json / yarn.lock 中的版本 < 16.2.6。.

步驟 2 — 檢查部署和容器

  • 檢查伺服器上運行的進程,尋找可能是 DHT 節點的 Node 進程:
    • ps aux | grep node
    • lsof -nP -iTCP -sTCP:LISTEN | grep node
    • ss -plnt
  • 對於容器,列出映像並檢查:
    • docker ps --format '{{.ID}} {{.Image}}' && docker inspect | grep -i libp2p -R

步驟 3 — CI/CD 和開發者機器

  • 問開發者測試/建置伺服器是否使用 libp2p 或 kad-dht。.
  • 掃描 CI 執行者的映像、預建工件或快取以尋找該套件。.

步驟 4 — 託管供應商 / 管理服務

  • 聯繫您的主機以驗證是否有任何管理的 Node 服務或平台組件使用易受攻擊的庫。.

步驟 5 — 日誌和遙測

  • 尋找磁碟寫入的尖峰、DHT 儲存位置中不尋常的檔案增長、顯示「設備上沒有剩餘空間」的錯誤或突然的應用程式崩潰。.
  • 需要注意的警報:檔案系統使用量 >85%、Node 應用程式日誌中重複的 PUT_VALUE 或 DHT 寫入條目、對 Node 進程的網路流量突然增加。.

立即緩解 — 更新並重建(建議)

  1. 更新
    – 在任何使用 @libp2p/kad-dht 的地方,更新到版本 16.2.6 或更高版本。.
    – 執行:

    • npm install @libp2p/kad-dht@^16.2.6
    • npm 更新

    – 對於傳遞依賴,更新父包或運行 npm dedupe 並重建鎖定檔。.

  2. 重建工件
    – 重建並重新部署任何包含 Node 模組的前端包、Docker 映像和伺服器工件。.
    – 替換註冊表中的映像並重新部署 Kubernetes Pods 或容器。.
  3. 重新啟動服務
    – 更新後重新啟動 Node 服務以確保載入修補版本。.
  4. 確認
    npm ls @libp2p/kad-dht 應顯示 16.2.6 或更高版本。.
    – 驗證正在運行的進程是否使用更新的工件。.

如果您無法立即更新 — 臨時緩解措施

網路存取控制

  • 隔離 DHT 節點:使用主機防火牆(iptables/nft)或雲安全組限制已知對等方的入站流量。.
  • 拒絕外部訪問:阻止公共互聯網對您的 Node DHT 節點使用的端口/協議的訪問。.
  • 使用網路 ACL 防止不受信任的對等方連接。.

WAF / 應用層保護

  • 實施 WAF 規則以檢測和阻止可疑的 DHT PUT 類請求。雖然 DHT 使用 libp2p 幀(而不是常規 HTTP),如果您的環境代理或暴露 HTTP 端點或自定義端口給 Node,您可以阻止符合 DHT 協議指標或異常大小/模式的請求。.
  • 限制來自外部對等方到 Node 進程的連接速率。.

進程級和操作系統緩解措施

  • 強制每個進程的磁碟配額(cgroups、systemd 或容器存儲配額),以防止單個進程消耗所有磁碟空間。.
  • 在具有有限可寫存儲的容器中運行 Node 服務。使用只讀映像層並分開具有大小限制的短暫可寫卷。.
  • 對 DHT 使用的任何臨時存儲使用 tmpfs 或小型專用卷以限制損害。.

監控和早期警告

  • 配置異常磁碟使用和寫入 I/O 突然增加的警報。.
  • 如果您的 Node 應用程序暴露指標(Prometheus 等),請監控 PUT 操作的數量。.

示例:基本 iptables 阻止(根據需要替換 和 )

# 阻止對 Node DHT 端口的外部訪問

示例:systemd cgroup 限制(服務單元片段)

[Service]

這些是權宜之計——真正的修復是打補丁。.


建議的 WAF 簽名和行為檢測

由於 libp2p DHT 流量在許多情況下是非 HTTP 的,除非 Node 服務暴露 HTTP 端點,否則直接的 WAF 簽名檢測可能會受到限制。不過,在托管環境和代理層中,您可以:

  • 阻止對任何與 Node 服務相關的端點的異常大請求有效載荷。.
  • 檢測並阻止來自同一遠程 IP 或 ASN 針對 DHT 端口的高頻連接。.
  • 如果通過 HTTP 代理或日誌包含此類模式(例如,multiaddr、“kad-dht” 字串),則匹配已知的 libp2p 握手模式。.
  • 監控 Node 服務使用的特定儲存目錄的突然增長(應用層規則在磁碟使用閾值被超過時阻止請求)。.

阻止過大寫入的 ModSecurity 風格範例偽規則(如果 Node 服務位於 HTTP 代理後面):

SecRequestBodyLimit 131072"

注意:根據正常流量模式調整限制以避免誤報。.


開發者指導 — 如何使用 libp2p/kad-dht 修復代碼

如果您維護調用 PUT_VALUE 或存儲 DHT 記錄的代碼,請應用以下最佳實踐:

  • 驗證記錄大小:拒絕或截斷超過安全最大值的值(例如,64 KB 或由您的儲存容量決定的大小)。.
  • 限制每個鍵和每個對等體的記錄數量。.
  • 強制執行過期(TTL)和舊記錄的垃圾回收。.
  • 如果可能,對寫入進行身份驗證和授權 — 要求對等體在接受持久寫入之前證明其合法性。.
  • 對每個對等體 IP 或每個對等體 ID 的寫入操作進行速率限制。.
  • 使用內容可尋址儲存(例如,CID),僅在有效格式匹配時持久化有效負載。.
  • 在磁碟寫入之前實施大小和配額檢查,並優雅地處理“磁碟已滿”(失敗關閉)。.

Node 偽代碼範例:

async function safePutValue(store, key, value, peerId) {

偵測與響應 — 事件處理手冊

  1. 隔離
    • 立即將 Node 進程從外部網絡暴露中移除(iptables 規則,停止服務,移除公共路由)。.
    • 隔離受影響的容器/虛擬機以防止橫向移動。.
  2. 保存證據
    • 保存日誌(Node 應用日誌,系統日誌,網絡捕獲)。.
    • 快照磁碟(如果可能)以進行離線分析。.
  3. 停止寫入
    • 停止或暫停有問題的 Node 進程。.
    • 禁用任何面向 DHT 的端口並恢復防火牆規則。.
  4. 分析
    • 搜索日誌中大量類似 PUT_VALUE 的寫入或來自相同對等體的重複寫入。.
    • 確定用於存儲 DHT 記錄的目錄並列舉可疑文件。.
  5. 清理
    • 刪除惡意或過大的記錄。.
    • 小心地回收磁碟空間;確保不刪除合法數據。.
    • 在修補後重建並重新部署 Node 進程。.
  6. 修補和加固
    • 將 @libp2p/kad-dht 更新至 16.2.6+。.
    • 從受信任的 CI 重建並重新部署工件,並使用新的鎖定文件。.
    • 應用配額和網絡限制。.
  7. 事件後行動
    • 如果有任何超出資源耗盡的妥協跡象,則輪換密鑰/憑證。.
    • 更新事件日誌和根本原因分析。.
    • 與利益相關者溝通,並在適用的情況下,與您的託管提供商聯繫。.

取證指標

  • Node 服務存儲目錄中文件異常快速增長。.
  • Node 應用日誌中 PUT 或寫入操作的高計數。.
  • 多個來自許多臨時 IP 的連接針對 Node 進程。.
  • 系統日誌條目:“設備上沒有剩餘空間”,Node 進程的崩潰/重啟循環。.
  • Node 進程的高磁碟 I/O 和 CPU 使用率。.
  • DHT 存儲中存在許多隨機鍵/記錄(例如,許多具有大型有效負載的唯一鍵)。.

收集這些文物以供您的事件報告和取證使用。.


如何測試您的環境

  • 使用 npm audit / snyk / 其他依賴掃描器來識別 @libp2p/kad-dht 的使用情況和版本。.
  • 在本地模擬攻擊(在受控實驗室中)以驗證緩解措施——啟動一個測試 Node DHT 服務器並嘗試發送超大 PUT_VALUE 有效負載。監控配額和 WAF 規則。.
  • 在大規模啟用之前,測試 WAF 規則和速率限制以檢查誤報。.
  • 為構建管道運行集成測試,以確保依賴更新不會破壞生產文物。.

命令檢查清單:

  • npm ls @libp2p/kad-dht
  • grep -R "@libp2p/kad-dht" .
  • find / -type d -name "node_modules" -exec grep -H "@libp2p/kad-dht" {} \;
  • 檢查容器映像: docker run --rm sh -c 'npm ls @libp2p/kad-dht || true'

長期風險降低和安全架構建議

  • 最小權限和網絡分段:保持 Node 微服務與公共網絡和 WordPress PHP 過程隔離,除非明確需要。.
  • 不可變基礎設施:重建和重新部署帶有修補依賴的映像,而不是就地修補。.
  • CI 管道加固:掃描並拒絕包含已知漏洞依賴的構建;簽署和驗證文物。.
  • 依賴衛生:優先使用固定版本和受控更新;使用能夠對新發布的建議發出警報的工具。.
  • 資源配額:對每個服務應用 cgroup/容器寫入和存儲限制。.
  • 可觀察性:為 DHT 操作(寫入/讀取)、按服務的磁碟使用情況和異常活動的警報對 Node 服務進行儀器化。.
  • 供應商和第三方管理:要求第三方插件/主題作者在發送 Node 服務時聲明和更新 Node 依賴。.

经常问的问题

問:我的 WordPress 網站是純 PHP,運行在 Apache/Nginx 上,沒有 Node 過程。我安全嗎?
A: 如果沒有 Node 進程,您不會受到直接影響。然而,請檢查您的主機、CDN 或插件提供商是否代表您運行 Node 服務。還要確認構建產物(打包的 Node 模塊)不會在您的生產伺服器上執行。.

Q: 我使用一個插件,它說它“打包了一個 Node 助手。”我該怎麼辦?
A: 問插件供應商他們是否使用 @libp2p/kad-dht 以及使用的版本。如果存在漏洞,請要求或應用包含修補版本的更新。與此同時,如果安全的話,隔離或禁用該助手服務。.

Q: 此漏洞是否允許從 WordPress 網站竊取數據?
A: 記錄的主要風險是資源耗盡(磁碟填滿)。雖然直接數據竊取不是此 CVE 的直接關注點,但磁碟耗盡可能會中斷服務、刪除或損壞日誌,並創造有利於攻擊者的條件。請嚴肅對待。.


WP-Firewall 如何幫助保護 WordPress 網站

作為一個管理的 WordPress 安全提供商,WP-Firewall 提供分層保護,降低經典 WordPress 安裝和包含 Node 組件的環境的風險:

  • 管理防火牆和 WAF:我們創建和分發應用層簽名和速率限制規則,可以阻止可疑的流量模式、大型或異常的有效載荷,以及在 DHT 濫用之前的高頻連接嘗試。.
  • 惡意軟件掃描:我們的掃描器監控文件系統異常和突然的文件增長,這是磁碟耗盡攻擊的主要指標。.
  • 減輕 OWASP 前 10 大風險:防止常見向量減少橫向移動到開發者機器或 CI 的機會。.
  • 混合環境的保護:如果您的 WordPress 架構包括無頭或 Node 支持的服務,WP-Firewall 提供規則和建議來隔離和保護這些組件。.
  • 免費計劃功能:基本保護,包括管理防火牆、無限帶寬、一個 WAF、惡意軟件掃描和 OWASP 前 10 大風險的減輕覆蓋。.

我們建議所有網站擁有者評估他們的暴露情況,並在適當的情況下啟用包括速率限制、IP 信譽阻止和異常檢測的防火牆保護,以減輕如 CVE-2026-45783 的攻擊,直到應用完整的修補程序。.


實用的修復檢查清單(逐步)

  1. 存貨
    – 確定所有 Node 實例、容器和 CI 運行器。搜索庫和產物以查找 @libp2p/kad-dht。.
  2. 修補
    – 更新到 @libp2p/kad-dht >= 16.2.6。.
    – 重新構建映像、產物並重新部署。.
  3. 隔離
    – 阻止外部網絡訪問 DHT 節點,待驗證。.
    – 強制每個進程的磁碟配額和容器存儲限制。.
  4. 強化
    – 為 Node 服務添加速率限制和 WAF 規則。.
    – 限制允許對 DHT 存儲寫入的對等方,視情況而定。.
  5. 監控
    – 對磁碟使用量激增和異常寫入模式發出警報。.
    – 監控 DHT 相關端口的流量增加。.
  6. 測試
    – 驗證依賴項和服務在修補的庫中是否正常運行。.
    – 在受控環境中運行恢復測試(重啟、故障轉移)。.
  7. 報告和溝通
    – 如果其組件受到影響,請通知主機/第三方供應商。.
    – 記錄事件及所學到的教訓。.

新:從 WP‑Firewall Free 開始,提高您的即時保護基準

標題:快速加強您的網站 — 從 WP‑Firewall Free 開始

如果您希望在執行依賴項審核和協調修補時獲得即時且無成本的保護,考慮從 WP‑Firewall Basic(免費)計劃開始。它提供基本保護 — 管理防火牆、WAF 規則、無限帶寬、惡意軟體掃描和 OWASP 前 10 名緩解 — 以減少針對 Node 服務的相關攻擊影響您的 WordPress 網站的機會。立即註冊並快速獲得保護: https://my.wp-firewall.com/buy/wp-firewall-free-plan/

如果您需要更快的自動修復、定期掃描或虛擬修補,當您更新複雜堆疊時,我們的付費層級增加自動惡意軟體移除、更細粒度的 IP 控制和自動虛擬修補功能,以幫助縮短檢測與完整修補部署之間的差距。.


最後的話 — 為什麼及時行動很重要

CVE-2026-45783 優先級高是有原因的:資源耗盡攻擊是更大故障的放大器,並且可以用相對較低的努力觸發。對於 WordPress 網站擁有者來說,風險往往是間接的 — 但操作依賴意味著間接風險會產生直接故障。最安全的路徑是:清點、修補、重建和加固。使用分層防禦 — 網絡控制、每個進程的配額、WAF 保護和監控 — 來保護您的平台,同時更新在您的供應鏈中傳播。.

如果您需要幫助審核您的 WordPress 網站的 Node 依賴項、設置 WAF 簽名或在修補期間實施臨時緩解,我們的安全團隊可以提供諮詢指導和管理保護。.

保持安全,並優先修補任何接觸您的生產環境的服務。.

— WP防火牆安全團隊


wordpress security update banner

免費接收 WP 安全周刊 👋
立即註冊
!!

註冊以每週在您的收件匣中接收 WordPress 安全性更新。

我們不發送垃圾郵件!閱讀我們的 隱私權政策 了解更多。