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 模块实现了支持 PUT_VALUE 操作的 Kademlia 风格的分布式哈希表 (DHT) — 将键值记录写入 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组件。.

如何查找您是否受到影响

第一步 — 搜索您的代码库和工件

  • 在存储库文件和锁定文件中搜索该包:
    • 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。.

第二步 — 检查部署和容器

  • 检查服务器上运行的进程,查找可能是 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

第三步 — CI/CD 和开发者机器

  • 询问开发人员测试/构建服务器是否使用 libp2p 或 kad-dht。.
  • 扫描 CI 运行器的镜像、预构建工件或缓存以查找该包。.

第四步 — 托管供应商 / 托管服务

  • 联系您的主机以验证是否有任何托管的 Node 服务或平台组件使用了易受攻击的库。.

第五步 — 日志和遥测

  • 查找磁盘写入的峰值、DHT 存储位置中异常的文件增长、指示“设备上没有剩余空间”的错误或突然的应用程序崩溃。.
  • 需要关注的警报:文件系统使用率 >85%、Node 应用日志中重复的 PUT_VALUE 或 DHT 写入条目、对 Node 进程的网络流量突然增加。.

立即缓解 — 更新和重建(推荐)

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

    • npm install @libp2p/kad-dht@^16.2.6
    • npm update

    – 对于传递依赖,更新父包或运行 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 的,直接的 WAF 签名检测可能会受到限制,除非 Node 服务暴露 HTTP 端点。尽管如此,在托管环境和代理层中,您可以:

  • 阻止任何与 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 的使用情况和版本。.
  • 在本地模拟攻击(在受控实验室中)以验证缓解措施——启动一个测试节点 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,并在没有 Node 进程的 Apache/Nginx 上运行。我安全吗?
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 安全更新。

我们不发送垃圾邮件!阅读我们的 隐私政策 了解更多信息。