市场快照 · ↗比特币价格$77,735全网算力936 EH/s挖矿难度127.45 T

矿池与结算

Bitcoin Core 合并节点日志伪造防护

来源发布日期: 2026-09-30 · 编辑分析发布日期: 2026-10-01

日志记录器会转义不受信任输入中的换行符,避免被拒绝的 RPC 方法或钱包字符串伪装成真实节点消息。补丁已进入 master,但尚未进入正式版本。

终端中的 Linux 系统更新;用于说明 Bitcoin Core 日志修复。
示意性历史照片,并非新闻中所述的具体产品或设施。 已转换为WebP,必要时缩小尺寸。 Solijon Solayev · CC BY-SA 4.0

分析与实际影响

本节为本站分析及示例计算,与来源报道分开呈现。

用户输入可能会在 debug.log 中出现虚假消息

比特币核心维护者于 2026 年 9 月 30 日合并了拉取请求 35833。该问题涉及用户控制的文本通过嵌入的换行符到达日志消息。 受限制的 RPC 用户可以提供被拒绝的方法名称,或者与钱包相关的输入可以输入警告,并且换行符允许以下文本从新行开始。 即使节点没有产生事件,第二行也可以被格式化为类似于真正的比特币核心错误。 运营方还应保存原始公告、时间戳、合同或遥测记录,并把已经完成的事实与预测、目标和管理层表述分开。只有把容量、功耗、可用率、成本和交付日期放在同一口径下持续核验,才能判断该信息对矿场和数据中心经营的实际影响。

系统管理员在工作;用于说明节点日志完整性与运维。
示意性历史照片,并非新闻中所述的具体产品或设施。 已转换为WebP,必要时缩小尺寸。 Phil Hollenback · CC BY 2.0

该攻击影响了日志解释,而不是共识

所演示的问题是日志注入。 它可能会误导操作员、监控工具或事件响应者阅读 debug.log。 拉取请求并未描述更改区块、窃取挖矿奖励、绕过工作量证明或改变共识状态的方法。 它也不会呈现为未经身份验证的远程代码执行。 演示案例需要受限的 RPC 访问或将受控数据放入记录消息的其他路径。 运营方还应保存原始公告、时间戳、合同或遥测记录,并把已经完成的事实与预测、目标和管理层表述分开。只有把容量、功耗、可用率、成本和交付日期放在同一口径下持续核验,才能判断该信息对矿场和数据中心经营的实际影响。

嵌入的换行符现在已转义

合并的实现更改了记录器,因此嵌入的换行符表示为转义字节序列,例如 \x0a。 传统的尾随换行符在转义之前被删除,并且记录器集中添加最后的行终止符。 因此,一个日志调用占用一根物理行,并且受控文本无法创建具有自己的时间戳或严重性前缀的附加消息。 可打印字符和 UTF-8 仍然可用于诊断。 运营方还应保存原始公告、时间戳、合同或遥测记录,并把已经完成的事实与预测、目标和管理层表述分开。只有把容量、功耗、可用率、成本和交付日期放在同一口径下持续核验,才能判断该信息对矿场和数据中心经营的实际影响。

被拒绝的 RPC 方法是重现器的一部分

Pull-request 演示启动了一个带有 RPC 白名单的 regtest 节点,并调用了一个禁止方法,该方法的名称包含一个换行符,后跟类似 ConnectTip 失败的文本。 在修复之前,锻造部分出现在单独的一行上。 修复后,换行符在警告中显示为转义数据。 授权仍然拒绝该方法; 问题在于额外日志行的视觉真实性,而不是对禁止的 RPC 命令的访问。 运营方还应保存原始公告、时间戳、合同或遥测记录,并把已经完成的事实与预测、目标和管理层表述分开。只有把容量、功耗、可用率、成本和交付日期放在同一口径下持续核验,才能判断该信息对矿场和数据中心经营的实际影响。

钱包路径和启动警告收到回归报道

最终测试涵盖被拒绝的 RPC 方法名称、钱包创建输入以及针对消失的持久钱包路径的启动警告。 审阅者发现中间 SplitLines 方法可以重新创建部分问题,因此该方法在合并之前被删除。 最终补丁使用中央转义并测试伪造的文本不会显示为单独的警告或错误。 此审查历史记录显示了为什么操作员应该评估合并的差异而不是早期的修订版。 运营方还应保存原始公告、时间戳、合同或遥测记录,并把已经完成的事实与预测、目标和管理层表述分开。只有把容量、功耗、可用率、成本和交付日期放在同一口径下持续核验,才能判断该信息对矿场和数据中心经营的实际影响。

池操作员通常会自动执行日志处理

矿池和单独挖矿网关通常在模板服务器、支付系统和监控代理之外运行比特币核心。 他们的警报可能会解析 debug.log 以查找链尖、内存池、钱包或网络故障。 伪造的线路可能会引发虚假事件、污染审计线索或分散响应人员的注意力。 部署包含补丁的版本后,嵌入的换行符会被转义,因此任何需要多行消息的解析器都应该进行测试和调整。 运营方还应保存原始公告、时间戳、合同或遥测记录,并把已经完成的事实与预测、目标和管理层表述分开。只有把容量、功耗、可用率、成本和交付日期放在同一口径下持续核验,才能判断该信息对矿场和数据中心经营的实际影响。

该补丁通过了审查和自动检查

最终的更改在审核后作为提交 d4b0e1e 合并到主分支中,GitHub 报告已通过 27 个检查。 拉取请求包含两个提交:描述受影响输入特征的测试和转义嵌入换行符的日志记录更改。 早期的 CI 问题属于中间修订版,并在合并之前被清除。 主页并没有说该补丁包含在已签名的最终比特币核心版本中。 运营方还应保存原始公告、时间戳、合同或遥测记录,并把已经完成的事实与预测、目标和管理层表述分开。只有把容量、功耗、可用率、成本和交付日期放在同一口径下持续核验,才能判断该信息对矿场和数据中心经营的实际影响。

合并的代码与发布的二进制代码不同

操作员不应将其描述为每个节点上都安装了修复程序。 该补丁存在于 Bitcoin Core master 中,而生产部署通常使用标记和签名的版本。 从源代码构建的团队需要自己的可重复构建和验证过程。 其他人都应该在更改池基础设施之前查看官方发行说明、验证签名并进行升级。 本文避免分配拉取请求本身未建立的版本号。 运营方还应保存原始公告、时间戳、合同或遥测记录,并把已经完成的事实与预测、目标和管理层表述分开。只有把容量、功耗、可用率、成本和交付日期放在同一口径下持续核验,才能判断该信息对矿场和数据中心经营的实际影响。

采矿基础设施团队的实用步骤

操作员可以限制 RPC 凭证,保留可靠的日志来源,并避免单独将日志文本视为共识失败的证据。 严重事件的警报应将日志与 RPC 状态、对等数据和独立节点关联起来。 在升级之前,搜索私有解析器以获取有关多行消息的假设; 升级后,测试嵌入式控制字符是否保持在一行并且重要警报仍然触发。 已确认的结果是提高了日志完整性,而不是挖掘速度或区块构造的变化。 运营方还应保存原始公告、时间戳、合同或遥测记录,并把已经完成的事实与预测、目标和管理层表述分开。只有把容量、功耗、可用率、成本和交付日期放在同一口径下持续核验,才能判断该信息对矿场和数据中心经营的实际影响。

来源: Bitcoin Core ↗

挖矿计算器 ↗

本栏目更多内容