EN ▼
Favorites
My Favorites
View All
Market Cap Price 24h%

Disclaimer: Content does not constitute investment advice. Trading involves risks—please invest with caution!

比特币核心存在三个安全漏洞:你现在可以采取的措施

2026-11-02 04:12:49
Bookmark

比特币核心同时发布三项安全公告

2026年10月28日,比特币核心(Bitcoin Core)一次性发布了三项安全公告。其中最严重的一项漏洞允许单个恶意节点导致运行在Windows、macOS或BSD系统上的任何节点崩溃。所有三个问题已在版本29.5、30.4、31.2和32.1中得到修复。如果您运行自己的比特币节点且自周一以来未进行更新,您运行的构建版本中的弱点已于周三被公开描述。

节点是指自行验证整个区块链而非依赖提供商信任的机器。如果节点宕机,余额不会消失:密钥存储在钱包中,而非节点中。真正损失的是您自身的验证能力,而在其中两个漏洞的影响下,机器也会随之停止运行。

同日发布的三项公告:比特币核心披露内容详解

这三份公告并列于项目的安全公告列表中。其中两项被评为“中等”风险,一项为“低”风险,且所有三项均带有“易于发现”的备注。这是决定性的评级:任何阅读代码的人都能在不费吹灰之力的情况下找到问题所在。

  • TCP紧急数据:一个节点可导致运行在Windows、macOS或BSD上的节点崩溃。Linux系统不受影响。
  • 暂停的BIP31前节点:节点的内存需求缓慢增长,但无上限限制。
  • 撤销文件溢出:矿工可能损坏其他节点的恢复数据。

这些公告的时间安排异常紧凑。修复程序于10月26日合并,并回溯移植到29、30、31和32分支。10月27日出现了31.2和32.1版本,10月28日随后推出了29.5和30.4版本,同一天漏洞描述也上线了。

TCP紧急数据:为何Windows和macOS节点会崩溃

比特币核心限制了每个节点用于处理的数据量。如果队列过长,软件将暂停从该套接字读取数据。这种机制称为背压(backpressure):软件通过减缓节点速度来防止自身资源耗尽。

然而,这种制动机制可以被绕过。在非Linux系统上,比特币核心使用一种较旧的技术来监控网络套接字,该技术还会对套接字上的所谓“异常条件”做出反应。在此之前,即使在长时间暂停读取后,它仍然如此响应。因此,节点只需发送TCP紧急数据(一种很少使用的带外传输形式),节点就会继续读取。队列将无限增长,直到内存耗尽。

项目在公告中以明确的措辞描述了后果:恶意节点可以以此方式导致任何连接到Windows、macOS或BSD系统的节点崩溃。无需准备时间,无需预先准备,也不需要计算能力。该缺陷于10月23日被报告,并在三天后得到修复。

背压:在此失效的制动机制

之所以会出现这种情况,归根结底是实施中的一个特殊之处。在Linux上,比特币核心使用不同的方法来监控网络套接字。有缺陷的路径在那里根本不存在。因此,运行在Linux服务器、大多数现成的家用节点盒子以及数据中心中的节点不受此问题影响。

选择select()而非poll():Linux节点不受影响

在实践中,这是今天最重要的区别。如果您的节点运行在单板计算机或小型Linux服务器上,此漏洞将与您无关。相反,如果您在工作机器(即Windows或Mac)上将比特币核心作为程序运行,则属于受影响群体。BSD系统上的节点同样适用。

这种差异并非理论上的。崩溃的节点将停止同步,不回答来自您自己钱包的查询,也不报告 incoming 付款。如果您使用自己的节点运行钱包,在此期间您将看到过时的余额。

BIP31前节点:每小时每个连接增加2MB内存

第二个漏洞发生得更慢,因此更具隐蔽性。比特币核心会对所有节点排队公告,包括那些已暂停的节点。这些公告主要包含有关新交易的频繁通知。

通常这是无害的,因为如果节点在二十分钟内未能回答检查消息,它将被断开连接。此检查消息在BIP 31中进行了描述,这是网络早期的改进提案,它在ping消息中添加了一个随机数。不支持BIP 31的节点免于断开连接。因此,节点只需假装过时并故意延迟读取即可。

项目精确量化了增长情况:每个入站连接每小时高达2 MB,每个出站连接每小时高达5 MB。拥有许多入站连接的节点可以通过这种方式在几天内积累足够的负载以填满内存。受显著较少影响的是以-blocksonly模式运行的节点,因为在其中构成队列主体的交易公告消失了。

此问题早在2026年9月15日就被报告。报告和修复之间相隔约六周,在此期间,项目已知晓该缺陷但未向公众公开。

超过4 GiB的撤销文件:rev目录中的第三个漏洞

第三点涉及大多数节点操作员从未听说过的文件。除了区块文件外,比特币核心还写入所谓的撤销文件,其名称模式可识别为rev*.dat。它们记录某个区块花费了哪些硬币。当区块链需要回滚已预订的区块时,软件需要这些详细信息。

重组(简称reorg)是网络切换到不同、更长的区块链并收回先前有效区块的过程。区块文件大小限制为128 MiB;相比之下,撤销文件从未有过上限。其中的位置存储为32位数字,而这些数字仅能达到4 GiB。

矿工可以构建有效的区块,其撤销数据远大于区块本身。如果撤销文件超过这4 GiB,位置标记将跳回到开头。新的撤销数据覆盖旧数据,文件被截断为跳转后的长度。如果随后的重组回滚受影响的区块,节点将无法读取其撤销数据并关闭。重启无济于事。恢复需要使用更正后的版本完全重建索引,这在普通家用机器上需要数小时至数天。

32位系统和FAT32即使更新后仍易受攻击

这里存在与其他两点不同且未完全解决的问题。溢出已通过将位置存储为64位数字并使Windows使用匹配的文件调用来修复。磁盘上的格式保持不变,因此不需要移动数据。

尽管如此,仍有两种配置暴露在外。在32位系统上,文件调用仅在高达2 GiB时起作用,因此该漏洞在此处的数据量减半时就会发生,且无需重组。如果您的区块目录位于FAT32文件系统上(例如在较旧的external drive或USB驱动器上),您将遇到该格式4 GiB的文件限制。在这两种情况下,写入撤销数据都会失败,节点将在每次启动时再次关闭。

在64位系统上实际利用该漏洞几乎不可行。项目详细描述了所需的努力:必要的交易不符合标准,攻击者必须挖掘数千个这样的区块,这相当于整个网络区块生产的大约一个月,之后大约十八个他的区块必须恰好落在目标节点区块文件的末尾。最后,他必须赢得跨越两个区块的重组。由于文件布局因节点而异,没有单一的准备工作能击中所有目标。

Project Loupe:自动化扫描发现了所有三个漏洞

所有三个漏洞都追溯到同一个来源。它们是由Spiral旗下的名为Project Loupe的语言模型自动化扫描发现的,由Elias Rohrer领导。Gregory Sanders验证了这些发现并向比特币核心安全团队报告。

其中两点被独立第二次发现。开发者L0rinc分别于9月21日和8月21日报告了暂停节点的内存问题和撤销溢出,Andrew Dorman于10月23日报告了撤销溢出。修复均由Antoine Poinsot提供。

从保密到披露:比特币核心改变了规则

描述在完成版本后仅一天就公开并非巧合。该项目最近更改了其出版惯例,放弃了长期的保密期:比特币核心取消了保密期。10月28日的三项公告是在新路线下的第一次较大规模行动。

对于运营商来说,这有两面性。缺陷被更快地知晓,任何不更新的人更早面临攻击风险。同时,现在以可读的形式明确说明了具体会发生什么错误,而不仅仅是一个带有“安全更新”备注的版本号。

没有自己的节点:您的比特币余额存放何处

大部分投资者并不运行自己的节点。将硬币存储在手机或电脑上的软件钱包中,您使用的是他人的节点,通常是钱包提供商的节点。哪个钱包采用哪条路径以及您可以在哪里开启自己的验证,详见软件钱包比较。

这个群体中的没有人直接受到这三个漏洞的影响。然而仍然存在风险:如果提供商的节点宕机,您将看不到当前余额,也无法确认付款。您的密钥在钱包中保持 untouched,这正是自我托管的全部意义所在。

价格未对发布做出反应。10月29日上午,比特币交易价格约为79,790美元(CoinGecko),比前一天低约1.6%,与前一天美国联邦储备委员会利率决定后的市场其余部分一致。

比特币核心32.1:停留在32位则保持易受攻击

检查版本并切换。

在控制台中,bitcoin-cli getnetworkinfo显示正在运行的版本。低于29.5、30.4、31.2或32.1的任何版本都属于应替换的范围,尤其是在Windows和macOS上。如果您想借此机会将密钥与日常机器分离,设备列表请参阅硬件钱包比较。

查看文件系统和架构。

如果区块目录位于FAT32上或节点运行在32位系统上,第三个漏洞仍然存在。迁移到现代文件系统可消除此隐患。如果您宁愿完全依赖提供商,请在加密货币交易所概览中比较费用。

监控内存消耗。

如果旧节点的消耗随天数稳步增长,这与第二个漏洞相符。-blocksonly模式下的增长明显较小。如果您更喜欢将余额存放在受监管的公司,请检查受监管加密货币交易所中的授权。

完整描述位于比特币核心公告列表中,TCP漏洞的文本见单独公告。(截至2026年10月29日。本文不构成投资建议。价格和费用结构会发生变化;购买前请与提供商核实条款。)

Disclaimer:

All content published on this website, including hyperlinks, related applications, forums, blogs, and other media accounts, originates from third-party platforms and their users. CoinMarketInsight makes no representations or warranties of any kind regarding the website or its content. All blockchain-related data and materials are provided for informational and research purposes only and do not constitute financial, legal, or investment advice. Users and third parties are solely responsible for the content they publish. CoinMarketInsight shall not be liable for any losses arising from the use of this website. You should exercise caution and conduct your own independent research, review, analysis, and verification before making any decisions.

Read Full Article
More News
TOP

TOP