Note: English is not the author’s native language; this English version may contain grammatical or semantic inaccuracies. In case of any discrepancy, the Chinese version is authoritative.

Responsible Disclosure / AI + Crypto / Web3 Security

Donut AI 漏洞披露Donut AI Vulnerability Disclosure

本文为 Donut AI 相关产品的漏洞披露,范围包括 Donut Browser 钱包交易链路与 D0 AI Agent 自动化交易系统中发现的安全问题,并完整记录与项目方的沟通披露过程,以及对其漏洞响应与安全治理的观察。本文属于负责任披露流程,一切测试与披露过程均合法合规。

This is a security disclosure for Donut AI’s products, covering issues found in the Donut Browser wallet-transaction path and the D0 AI-Agent automated-trading system, together with a full record of the disclosure communications with the vendor and observations on its vulnerability response and security governance. It follows a responsible-disclosure process; all testing and disclosure were lawful and compliant.

49已整理安全问题Security issues catalogued
10严重级 / CriticalCritical
19高危 / HighHigh
16中危 / MediumMedium
4低危 / LowLow

等级依据对资金安全、账户权限、控制面能力、执行环境控制权和攻击链可达性的实际影响划分。

Severity is assigned by real-world impact on fund safety, account privileges, control-plane capability, execution-environment control, and attack-chain reachability.

一分钟速览One-Minute Overview

  • :独立安全研究员、数字循真创始人 Lucifiel,自 2025-12 起是 Donut 的用户与 beta 测试者。Who: Lucifiel — independent security researcher and founder of 数字循真 (a Runtime Semantic Intelligence platform); a Donut user and beta tester since 2025-12.
  • 授权:Donut 官方两届 Bug Hunt(2026-02 的 1.0、2026-03 的 2.0)及后续线上沟通框架内。Authorization: within Donut’s two official Bug Hunts (1.0 in 2026-02, 2.0 in 2026-03) and the subsequent online-communication framework.
  • 发现:Donut Browser 与 D0 两套系统共 49 个问题(Critical 10 / High 19 / Medium 16 / Low 4)。核心两条:Findings: 49 issues across the two systems — Donut Browser and D0 (Critical 10 / High 19 / Medium 16 / Low 4). Two core chains:
    • ① Donut Browser 自动签名盗币链:后端在用户无签名确认下即可自动签名并广播交易,且可通过诱导点击远程触发(自有账户已实证,11 笔链上交易 Solscan 可查);跨用户转账请求在平台侧可被构造放行,最终由第三方托管 Turnkey 拦截、未实际转走他人资金。① Donut Browser auto-signing fund-theft chain: the backend can auto-sign and broadcast transactions with no user signature confirmation, and this can be triggered remotely by a single induced click (proven on the researcher’s own account — 11 on-chain transactions verifiable on Solscan); cross-user transfer requests can be constructed and passed on the platform side, ultimately blocked by the third-party custodian Turnkey — no other user’s funds were actually moved.
    • ② D0 远程命令执行:在研究员自有 Pod 内取得 RCE(已实证)。② D0 remote code execution: RCE achieved inside the researcher’s own Pod (proven).
  • 流程:经三次线上会议 + 脱敏报告 + PPT + PoC 视频 + 书面通知告知厂商,给出超 90 天修复窗口,产品负责人当场确认披露流程。Process: the vendor was notified through three online meetings + a redacted report + slides + a PoC video + written notice, and given a remediation window of over 90 days; the product lead confirmed the disclosure process on the spot.
  • 结果(截至 2026-06 复测):Outcome (as of the 2026-06 retest):
    • 修复状态:49 项中仅 11 项完全修复,9 项部分修复,29 项仍未修复(含多个核心 Critical)。Remediation status: of the 49 items, only 11 are fully fixed, 9 partially fixed, and 29 still unfixed (including several core Criticals).
    • 处理口径:系统级研究(49 漏洞 / 攻击链 / RCE)被项目方按常规社区奖励口径处理,未获任何单独评估或专项赏金,也未在任何公开渠道(官网致谢、安全名人堂、漏洞披露致谢等)获得正式认可(仅 Discord 社区有非正式感谢);两届 Bug Hunt 活动各 100 USDC、共 200 USDC,是研究者参赛、按活动规则赢得的常规活动奖金(其中 Bug Hunt 2.0 的 100 USDC 凭独立提交的 13 个漏洞赢得),与本次系统级研究无关;研究者早在 2026-03-18 即书面要求将参赛活动奖金与系统级研究分开评估、反对把后者并入常规社区奖励口径。How it was handled: this system-level research (49 vulnerabilities / attack chains / RCE) was treated by the vendor as a routine community-reward matter — no separate assessment or dedicated bounty, and no formal recognition on any public channel (website credits, security hall of fame, disclosure acknowledgements, etc.); only informal thanks in the Discord community. The two Bug Hunts paid 100 USDC each (200 USDC total) — ordinary event prizes the researcher won by competing (the Bug Hunt 2.0 prize was earned with 13 separately submitted vulnerabilities), unrelated to this system-level research; as early as 2026-03-18 the researcher asked in writing that the contest prizes and the system-level research be assessed separately, objecting to folding the latter into the routine community-reward track.
    • 最终回应:研究员发出最终通知后,项目方未就诉求继续沟通,转以法务立场回复、声明保留追责权利,并作出多条不实指控(均与会议及书面记录不符,正文已逐条对照;会议原始语音与书面记录均已完整封存、脱敏收录,欢迎机构监督核实)。Final response: after the researcher’s final notice, the vendor stopped engaging on the substance and switched to a legal-posture reply — asserting a reservation of the right to pursue claims and making several false allegations (all inconsistent with the meeting and written records, rebutted point by point below; the original meeting audio and written records are fully preserved and redacted-archived, and independent verification is welcome).
  • 技术支持:数字循真平台研判框架(攻击链建模与风险研判)。Tooling: the analysis framework of the 数字循真 platform (attack-chain modeling and risk assessment).
  • 本文:完整脱敏、零 PoC、零可复用武器的负责任披露记录。This document: a fully redacted, zero-PoC, zero-reusable-weapon responsible-disclosure record.

事件背景Background

本文作者是一名安全研究人员。2025 年 6 月,研究员因 Donut 的项目叙事而关注该产品并加入其官方 Discord 社区;2025 年 12 月参与官方产品访谈与 beta 测试。在 Donut 推出官方安全活动(Bug Hunt)后,研究员转入对其的系统性安全研究,并先后参加两届 Bug Hunt 活动。

The author is a security researcher. In June 2025, drawn by Donut’s project narrative, the researcher began following the product and joined its official Discord community; in December 2025 the researcher took part in official product interviews and beta testing. After Donut launched its official security events (Bug Hunt), the researcher moved into systematic security research on it and took part in both Bug Hunts.

在两届活动及后续沟通框架内,研究员对 Donut Browser 与 D0 两套系统累计发现 49 个安全问题,主要涉及钱包交易授权、用户隔离、资产归属校验、控制面访问与运行环境隔离,涵盖可影响用户资金安全的攻击链(11 笔链上交易为证)与 D0 平台的远程命令执行等核心风险。研究员的诉求自始公开、一致:早在首次会议就明确表达想加入 Donut——原话“如果有可能,我也比较想参与到这边来”“很想参与进来”,并提到此前已与[首席运营官]谈过这一想法;早期 Telegram 沟通中又强调“个人更在意的是长期合作”;第三次会议进一步明确希望全职加入团队。

Within the two events and the subsequent communication framework, the researcher found a total of 49 security issues across the two systems, Donut Browser and D0 — chiefly around wallet-transaction authorization, user isolation, asset-ownership checks, control-plane access, and runtime-environment isolation — including attack chains that can affect user fund safety (evidenced by 11 on-chain transactions) and remote code execution on the D0 platform. The researcher’s ask was open and consistent from the start: as early as the first meeting the researcher clearly expressed a wish to join Donut — in his own words, “如果有可能,我也比较想参与到这边来” / “很想参与进来” noting he had already raised the idea with [the COO]; in early Telegram messages he again stressed that “个人更在意的是长期合作”; and at the third meeting he made clear he hoped to join the team full-time.

在赏金问题上,研究员始终表示金额可沟通,并多次请项目方按漏洞影响、参照行业标准自行评估报价;直到约三个月后、由项目方主动邀请洽谈的第三次会议,研究员才给出自评区间并说明计价依据,同时重申请项目方参考行业标准定价。全程定价始终是可协商的建议,研究员未以公开相要挟,并非“强买强卖”。

On the bounty, the researcher consistently said the amount was negotiable and repeatedly asked the vendor to price it themselves by impact and industry standards; only about three months later, at the third meeting — which the vendor itself initiated — did the researcher give a self-assessed range and explain the basis for it, again asking the vendor to price by industry standards. Throughout, the pricing was always a negotiable suggestion; the researcher never threatened disclosure as leverage, and this was not “强买强卖”.

研究员自始按负责任披露流程行事,并在首次会议即完整说明该流程:通过线上会议、脱敏报告、PPT、PoC 演示视频与书面通知向项目方告知风险,给出超过 90 天修复窗口,产品负责人当场确认;并明确——窗口期届满后,无论漏洞是否修复,都将依惯例公开脱敏研究成果。该公开计划自首次沟通即已确定,是负责任披露流程的既定环节。

The researcher acted under a responsible-disclosure process from the outset and explained that process in full at the first meeting: notifying the vendor of the risks via online meetings, a redacted report, slides, a PoC video, and written notice, with a remediation window of over 90 days, confirmed on the spot by the product lead; and making clear that, once the window closed, the redacted research would be published as usual regardless of whether the issues were fixed. This publication plan was set from the very first communication and is a standard step of responsible disclosure.

后续,这批系统级研究成果被项目方按常规社区奖励口径处理、未获任何单独评估或专项赏金;在研究员发出最终通知后,项目方未就诉求继续沟通,转以法务立场回复。截至公开时,多数核心漏洞仍未修复

Subsequently, this body of system-level research was handled by the vendor as a routine community-reward matter, with no separate assessment or dedicated bounty; after the researcher’s final notice, the vendor stopped engaging on the substance and switched to a legal-posture reply. As of publication, most of the core vulnerabilities remain unfixed.

研究员依据上述既定的负责任披露计划,公开这份完整脱敏、零可复用武器的研究记录。

Following the established responsible-disclosure plan above, the researcher is publishing this fully redacted, zero-reusable-weapon research record.

用户自我保护指南User Self-Protection Guide

以下建议基于客观事实:截至 2026 年 6 月复测,本次整理的 49 个问题中仅 11 个完全修复、9 个部分修复、29 个仍未修复(含多个核心 Critical),且本文公开时未见 Donut 发布第三方安全审计与修复复测报告。下列均为通用的加密资产安全防护措施,适用于任何处于早期阶段、涉及托管钱包、自动签名与自动化执行的产品,并非针对特定主体;是否采取请自行判断。

The advice below is based on objective facts: as of the June 2026 retest, of the 49 issues catalogued here only 11 are fully fixed, 9 partially fixed, and 29 still unfixed (including several core Criticals), and at the time of publication no third-party security audit or remediation-retest report from Donut has been seen. The following are general crypto-asset protection measures applicable to any early-stage product involving custodial wallets, auto-signing, and automated execution — not aimed at any specific party; whether to adopt them is your own call.

如果你正在使用 Donut Browser、D0 或相关钱包 / AI Agent 功能,可按以下顺序处理风险。

If you use Donut Browser, D0, or related wallet / AI-Agent features, you can address the risks in the following order.

优先处理Do this first

先控制资产敞口,再处理账号、凭据和文件。发现异常交易或异常访问后,应立即将高价值资产提走,并保留交易哈希、截图和时间线。

Control asset exposure first, then handle accounts, credentials, and files. If you notice abnormal transactions or access, immediately move high-value assets out and keep the transaction hashes, screenshots, and a timeline.

钱包与链上资产Wallets & on-chain assets

  1. 01避免在 Donut 托管钱包中长期存放大额资产,按需充值、用完即提。Avoid keeping large balances in a Donut custodial wallet for long; deposit as needed and withdraw when done.
  2. 02保持 Donut 登录态时,避免点击来源不明的链接或访问不可信页面,敏感操作完成后及时退出登录,以降低被诱导触发交易的窗口。While logged in to Donut, avoid clicking links from unknown sources or visiting untrusted pages, and log out promptly after sensitive operations, to shrink the window for an induced transaction.
  3. 03持续监控该托管钱包地址的链上交易记录;发现异常后立即将资产提走,并保留交易哈希、截图和时间线。Continuously monitor that custodial wallet address’s on-chain activity; if anything looks abnormal, move the assets out at once and keep the transaction hashes, screenshots, and a timeline.

授权与测试边界Authorization & Testing Boundaries

本次披露基于授权测试、后续复测、公开沟通和安全研究记录整理而成。为避免误解,授权与测试边界如下。

This disclosure is compiled from authorized testing, subsequent retesting, public communications, and security-research records. To avoid misunderstanding, the authorization and testing boundaries are as follows.

  1. 授权测试边界:Donut Browser 阶段发生在 Donut 官方 Bug Hunt 活动及后续线上沟通框架内,相关风险已在会议和书面沟通中告知 Donut。Authorized-testing boundary: the Donut Browser phase took place within Donut’s official Bug Hunt events and the subsequent online-communication framework; the relevant risks were disclosed to Donut in meetings and written communications.
  2. 非破坏性验证边界:研究过程中没有转移任何第三方用户资金,也没有破坏第三方用户数据或服务可用性。Non-destructive-verification boundary: no third-party user funds were moved during the research, and no third-party user data or service availability was harmed.
  3. 资金验证边界:链上交易验证使用研究员自有测试账户完成,用于证明交易构建与执行链路存在服务端权限边界缺陷。Fund-verification boundary: on-chain transaction verification was performed with the researcher’s own test accounts, to prove a server-side privilege-boundary flaw in the transaction build-and-execute path.
  4. 第三方拦截边界:在跨用户钱包归属校验测试中,研究员使用自己的账号构造他人钱包交易请求,Donut 后端 / API 层仍会构建、提交并推进请求,最终由 Turnkey 返回 AUTH001 拦截资金转出。Third-party-interception boundary: in the cross-user wallet-ownership-check test, the researcher used his own account to construct a transaction request for another wallet; Donut’s backend / API layer still built, submitted, and advanced the request, which was ultimately stopped from moving funds by Turnkey returning AUTH001.
  5. 租户与容器边界:D0 阶段的命令执行和数据读取验证限定在研究员自有租户 / Pod 内,未在未授权情况下横向攻击其他用户 Pod;D0 阶段的具体发现未单独预先提交,与 Donut Browser 一并纳入本次公开披露。Tenant & container boundary: the command-execution and data-reading verification in the D0 phase was confined to the researcher’s own tenant / Pod; no other users’ Pods were laterally attacked without authorization. The specific D0 findings were not separately pre-submitted and are included in this public disclosure together with Donut Browser.
  6. 敏感信息处理边界:披露内容仅包含与事实证明有关的脱敏证据、验证结论和公开依据,不包含可直接复用的访问凭据、私钥或攻击脚本。Sensitive-information boundary: the disclosure contains only redacted evidence, verification conclusions, and public-basis material relevant to proving the facts — no directly reusable access credentials, private keys, or attack scripts.
  7. 披露目的边界:本文用于记录安全研究事实、用户风险、沟通过程和公开依据,不构成攻击指引、投资建议或法律意见。Purpose boundary: this document records security-research facts, user risk, the communication process, and the basis for publication; it is not an attack guide, investment advice, or legal advice.

项目背景About Donut

Donut 是近一年加密赛道最受瞩目的 AI × Crypto 新锐之一,自称"全球首个面向交易者的智能体(agentic)加密浏览器"。开发商 Donut Labs(总部纽约)成立约六个月内即完成两轮、合计 2200 万美元融资(2025-05 Pre-seed 700 万 + 2025-11 Seed 1500 万),投资阵容堪称豪华——红杉中国(HongShan)、BITKRAFT、Hack VC、Makers Fund、Sky9 Capital、Matrix Partners、Altos Ventures 等顶级机构,外加 Solana、Sui、Monad 等公链与 Jupiter、Drift、Manifold Trading 核心团队站台。据 Donut 官方融资公告,公司首季即吸引 16 万+ 候补用户,市场热度极高。

Donut is one of the most talked-about AI × Crypto newcomers of the past year, billing itself as “the world’s first agentic crypto browser for traders.” Its developer, Donut Labs (headquartered in New York), closed two rounds totaling US$22 million within about six months of founding (a US$7M Pre-seed in 2025-05 + a US$15M Seed in 2025-11), with a marquee investor lineup — top firms such as HongShan (Sequoia China), BITKRAFT, Hack VC, Makers Fund, Sky9 Capital, Matrix Partners, and Altos Ventures, plus backing from chains like Solana, Sui, and Monad and core teams from Jupiter, Drift, and Manifold Trading. Per Donut’s official funding announcement, the company drew 160,000+ waitlist users in its first quarter — extremely high market interest.

产品上,Donut 以"AI 原生加密浏览器"为愿景:Donut Browser 是浏览器 + 钱包入口,D0 是面向用户的 AI Agent 平台,核心卖点是让自主智能体直接接管钱包、签名与链上资金执行——CEO(前字节跳动)的原话是"在你睡觉时也能为你交易"。这也意味着远高于普通应用的安全门槛。正是在这样一个资金充裕、背景顶级、以"AI 自动管钱"为核心卖点的项目上,本次研究于其 Donut Browser 与 D0 两套系统中共发现 49 个安全问题(含自动签名盗币链与自有 Pod RCE)。

On the product side, Donut’s vision is an “AI-native crypto browser”: Donut Browser is the browser + wallet entry point, and D0 is a user-facing AI-Agent platform. Its core selling point is letting autonomous agents directly take over the wallet, signing, and on-chain fund execution — in the CEO’s (ex-ByteDance) own words, “it can trade for you even while you sleep.” That also implies a security bar far above an ordinary app. It is precisely on such a well-funded, top-tier-backed project — whose core selling point is “AI managing money automatically” — that this research found 49 security issues across its two systems, Donut Browser and D0 (including the auto-signing fund-theft chain and own-Pod RCE).

这些漏洞意味着什么What These Vulnerabilities Mean

抛开技术细节,这些问题对用户和产品的实际影响如下;具体如何发生见下方攻击链详解,实证见 链上交易Browser 证据D0 证据

Setting technical detail aside, here is the real-world impact of these issues on users and the product; for how they unfold see the attack-chain walkthrough below, and for proof see on-chain transactions, Browser evidence, and D0 evidence.

Donut Browser

对用户资金与隐私的影响Impact on user funds and privacy

  • 资金可被无授权转走最坏情况下,钱包中的资金可在用户毫不知情、未做任何确认的前提下被转走。Funds can be moved without authorization. In the worst case, wallet funds can be moved out with the user entirely unaware and without any confirmation.
  • 资产与交易隐私尽失余额、持仓、成本与交易历史可被他人读取,资产状况和交易策略形同对外公开。Asset and trading privacy is lost. Balances, holdings, cost basis, and trade history can be read by others, effectively making one’s asset profile and trading strategy public.
  • 更易成为定向目标高价值账户可被批量识别和筛选,钓鱼、定向攻击与交易操纵的成功率随之上升。Easier to be targeted. High-value accounts can be identified and filtered in bulk, raising the success rate of phishing, targeted attacks, and trade manipulation.
  • 资金安全不在自己手里拦下越权转账的最后一道防线落在第三方签名服务上,而非 Donut 自身;该防线一旦变化或未覆盖某类交易,风险即刻显现。Fund safety is out of your hands. The last line of defense against unauthorized transfers rests on a third-party signing service, not Donut itself; if that line changes or fails to cover some transaction type, the risk surfaces at once.
  • 普通上网行为即可触发风险无需用户主动操作——在登录态下被诱导访问页面或点击链接,就可能成为资金损失的入口。Ordinary browsing can trigger it. The risk needs no deliberate action by the user — being induced to visit a page or click a link while logged in can become the entry point to fund loss.
D0

对账户与敏感资料的影响Impact on accounts and sensitive data

  • 托付给 Agent 的资料可能外泄放入 D0 / Agent 环境的 API Key、脚本、内部文档与商业信息,存在被读取和滥用的风险。Data entrusted to the Agent may leak. API keys, scripts, internal documents, and business information placed in the D0 / Agent environment risk being read and misused.
  • 自动化交易任务不再可信Agent 的配置与运行流程可被影响,托付给它的自动化交易与策略未必按预期、安全地执行。Automated trading tasks can no longer be trusted. The Agent’s configuration and runtime flow can be influenced, so the automated trades and strategies entrusted to it may not execute as intended or safely.
  • 账户可被以用户身份滥用运行环境中的会话凭据可被读取,攻击者据此能以用户身份访问后端,账户与资金边界连带受影响。The account can be abused under the user’s identity. Session credentials in the runtime environment can be read, letting an attacker access the backend as the user, which in turn affects account and fund boundaries.
  • 模型"安全"不等于系统安全风险不止于"模型被越狱";即便模型层足够保守,运行环境一旦失守,账户、交易与数据仍会受冲击。Model “safety” ≠ system safety. The risk goes beyond “jailbreaking the model”; even if the model layer is conservative enough, once the runtime environment is breached, accounts, trades, and data are still hit.

攻击链详解Attack-Chain Walkthrough

以下为脱敏后的攻击链逻辑路径,展示风险如何组合、安全边界如何失效——浏览器侧与 D0 侧各有可通向用户资金的路径。标注「潜在 · 未实际突破」者,为研究员未实际执行的风险升级路径。

Below are the redacted logical attack-chain paths, showing how the risks combine and how security boundaries fail — the browser side and the D0 side each have a path that can lead to user funds. Items marked “Potential · not actually breached” are escalation paths the researcher did not actually execute.

Donut Browser 攻击链Donut Browser attack chains

Donut Browser / Chain 1 · 资金Donut Browser / Chain 1 · Funds

远程可触发的服务端自动签名盗币Remotely triggerable server-side auto-signing fund theft

  1. 攻击者通过钓鱼入口、恶意页面或被控子域,诱导用户在登录 Donut 的状态下访问一次页面或点击一次链接——子域通配符 CORS 与携带凭证的组合放大了这一远程触发面。An attacker uses a phishing entry point, malicious page, or controlled subdomain to induce a logged-in Donut user to visit a page or click a link once — the combination of subdomain-wildcard CORS and credentialed requests widens this remote trigger surface.
  2. 浏览器在用户未做任何签名或授权确认的情况下,携带会话向 Donut 交易接口发起请求。With no signature or authorization confirmation from the user, the browser carries the session to call Donut’s transaction API.
  3. Donut 后端在缺少“用户确认”与“钱包归属校验”两道边界的情况下,直接构建并自动签名交易:自有钱包 / 自有资金范围内交易成功上链(已实证,11 笔 Solscan 可查);引用他人钱包的跨用户交易,后端同样照常构建并推进,最终仅被第三方托管服务 Turnkey 以 AUTH001 在签名阶段拦下。Lacking both the “user confirmation” and “wallet-ownership check” boundaries, the Donut backend directly builds and auto-signs the transaction: within the researcher’s own wallet / own funds, transactions confirmed on-chain (proven — 11 verifiable on Solscan); for cross-user transactions referencing someone else’s wallet, the backend likewise builds and advances them as usual, stopped only by the third-party custodian Turnkey at the signing stage via AUTH001.
  4. 真正阻断他人资金转出的是 Turnkey,而非 Donut 自身的权限模型;这道外部防线一旦变化或某类交易不覆盖,跨用户盗币即直接成立。What actually blocks moving others’ funds is Turnkey, not Donut’s own privilege model; if that external line changes or fails to cover some transaction type, cross-user theft becomes directly viable.

影响:用户只要在登录态下被诱导点击一次,钱包资金就有条件被静默转走;资金安全的最后一道防线被外包给了第三方签名服务。

Impact: a single induced click while logged in is enough to create the conditions for funds to be silently moved; the last line of fund safety has been outsourced to a third-party signing service.

Donut Browser / Chain 2 · 数据Donut Browser / Chain 2 · Data

资产越权读取(IDOR)到目标画像Unauthorized asset reads (IDOR) → target profiling

  1. 仅凭研究员自己的会话,通过钱包、资产、持仓、交易历史等接口,读取非当前账号所属钱包的数据(IDOR,已实证)。With only the researcher’s own session, the wallet, asset, holdings, and trade-history APIs read data for wallets not owned by the current account (IDOR, proven).
  2. 接口缺少充分的速率限制与访问审计,可批量枚举、筛选高价值钱包与活跃交易策略。The APIs lack adequate rate limiting and access auditing, allowing bulk enumeration and filtering of high-value wallets and active trading strategies.
  3. 结合余额探测、跨用户限价单操作等问题,形成对特定目标的精准画像。Combined with balance probing and cross-user limit-order operations, this builds a precise profile of a specific target.

影响:即便不直接转移资产,资产与交易画像泄露也会显著抬高钓鱼、定向攻击与交易操纵的成功率,本身即构成用户隐私与账户安全损害。

Impact: even without moving assets directly, leaking asset and trading profiles markedly raises the success rate of phishing, targeted attacks, and trade manipulation, and itself constitutes harm to user privacy and account security.

D0 攻击链D0 attack chains

D0 / Chain 3 · 执行环境到资金D0 / Chain 3 · Execution env → funds

从登录态到 RCE,再到伪造 / 触达交易From login to RCE, then to forging / reaching transactions

  1. 进入控制面(已验证):普通 D0 登录态 → 环境接口返回控制面连接材料(公网入口、端口、Gateway Token)→ 连入底层控制面(页面显示 OpenClaw logo)→ 读取 Agent 与运行时配置。Enter the control plane (verified): ordinary D0 login → the environment API returns control-plane connection material (public entry point, port, Gateway Token) → connect into the underlying control plane (the page shows the OpenClaw logo) → read Agent and runtime configuration.
  2. 取得 RCE(已验证):借控制面读取 / 修改配置、向 Agent 工作区写入文件 → 将 beforeRun / heartbeat 等执行机制组合为命令执行路径 → 在研究员自有 Pod 内完成非破坏性 RCE。Achieve RCE (verified): via the control plane, read / modify config and write files into the Agent workspace → combine execution mechanisms such as beforeRun / heartbeat into a command-execution path → complete a non-destructive RCE inside the researcher’s own Pod.
  3. 身份接管(已验证):RCE 后读出 Session Token,已验证可“以用户身份”获得后端接口的正常响应。Identity takeover (verified): after RCE, read out the Session Token; verified to obtain normal backend-API responses “as the user.”
  4. 通向资金:借控制面 / 执行机制伪造并触发 Agent 交易,已在自有环境实测验证;以窃取的用户身份直接执行资金交易,路径已确证可行,但出于白帽边界未实际执行。Toward funds: forging and triggering Agent transactions via the control plane / execution mechanisms, tested in the researcher’s own environment; directly executing fund transactions under the stolen user identity is a confirmed-viable path, but was not actually executed, out of white-hat boundaries.

影响:D0 执行环境可直通用户资金——与浏览器侧的资金链路(Chain 1)形成两条独立通向用户资产的路径;AI 模型层的安全限制对这条链完全无效。

Impact: the D0 execution environment leads straight to user funds — forming, together with the browser-side fund path (Chain 1), two independent paths to user assets; the AI model layer’s safety limits are entirely ineffective against this chain.

D0 / Chain 4潜在 · 未实际突破Potential · not actually breached

容器逃逸到整机接管与跨用户资金 / 权限Container escape → full-host takeover & cross-user funds / privileges

  1. 起点是自有 Pod 内已验证的 RCE。The starting point is the verified RCE inside the researcher’s own Pod.
  2. 潜在路径:从自有 Pod 尝试容器逃逸 → 接管宿主 / 整台服务器 → 进而触及其他用户的 Pod、资金与权限。Potential path: attempt container escape from the own Pod → take over the host / entire server → then reach other users’ Pods, funds, and privileges.
  3. 边界声明:研究员未进行这一步——未尝试容器逃逸,未对任何其他用户 Pod 做未授权访问。本链仅为潜在风险说明,未实际突破(对应 D0-12「Pod 间隔离需进一步授权验证」)。Boundary statement: the researcher did not take this step — no container-escape attempt and no unauthorized access to any other user’s Pod. This chain is a potential-risk description only, not actually breached (corresponding to D0-12 “Pod isolation needs further authorized verification”).

影响(潜在):若 Pod 间隔离不足,单个被攻陷的 Agent Pod 可升级为对整个 D0 平台与全体用户资产的威胁——这正是执行环境隔离必须作为硬边界的原因。

Impact (potential): if Pod isolation is insufficient, a single compromised Agent Pod could escalate into a threat to the entire D0 platform and all users’ assets — exactly why execution-environment isolation must be a hard boundary.

影响演示(脱敏录像)Impact Demo (Redacted Recording)

下面这段录像是 2026-03 随脱敏报告一并提交给厂商的影响演示,此处为公开发布再次脱敏的版本。它只用于证明漏洞的实际效果:一次真实的链上交易,在没有任何用户确认、签名弹窗或交易预览的情况下被直接发起并执行,并可在区块链浏览器上验证。

The recording below is the impact demo submitted to the vendor in 2026-03 together with the redacted report; this is a version re-redacted for public release. It serves only to prove the vulnerability’s real effect: a genuine on-chain transaction initiated and executed directly without any user confirmation, signature prompt, or transaction preview, and verifiable on a block explorer.

脱敏影响演示 · 约 80 秒 · 无音轨 · 画面中所有钱包地址、交易哈希等标识均已打码Redacted impact demo · ~80 s · no audio · all wallet addresses, transaction hashes, and other identifiers in the footage are masked

需要说明的是:本录像只展示效果,不包含攻击代码、接口地址或任何可复用的利用步骤,与全文口径一致——零 PoC、零可复用武器。演示所用工具的内部实现、涉及的后端接口与请求构造不在录像中、也不对外公开,仅在脱敏报告中提供给厂商用于复现与修复。

To be clear: this recording shows the effect only — no attack code, endpoint addresses, or any reusable exploitation steps, consistent with the whole document: zero PoC, zero reusable weapons. The internal workings of the tooling used, the backend APIs involved, and the request construction are not in the recording and not made public; they were provided only to the vendor in the redacted report for reproduction and remediation.

负责任披露时间线Responsible-Disclosure Timeline

这一时间线用于说明通知、沟通、修复窗口、书面披露计划和公开披露节点,不作为完整技术复现时间线。研究者在 2026-03-11 第一次会议上完整陈述了披露流程框架并获产品负责人当场确认(“OK 可以的,对对”),项目方在 2026-06-04 第二次会议中再次确认“披露独立、可按自己节奏进行”。

This timeline explains the notification, communication, remediation windows, written disclosure plan, and public-disclosure point; it is not a full technical-reproduction timeline. At the first meeting on 2026-03-11, the researcher laid out the full disclosure-process framework and the product lead confirmed it on the spot (“OK 可以的,对对”); at the second meeting on 2026-06-04, the vendor again confirmed that “披露独立、可按自己节奏进行.”

负责任披露流程框架(2026-03-11 确认):Responsible-disclosure framework (confirmed 2026-03-11):

  • 0–7 天:与项目方确定前期修复方式与对外披露流程;0–7 days: agree with the vendor on the initial remediation approach and the external disclosure process;
  • 7–30 天:研究者协助团队修复;7–30 days: the researcher assists the team with remediation;
  • 30–90 天:视修复情况协商是否、以及如何对外披露;30–90 days: depending on remediation progress, negotiate whether and how to disclose publicly;
  • 90 天后:窗口届满,研究者有权披露——即使届时仍未修复。After 90 days: the window closes and the researcher has the right to disclose — even if it is still unfixed.
  • 2025-06[接触]因项目叙事关注 Donut 并加入官方 Discord 社区。[Contact] Began following Donut for its project narrative and joined the official Discord community.
  • 2025-12[接触]作为 Donut 用户参与官方产品访谈并收到访谈奖励,随后参与 beta 测试。[Contact] As a Donut user, took part in official product interviews (and received an interview reward), then joined beta testing.
  • 2026-02-02[授权活动 · Bug Hunt 1.0]参加 Donut Labs 第一次 Discord Bug Hunt:提交 8 个 bug 与安全报告。[Authorized event · Bug Hunt 1.0] Joined Donut Labs’ first Discord Bug Hunt: submitted 8 bugs and a security report.
  • 2026-02-22[社区活动奖金]Bug Hunt 1.0 参赛奖金 100 USDC 到账(凭活动提交的漏洞赢得)。[Community-event prize] Bug Hunt 1.0 contest prize of 100 USDC paid out (won with the vulnerabilities submitted for the event).
  • 2026-03-07[授权活动 · Bug Hunt 2.0]参与第二次 Bug Hunt:提交 13 个常规漏洞。[Authorized event · Bug Hunt 2.0] Joined the second Bug Hunt: submitted 13 routine vulnerabilities.
  • 2026-03-11[通知 · Critical]第二轮 Bug Hunt 期间挖掘到最高危(Critical)漏洞,拉起第一次线上会议:演示 Donut Browser 资金安全攻击链、说明漏洞等级;完整陈述披露流程框架,产品负责人当场确认;会后提交脱敏报告、PPT 与 PoC 演示视频,并说明沟通窗口、修复协调窗口与窗口期后独立披露安排。[Notification · Critical] During Bug Hunt 2.0, discovered the highest-severity (Critical) vulnerabilities and called the first online meeting: demonstrated the Donut Browser fund-safety attack chain and explained the severity; laid out the full disclosure-process framework, confirmed on the spot by the product lead; afterward submitted the redacted report, slides, and PoC video, and explained the communication window, the remediation-coordination window, and the post-window independent-disclosure arrangement.
  • 2026-03-18[7 天窗口届满 · T+7]前 7 天沟通窗口最后一天:书面正式进入负责任披露流程;项目方将系统级研究并入“常规社区奖励”口径(原话“是常规社区奖励”,见 tg164),研究者当日即书面反对、要求对系统级安全事件单独评估(见 tg163);基于 90 天窗口,明确通知计划于 2026-06-09 公开披露。[7-day window closes · T+7] Last day of the initial 7-day communication window: formally entered the responsible-disclosure process in writing; the vendor folded the system-level research into the “routine community-reward” track (in its words “是常规社区奖励,” see tg164), and the researcher objected in writing that same day, asking for a separate assessment of the system-level security incident (see tg163); based on the 90-day window, gave notice that public disclosure was planned for 2026-06-09.
  • 2026-03-21提交 9 个 CVE 申请。详见 CVE 记录Filed 9 CVE requests. See CVE Records.
  • 2026-03-28[社区活动奖金]Bug Hunt 2.0 参赛奖金 100 USDC 到账(凭活动提交的 13 个漏洞赢得;两届合计 200 USDC,均与系统级研究无关)。[Community-event prize] Bug Hunt 2.0 contest prize of 100 USDC paid out (won with the 13 vulnerabilities submitted for the event; 200 USDC across both events, both unrelated to the system-level research).
  • 2026-04 ~ 05[修复 / 观察窗口]研究者保持待命配合,等待修复进展与明确处理方案;期间项目方未就修复实际对接。[Remediation / observation window] The researcher stayed on standby to assist, awaiting remediation progress and a clear handling plan; during this period the vendor did not actually engage on remediation.
  • 2026-05独立完成 D0 阶段研究,验证控制面凭据泄露、配置修改、RCE 与容器数据提取链路。Independently completed the D0-phase research, verifying control-plane credential leakage, config modification, RCE, and the container data-extraction path.
  • 2026-06-02[复测 + T-7 提醒]完成最终非破坏性复测(49 项中完全修复 11、部分修复 9、仍未修复 29,多个核心 Critical 未修复);提醒距既定公开披露日(06-09)仅一周,预留 48 小时沟通窗口。[Retest + T-7 reminder] Completed the final non-destructive retest (of 49 items: 11 fully fixed, 9 partially fixed, 29 still unfixed, including several core Criticals); reminded that the set public-disclosure date (06-09) was only a week away, leaving a 48-hour communication window.
  • 2026-06-03[重新接洽]在 2026-03-18 降级答复、其后约 2.5 个月无实质推进的情况下,项目方(技术负责人)于披露截止提醒(06-02)次日才主动接洽、提出长期合作。[Re-engagement] After the 2026-03-18 downgrade reply and ~2.5 months with no substantive progress, the vendor (tech lead) reached out only the day after the disclosure-deadline reminder (06-02), proposing a long-term partnership.
  • 2026-06-04[第二次会议]技术细节复核与合作意向;项目方再次确认“披露独立、可按自己节奏进行”。[Second meeting] Review of technical details and partnership intent; the vendor again confirmed “披露独立、可按自己节奏进行.”
  • 2026-06-05[第三次会议]与[法务 / 财务 / 人力负责人]讨论合作方式与漏洞赏金;未获得明确答复。[Third meeting] Discussed partnership terms and the vulnerability bounty with [the legal / finance / HR leads]; no clear answer was given.
  • 2026-06-08[配合]主动表示可提供完整漏洞清单供评估,并表示若合作推进、愿配合(乃至延后)披露节奏。[Cooperation] Proactively offered the full vulnerability list for assessment, and said that if the partnership advanced he would accommodate (even postpone) the disclosure schedule.
  • 2026-06-10[最终通知]在多日无明确回复后,研究者发出最终通知,将公开披露日延至 2026-06-15(再次预留沟通窗口)。[Final notice] After several days with no clear reply, the researcher issued a final notice, postponing the public-disclosure date to 2026-06-15 (again leaving a communication window).
  • 2026-06-10[项目方无端指控]项目方一方未就诉求继续沟通,转以法务对抗姿态回复,作出“以漏洞施压敲诈”“未收到任何完整攻击链 / RCE 证明”“曾承诺不公开沟通过程”等与会议及书面记录不符的指控(逐条事实对照见下方对照表)。[Vendor’s baseless allegations] The vendor side stopped engaging on the substance and switched to an adversarial legal posture, making allegations inconsistent with the meeting and written records — “以漏洞施压敲诈,” “未收到任何完整攻击链 / RCE 证明,” “曾承诺不公开沟通过程,” etc. (point-by-point rebuttal in the table below).
  • 2026-06-15[窗口届满]披露窗口届满,按既定负责任披露流程公开本研究。[Window closes] The disclosure window closes; this research is published per the established responsible-disclosure process.

项目方最终回复(2026-06-10):法务对抗姿态与不实指控Vendor’s final reply (2026-06-10): adversarial legal posture and false allegations

在研究者发出最终通知(将公开披露日延至 06-15、再次预留沟通窗口)当日,项目方一方作出回复。为避免“选择性剪辑”,下面先完整贴出该回复原文(仅脱敏、未删节,原文见 Telegram 记录 · 2026-06-10),再逐条并列其不实指控与真实证据。

On the day the researcher issued the final notice (postponing public disclosure to 06-15 and again leaving a communication window), the vendor replied. To avoid any “selective editing,” the full original reply is reproduced below first (redacted only, unabridged; original at Telegram records · 2026-06-10), followed by a point-by-point pairing of its false allegations with the real evidence.

项目方回复原文 · 2026-06-10 · [技术负责人](完整、未删节、仅脱敏) · 在 Telegram 记录中查看Vendor’s original reply · 2026-06-10 · [tech lead] (complete, unabridged, redacted only) · View in Telegram records这件事已经没有继续沟通的必要了。

从一开始,你的核心诉求就很明确——利用漏洞作为筹码施压,目的无非是获取奖金,并借此争取一个高薪岗位。这个套路太常见了。在上次会议中,我们已经明确表态:与你的合作和漏洞披露之间没有任何绑定关系,你完全可以按照自己的节奏去走披露流程。你在会议记录中也亲口承诺过,仅披露技术细节,不会公开双方的沟通过程。现在看来,这个承诺你打算不认了也 ok

而且,在我们已经反复强调两者无关的情况下,你仍然开出 10 万美元以上的 完全不合理的奖金报酬外加高薪职位的条件。看穿了敲诈和强买强卖就不要再演戏了。

最后,有两点需要正式说明:
1. 截至目前,我们没有收到任何完整跨用户攻击链路的证明,也没有收到任何 RCE 的证明。
2. 你目前的披露流程和施压 索要不合理报酬的行为方式,完全不符合白帽安全研究者的行业规范。

你可以按照你自己的方式去披露,这是你的权利。但我们在此明确告知:如果在披露过程中出现任何不实陈述、歪曲事实、或对沟通记录进行选择性剪辑的行为,我方法务团队将深究。

以下逐条并列上述五条不实指控与真实证据。每条证据可点击跳转至对应的会议记录Telegram 记录或链上 / 复测证据。

Below, the five false allegations above are set side by side with the real evidence, point by point. Each piece of evidence links to the corresponding meeting records, Telegram records, or on-chain / retest evidence.

项目方不实指控Vendor’s false allegation真实证据节选(全程录音封存,欢迎机构进行监督)Real evidence (excerpts; full audio preserved, institutional oversight welcome)
① “你在会议记录中也亲口承诺过,仅披露技术细节,不会公开双方的沟通过程。”第二次会议(2026-06-04)录音及文字记录研究者从未承诺“不公开沟通过程”。会议中,项目方([技术负责人])先提出“披露这一块跟这个是比较独立的,你可以按照自己的节奏去披露,然后内容的话就一定要保持、保证公平客观,包括沟通过程”——即项目方明确将沟通过程纳入了可披露内容的范围,仅要求保持公平客观,而非禁止公开。研究者据此回应“只做技术层面的披露,不会掺杂个人情绪化的内容”,即按负责任披露流程进行、不掺杂个人主观想法,而非承诺“不公开沟通过程”。项目方随后再次确认“按之前的节奏去披露就 OK 了”。该指控所称的“承诺”,与项目方自身在会议中的上述原话不符。Second meeting (2026-06-04), audio and transcript: The researcher never promised “not to publish the communication process.” In the meeting, the vendor ([tech lead]) first said, “披露这一块跟这个是比较独立的,你可以按照自己的节奏去披露,然后内容的话就一定要保持、保证公平客观,包括沟通过程” — i.e., the vendor expressly placed the communication process within the scope of disclosable content, requiring only that it stay fair and objective, not forbidding publication. The researcher replied accordingly, “只做技术层面的披露,不会掺杂个人情绪化的内容” — i.e., proceed per responsible disclosure without injecting personal subjective views, not a promise “not to publish the communication process.” The vendor then again confirmed, “按之前的节奏去披露就 OK 了.” The “promise” alleged here contradicts the vendor’s own words above in the meeting.
② “截至目前,我们没有收到任何完整跨用户攻击链路的证明,也没有收到任何 RCE 的证明。”一、已验证、有实证:① 自有账户 1-click 静默盗币链已于 2026-03-11 会议现场完整演示(绕过签名、无授权完成交易),并有 11 笔真实链上交易为证(Solscan 可查);② 跨用户取消他人限价单已验证成功(平台侧无拦截);③ D0 于自有 Pod 取得 shell(自有环境 RCE 已验证)。
二、未完整验证(白帽合规边界):跨用户实际转走他人资金——仅在平台侧构造成功、最终被第三方 Turnkey 拦截,未实际执行(作为合规白帽,不能对他人账户造成实际资金损害);容器逃逸理论可行、未实测。以上在会议中均已如实说明。
三、完整可复现证明(含完整 PoC、完整报告)的交付前提是逐步收紧的首次会议时前提为达成合作意向,在长期未获实质回应后,才于第三次会议才收紧为以支付漏洞赏金为前提;该前提自首次沟通即明确告知;研究者并主动提出可提供完整漏洞清单供评估(另见第三次会议),项目方未索取。
因此,“未提供完整证明”的原因是对价未达成与白帽合规边界,而非漏洞不存在。
1) Verified, with evidence: ① the own-account 1-click silent fund-theft chain was fully demonstrated live at the 2026-03-11 meeting (bypassing signing, completing a transaction without authorization), with 11 real on-chain transactions as proof (verifiable on Solscan); ② cross-user cancellation of another user’s limit order was verified successful (no interception on the platform side); ③ a shell was obtained in D0 inside the researcher’s own Pod (own-environment RCE verified).
2) Not fully verified (white-hat compliance boundary): actually moving another user’s funds cross-user — only constructed successfully on the platform side and ultimately blocked by the third-party Turnkey, not actually executed (as a compliant white-hat, one must not cause real fund damage to others’ accounts); container escape is theoretically feasible but untested. All of the above was stated truthfully in the meetings.
3) The delivery precondition for complete reproducible proof (including a full PoC and full report) tightened over time: at the first meeting the precondition was reaching a cooperation intent; only after a long period with no substantive response did it tighten, at the third meeting, to payment of the bug bounty; this precondition was made clear from the very first communication; the researcher also proactively offered the full vulnerability list for assessment (see also the third meeting), which the vendor did not request.
Therefore, the reason “complete proof was not provided” is the unmet consideration and the white-hat compliance boundary — not that the vulnerabilities do not exist.
③ “从一开始,你的核心诉求就很明确——利用漏洞作为筹码施压,目的无非是获取奖金,并借此争取一个高薪岗位。……看穿了敲诈和强买强卖就不要再演戏了。”早在 2026-01-31 首次提交安全报告当天,研究者即在同一条消息中无偿交付报告,并公开写明“目前正在寻找合适的职业机会”、并主动表示在团队尚无专职安全人员时可提供建议与协助(Telegram · 2026-01-31):求职意向与漏洞报告自始一并、公开摆明,而非事后以漏洞作筹码。其后的首次会议上,研究者先完整演示了攻击链(含真实链上 PoC),之后才软性提出“如果团队有漏洞赏金方面的计划,我个人希望可以争取到一些奖励”、并表达想加入——先无偿交付价值、再软性提赏金,与“拿漏洞施压”在顺序与性质上都相反;其间同时提出长期合作,诉求自始公开、一致;明确拒绝自行定价(原话“金额这块我不太好定的,这有违安全研究的原则,会有威胁的倾向在里面”,见 Telegram · 2026-03-11),请项目方按漏洞影响自行评估。项目方技术负责人本人也在第二次会议前的 Telegram 中明确“专项赏金按劳分配是应该的”、并称“很缺这一块的人才”(见 Telegram 记录);研究者其后据漏洞影响给出可协商的报价区间并说明依据,正是对方所认同的“按劳分配”,与“敲诈、强买强卖”的指控自相矛盾。全程坚持负责任披露,从未提前公开或以公开相要挟。On 2026-01-31, the very day of the first security-report submission, the researcher delivered the report free of charge in the same message and openly stated “目前正在寻找合适的职业机会,” and proactively offered, should the team not yet have dedicated security staff, advice and assistance (Telegram · 2026-01-31): the job interest and the vulnerability report were laid out openly together from the start, not used as leverage after the fact. At the first meeting the researcher first fully demonstrated the attack chain (including a live on-chain PoC), and only afterwards softly said “如果团队有漏洞赏金方面的计划,我个人希望可以争取到一些奖励,” and expressed a wish to join — delivering value for free first and only then softly mentioning a bounty, the opposite in both order and nature of “利用漏洞作为筹码施压”; a long-term partnership was raised at the same time, and the ask was open and consistent from the outset. The researcher explicitly declined to set a price himself (in his words, “金额这块我不太好定的,这有违安全研究的原则,会有威胁的倾向在里面” see Telegram · 2026-03-11), asking the vendor to assess by impact. The vendor’s own tech lead, in Telegram before the second meeting, clearly said “专项赏金按劳分配是应该的” and that they “很缺这一块的人才” (see Telegram records); the researcher then gave a negotiable price range by impact with a stated basis — exactly the “按劳分配” the other side endorsed, contradicting the “敲诈和强买强卖” allegation. Responsible disclosure was maintained throughout, with no early publication and no threat of publication as leverage.
④ “你仍然开出 10 万美元以上的完全不合理的奖金报酬外加高薪职位的条件。”研究者对整套 49 漏洞 + 3–4 条攻击链的行业自评为 50–100 万美元(参照 HackerOne / Web3 同级标准),考虑到初创阶段主动大幅下调至 15–20 万美元,并明确“可以沟通商量”(见 第三次会议)。该数字为协商起点;赏金与全职薪资是分开讨论的两件事。尤需厘清:研究者并非主动“开出”条件——在第三次会议上,是研究者先反过来询问团队的预期,由团队([法务 / 财务 / 人力负责人])明确要求研究者先报价(原话“你希望的价格是多少”)后,研究者才给出 15–20 万美元的可协商区间(见第三次会议);而“专项赏金按劳分配是应该的”本就是项目方技术负责人自己认可的原则(见 Telegram)。应团队要求给出、且符合对方自身认可原则的协商起点,与“开出不合理条件”“敲诈”在性质上正相反。The researcher’s industry self-assessment for the full set of 49 vulnerabilities + 3–4 attack chains was US$500k–1M (benchmarked against HackerOne / comparable Web3 standards); given the startup stage, he proactively cut it sharply to US$150k–200k and made clear it was “可以沟通商量” (see the third meeting). That figure was a negotiating starting point; the bounty and a full-time salary were two separately discussed matters. To be precise, the researcher did not unilaterally “set conditions”: at the third meeting it was the researcher who first asked the team about their expectation, and the team ([legal / finance / HR lead]) explicitly asked the researcher to name a price first (verbatim “你希望的价格是多少”) before the researcher gave the negotiable range of US$150k–200k (see the third meeting); and “专项赏金按劳分配是应该的” was a principle the vendor’s own tech lead had endorsed (see Telegram). A negotiating starting point given at the team’s own request, consistent with a principle the other side itself endorsed, is the opposite in nature of imposing unreasonable conditions or “敲诈”.
⑤ “你目前的披露流程和施压索要不合理报酬的行为方式,完全不符合白帽安全研究者的行业规范。”全程遵循负责任披露(参照 ISO/IEC 29147、30111、CERT/CC):会议 + 书面多次通知、给足超 90 天窗口、两次额外预留沟通窗口、公开内容零 PoC / 零可复用武器(见披露时间线)。通过负责任披露争取合理赏金或职业机会,是行业通行的正当回报机制。Responsible disclosure was followed throughout (per ISO/IEC 29147, 30111, CERT/CC): meetings + repeated written notices, a full 90-day-plus window, two extra communication windows, and public content with zero PoC / zero reusable weapons (see the disclosure timeline). Pursuing a reasonable bounty or career opportunity through responsible disclosure is a legitimate, industry-standard reward mechanism.

厂商回应与讨论Vendor Response & Discussion

本节记录 Donut 对漏洞报告材料的处理方式。这里讨论的重点不是奖励金额本身,而是:当项目方已经通过会议和书面材料知晓 Critical 级资金安全攻击链、修复窗口和公开披露计划后,是否仍将该类漏洞材料降级为普通社区活动处理。

This section records how Donut handled the vulnerability-report materials. The focus is not the reward amount itself, but whether — after the vendor already knew, through meetings and written materials, of the Critical-level fund-safety attack chain, the remediation window, and the public-disclosure plan — it still downgraded such vulnerability materials to routine community-event handling.

处理口径争议Handling-classification dispute

在沟通过程中,Donut 将重大资金安全攻击链和后续安全报告降级为常规社区活动口径处理——项目方原话“是常规社区奖励”(见 Telegram · 2026-03-18,另见 第三次会议),而不是按 Critical 级漏洞响应流程进行分级、修复对接、复测反馈和合理奖励评估。值得注意的是,项目方产品负责人在第二次会议中评价研究者的第一版报告“比花了很多钱找的那个专业团队给的报告,有些角度是比较深的”(见第二次会议)——在项目方自己如此评价的同时,该系统级研究仍被按上述常规社区奖励口径处理。

During the communications, Donut downgraded a major fund-safety attack chain and the subsequent security reports to routine community-event handling — in the vendor’s own words, “是常规社区奖励” (see Telegram · 2026-03-18, and the third meeting) — rather than running a Critical-level vulnerability-response process with triage, remediation coordination, retest feedback, and a reasonable reward assessment. Notably, at the second meeting the vendor’s product lead said the researcher’s first report was, in his words, “比花了很多钱找的那个专业团队给的报告,有些角度是比较深的” (see the second meeting) — even as the vendor itself judged it this way, the research was still handled under the routine community-reward track above.

响应流程问题Response-process issues

Donut 已经参与线上会议,并接收脱敏报告、PPT 和 PoC 演示视频。即便如此,沟通过程仍没有体现出与资金安全风险相匹配的正式漏洞响应机制。

Donut took part in the online meetings and received the redacted report, slides, and PoC video. Even so, the communications showed no formal vulnerability-response mechanism commensurate with the fund-safety risk.

最终回应Final response

在研究者发出最终通知后,项目方未就诉求继续沟通,转以法务对抗姿态回复,并作出多条与会议及书面记录不符的指控;逐条事实对照见 披露时间线

After the researcher’s final notice, the vendor stopped engaging on the substance and switched to an adversarial legal posture, making several allegations inconsistent with the meeting and written records; for a point-by-point comparison see the disclosure timeline.

完整、未剪辑、仅脱敏的原始沟通记录附于上述两页:三次线上会议为录音文字整理,Telegram 记录按真实时间戳完整排列。

The complete, unedited, redacted-only original communication records are attached on the two pages above: the three online meetings are transcribed from audio, and the Telegram records are arranged in full by real timestamps.

值得关注的问题Open Questions

以下问题来自本文披露的攻击链、沟通记录、漏洞响应过程,以及 Donut 对外安全叙事与实际安全表现之间的落差。

The following questions arise from the attack chains, communication records, and vulnerability-response process disclosed here, and from the gap between Donut’s public security narrative and its actual security posture.

Q1

Donut 直接经手用户真实资金、可发起并执行不可逆的链上交易。对这样一个产品,用户授权、钱包归属校验、控制面与运行环境隔离等基础安全本应是不可让渡的底线——为什么 Donut Browser 与 D0 仍会在这些基础环节上失守?

Donut directly handles users’ real funds and can initiate and execute irreversible on-chain transactions. For such a product, basics like user authorization, wallet-ownership checks, and control-plane / runtime-environment isolation should be a non-negotiable bottom line — so why do Donut Browser and D0 still fail at these fundamentals?

Q2

Donut 官方文档向用户保证“所有交易都需经你批准(所有交易都需经你批准(All transactions require your approval))”(见 官方文档 · Wallet & Security)。但已验证的 1-click 静默交易链表明:存在可绕过这一批准、在用户未做任何授权或签名确认下即可直接发起并执行交易的路径(自有账户已验证,11 笔链上交易为证)。当一项面向用户的核心安全保证可被绕过,它在实际中还能在多大程度上被依赖?

Donut’s official docs assure users that “所有交易都需经你批准(All transactions require your approval)” (see official docs · Wallet & Security). But the verified 1-click silent-transaction chain shows a path that bypasses this approval and can initiate and execute a transaction with no authorization or signature confirmation from the user (verified on the researcher’s own account, evidenced by 11 on-chain transactions). When a core user-facing security guarantee can be bypassed, how far can it still be relied on in practice?

Q3

D0 已验证从普通登录态获取控制面连接材料,并进一步组合到配置读取、配置修改、文件写入、自有 Pod RCE 和敏感会话材料读取(详见 D0 证据)。这样的控制面暴露,是否符合 AI Agent 产品应有的安全边界?

D0 was verified to obtain control-plane connection material from an ordinary login, then combine it into config reading, config modification, file writing, own-Pod RCE, and reading of sensitive session material (see D0 evidence). Does such control-plane exposure match the security boundary an AI-Agent product ought to have?

Q4

在研究员提交重大安全研究成果、参与会议沟通、提供脱敏报告、PPT 和 PoC 演示视频,并明确给出负责任披露窗口后,项目方仍将 Critical 级漏洞降级为常规社区活动口径处理(项目方原话“是常规社区奖励”见 Telegram · 2026-03-18,处理经过另见 第三次会议),是否给予了与风险等级相称的重视与响应?

After the researcher submitted major security research, joined the meetings, provided the redacted report, slides, and PoC video, and clearly set a responsible-disclosure window, the vendor still downgraded the Critical-level vulnerabilities to routine community-event handling (vendor’s own words “是常规社区奖励,” see Telegram · 2026-03-18; see also the third meeting). Was this attention and response commensurate with the risk level?

Q5

如果独立安全研究员在负责任披露框架下提交重大漏洞成果,最终却被降级为普通社区活动处理,这是否会让更多研究员对合规披露失去信心?

If an independent researcher submits major vulnerability findings under a responsible-disclosure framework only to be downgraded to routine community-event handling, will this make more researchers lose confidence in compliant disclosure?

Q6

安全研究的投入与回报,在攻击者与白帽之间高度不对称:攻击者只需找到一条可利用路径,无需顾及授权、合规或是否被认可;白帽却要在授权边界、负责任披露与长期沟通上付出大量成本,最终可能连一句公开致谢都没有;甚至在合规框架内正当争取合理回报,也可能被重新定性为“施压”或“敲诈”、进而面临法律威胁。当合规披露长期得不到与风险相称的回应、研究者因此流失,会不会反而削弱整个行业所依赖的协调披露机制——而真正的攻击者,从不需要这些前提?

The cost-and-reward of security research is highly asymmetric between attackers and white-hats: an attacker only needs to find one exploitable path, with no regard for authorization, compliance, or recognition; a white-hat must spend heavily on authorization boundaries, responsible disclosure, and long-running communication, and may end up without even a single public acknowledgement — and may even, while legitimately seeking a reasonable reward within a compliant framework, be recast as “施压” or “敲诈” and then face legal threats. When compliant disclosure long goes without a response commensurate with the risk and researchers leave as a result, does this not weaken the very coordinated-disclosure mechanism the whole industry relies on — while real attackers never need any of these prerequisites?

Q7

Donut 在官方介绍核心产品 D0 时强调“金融操作不可逆,对安全的要求从根本上就不同(the bar for safety is fundamentally different)”(官方 X @DonutAI)。但 D0 恰恰基于一款上线时间很短的开源项目二次开发,本次研究并在其上取得了 RCE 与控制面接管——这与其安全定位、融资规模和市场期待是否相称?相应的潜在安全风险,是否得到了与之匹配的安全投入?

In officially introducing its core product D0, Donut stressed that “金融操作不可逆,对安全的要求从根本上就不同(the bar for safety is fundamentally different)” (official X @DonutAI). Yet D0 is built on top of an open-source project that had been live for only a short time, and this research achieved RCE and control-plane takeover on it — is that commensurate with its security positioning, funding scale, and market expectations? Have the corresponding potential security risks received matching security investment?

安全治理观察Security-Governance Observations

这次事件不只是若干接口漏洞的集合,更暴露了 AI + Crypto 产品在安全治理上的几个共性问题。

This incident is not just a collection of API bugs; it also exposes several common security-governance problems for AI + Crypto products.

第一,AI Agent 一旦接入钱包、交易、签名、策略执行和链上资产,就不再是普通聊天机器人,而是带有金融执行能力的自动化系统。这样的系统需要强制的后端权限模型、资产归属校验、最小权限、签名确认、审计日志和异常拦截。

First, once an AI Agent connects wallets, trading, signing, strategy execution, and on-chain assets, it is no longer an ordinary chatbot but an automated system with financial-execution capability. Such a system needs an enforced backend authorization model, asset-ownership validation, least privilege, signature confirmation, audit logging, and anomaly interception.

第二,第三方安全策略不能替代项目自身的权限模型。Turnkey 返回 AUTH001 并拦截高风险交易,说明第三方服务在最后阶段发挥了拦截作用。Donut 自身后端仍暴露出用户与钱包、订单、交易之间的绑定校验问题。

Second, a third-party security policy cannot substitute for the project's own authorization model. Turnkey returning AUTH001 and blocking a high-risk transaction shows that the third-party service acted as an interceptor at the final stage. Donut's own backend still exposes binding-validation problems between users and wallets, orders, and transactions.

第三,Bug Hunt 或社区反馈机制不能替代正式漏洞响应流程。当项目公开鼓励社区测试时,也应准备好处理真正的 Critical 级安全事件,包括分级评估、修复对接、披露协调、复测反馈和合理奖励。

Third, a Bug Hunt or community-feedback mechanism cannot substitute for a formal vulnerability-response process. When a project publicly encourages community testing, it should also be ready to handle real Critical-level security incidents, including graded assessment, remediation coordination, disclosure coordination, retest feedback, and reasonable rewards.

第四,AI Agent 运行环境的控制面安全应被视为核心资产边界。前端会话、Gateway Token、配置修改、文件写入、beforeRun 和 heartbeat 之间如果缺少强隔离,就可能让攻击者绕过模型层安全审查,直接触达执行层。

Fourth, the control-plane security of an AI-Agent runtime environment should be treated as a core asset boundary. If there is no strong isolation between front-end sessions, the Gateway Token, config modification, file writes, beforeRun, and heartbeat, an attacker may bypass the model-layer safety review and reach the execution layer directly.

第五,开源依赖和二次开发本身不是问题。问题在于,一个对外披露两轮合计融资 2200 万美元、并将 D0 作为核心 AI Agent 产品呈现的公司,其核心控制面在实际访问中明确显示 OpenClaw logo,文档入口也指向 OpenClaw 官方文档。这样的事实应当被公开讨论:D0 对外包装、自研叙事、关键开源依赖透明度、二次开发安全审查和实际安全工程能力之间,存在明显落差。真正值得关注的不是使用开源,而是在高融资叙事下没有充分说明核心产品对 OpenClaw 的依赖,也没有体现出与资金规模相匹配的安全工程和漏洞响应能力。

Fifth, open-source dependency and secondary development are not themselves a problem. The problem is that a company disclosing US$22M raised across two rounds and presenting D0 as its core AI-Agent product has a core control plane that, on actual access, clearly displays the OpenClaw logo, with the docs link pointing to the OpenClaw official documentation. This fact should be discussed openly: there is a clear gap between D0's external packaging, its in-house-development narrative, the transparency of its key open-source dependency, the security review of its secondary development, and its actual security-engineering capability. What truly warrants attention is not the use of open source, but that, under a high-funding narrative, the core product's dependency on OpenClaw was not adequately disclosed, nor was a security-engineering and vulnerability-response capability commensurate with the funding scale demonstrated.

第六,安全研究的认可机制本身也是安全治理的一部分。成熟的负责任披露体系通常以专项赏金、公开致谢(官网致谢、安全名人堂、披露致谢)等方式回馈研究者,这既是对研究价值的承认,也是吸引持续、合规安全研究的基础。本次系统级研究(49 漏洞 / 攻击链 / RCE)既未获任何单独评估或专项赏金,也未在任何公开渠道获得正式认可(仅 Discord 社区有非正式感谢)。需要说明的是,安全研究无偿提交在行业中并不少见,研究者也从未将赏金作为公开披露的前提;这里的观察点不在于“是否付费”,而在于:项目方自身明确表示设有 bug bounty 预算,却仍将此类系统级研究按常规社区奖励口径处理。如何对待重大安全研究成果,本身就反映了一个产品的安全治理成熟度。

Sixth, the recognition mechanism for security research is itself part of security governance. A mature responsible-disclosure system usually rewards researchers through dedicated bounties and public acknowledgement (website credits, a security hall of fame, disclosure credits) — both an acknowledgement of the research's value and a foundation for attracting sustained, compliant security research. This system-level research (49 vulns / attack chains / RCE) received neither any separate assessment or dedicated bounty, nor any formal recognition on any public channel (only an informal thank-you in the Discord community). To be clear, submitting security research for free is not uncommon in the industry, and the researcher never made a bounty a precondition for public disclosure; the point of observation here is not “whether it was paid”, but that the vendor itself explicitly stated it has a bug-bounty budget, yet still processed this kind of system-level research under the ordinary community-reward track. How major security research is treated itself reflects a product's security-governance maturity.

本文记录这些问题的目的,是让用户、媒体、投资人和开发团队更清楚地看到:AI + Crypto 产品的安全能力不应只体现在叙事和界面上,而应体现在后端权限模型、运行环境隔离和漏洞响应机制中。

The purpose of recording these problems is to let users, media, investors, and the development team see more clearly: the security capability of an AI + Crypto product should not be reflected only in narrative and UI, but in the backend authorization model, runtime-environment isolation, and the vulnerability-response mechanism.

漏洞总览Vulnerability Overview

本次披露整理的 49 个安全问题一览(编号、等级、类型与 2026-06 初复测状态)。点击任一漏洞名可查看该漏洞的完整详情与证据落点;汇总证据见 Donut Browser 漏洞详情D0 漏洞详情链上交易证据CVE 申请

An overview of the 49 security issues catalogued in this disclosure (ID, severity, type, and early-2026-06 retest status). Click any vulnerability name to see its full detail and evidence location; aggregated evidence is in Donut Browser vulnerability details, D0 vulnerability details, on-chain transaction evidence, and CVE filings.

总计 49Total 49Critical 10High 19Medium 16Low 4完全修复 11 · 部分修复 9 · 仍未修复 29Fully fixed 11 · Partially fixed 9 · Unfixed 29CVE 申请 9CVE filings 9
编号ID等级Severity漏洞(点击查看详情)Vulnerability (click for details)类型Type复测状态Retest status
Donut Browser(35)Donut Browser (35)
DB-1Critical用户签名授权可伪造 / 交易静默上链User signature-authorization can be forged / transaction silently confirmed on-chain资金安全 / 授权缺陷Fund safety / authorization flaw✗ 未修复✗ Unfixed
DB-2Critical跨用户交易构建未绑定当前会话钱包归属Cross-user transaction build not bound to the current session’s wallet ownershipIDOR / 业务逻辑IDOR / business logic⚠ 部分修复⚠ Partially fixed
DB-3Critical任意钱包资产、持仓、交易历史 IDORIDOR on any wallet’s assets, holdings, and trade history越权访问 / 信息泄露Broken access control / info leak✗ 未修复✗ Unfixed
DB-4CriticalCORS 子域通配符与 credentials 组合CORS subdomain-wildcard combined with credentialsWeb 配置错误Web misconfiguration⚠ 部分修复⚠ Partially fixed
DB-5CriticalMCP 工具层认证与权限边界不足Insufficient auth and privilege boundary in the MCP tool layer认证绕过 / 工具滥用Auth bypass / tool abuse✗ 未修复✗ Unfixed
DB-6HighRole 参数注入Role-parameter injection输入校验 / 权限提升Input validation / privilege escalation✗ 未修复✗ Unfixed
DB-7HighWallet Service 无认证或弱认证钱包创建Wallet Service wallet creation with no / weak authentication认证缺失 / 资源滥用Missing auth / resource abuse✓ 已修复✓ Fixed
DB-8HighCredits / 使用次数限制绕过Credits / usage-limit bypass业务逻辑Business logic✗ 未修复✗ Unfixed
DB-9HighAI Agent 配置与 System Prompt 泄露AI Agent config and system-prompt leakage信息泄露 / Prompt Injection 原料Info leak / prompt-injection material⚠ 部分修复⚠ Partially fixed
DB-10High跨用户限价单取消Cross-user limit-order cancellation越权访问Broken access control✗ 未修复✗ Unfixed
DB-11CriticalDeFi 自动签名交易链路缺少用户授权DeFi auto-signing transaction path lacks user authorization资金安全Fund safety⚠ 部分修复⚠ Partially fixed
DB-12HighAdmin Plan / 订阅计划信息泄露Admin Plan / subscription-plan info leakage信息泄露 / 业务逻辑Info leak / business logic✗ 未修复✗ Unfixed
DB-13HighSQL 查询结构与表结构泄露SQL query-structure and schema leakage信息泄露Info leak⚠ 部分修复⚠ Partially fixed
DB-14High多端点输入验证不足导致 500 错误Insufficient input validation across endpoints causing 500 errors输入校验Input validation⚠ 部分修复⚠ Partially fixed
DB-15MediumSolana RPC 代理无认证Unauthenticated Solana RPC proxy认证缺失 / 配额滥用Missing auth / quota abuse✓ 已修复✓ Fixed
DB-16Medium私有分析数据泄露Private analytics-data leakage信息泄露Info leak✓ 已修复✓ Fixed
DB-17MediumAPI 缺失速率限制Missing API rate limiting配置错误 / 滥用防护不足Misconfiguration / weak abuse protection⚠ 部分修复⚠ Partially fixed
DB-18MediumS3 Bucket 或静态资源目录公开Public S3 bucket or static-asset directory信息泄露Info leak✓ 已修复✓ Fixed
DB-19MediumHealth / 运维端点信息泄露Health / ops-endpoint info leakage信息泄露Info leak⚠ 部分修复⚠ Partially fixed
DB-20MediumMCP 工具配置完全公开MCP tool configuration fully public信息泄露Info leak✓ 已修复✓ Fixed
DB-21MediumOpenAPI / Scalar 文档暴露OpenAPI / Scalar docs exposure信息泄露Info leak✓ 已修复✓ Fixed
DB-22Medium监控报告端点无认证Unauthenticated monitoring-report endpoint认证缺失Missing auth✓ 已修复✓ Fixed
DB-23High任意钱包余额探测Arbitrary wallet-balance probing信息泄露Info leak⚠ 部分修复⚠ Partially fixed
DB-24Mediumrisk-metrics 全平台数据泄露risk-metrics platform-wide data leakage信息泄露Info leak✓ 已修复✓ Fixed
DB-25Highbeta.donutlabs.dev 第二后端暴露beta.donutlabs.dev second-backend exposure攻击面暴露Attack-surface exposure✗ 未修复✗ Unfixed
DB-26Highwallet-service 钱包详情无认证查询wallet-service wallet-detail unauthenticated query越权访问Broken access control✓ 已修复✓ Fixed
DB-27HighAdmin taskKey / 管理计划路径暴露Admin taskKey / management-plan path exposure信息泄露 / 权限边界Info leak / privilege boundary✗ 未修复✗ Unfixed
DB-28MediumORM 操作符注入线索ORM operator-injection indicators注入 / 查询污染Injection / query pollution✗ 未修复✗ Unfixed
DB-29MediumHelius Webhook 路径仍可访问Helius webhook path still accessible认证缺失 / Webhook 暴露Missing auth / webhook exposure✓ 已修复✓ Fixed
DB-30Mediumdonutlabs.dev 通配符 DNS / 子域解析donutlabs.dev wildcard DNS / subdomain resolution配置错误Misconfiguration✗ 未修复✗ Unfixed
DB-31MediumMCP 工具生态完整枚举Full enumeration of the MCP tool ecosystem信息泄露Info leak✗ 未修复✗ Unfixed
DB-32LowHTTP 安全头缺失Missing HTTP security headersWeb 加固不足Insufficient web hardening✗ 未修复✗ Unfixed
DB-33LowCookie 安全属性不足Insufficient cookie security attributes会话保护不足Insufficient session protection✗ 未修复✗ Unfixed
DB-34Low前端敏感信息暴露Front-end sensitive-info exposure信息泄露Info leak✗ 未修复✗ Unfixed
DB-35Low详细错误信息、调试端点和生产指纹暴露Verbose error messages, debug endpoints, and production-fingerprint exposure信息泄露Info leak✓ 已修复✓ Fixed
D0(14)D0 (14)
D0-1Critical环境接口泄露 Gateway 连接信息与 TokenEnvironment API leaks Gateway connection info and Token凭据泄露 / 权限提升原料Credential leak / privilege-escalation material✗ 未修复✗ Unfixed
D0-2HighWebSocket Origin / 来源边界不足Insufficient WebSocket Origin / source boundaryWebSocket 认证边界WebSocket auth boundary✗ 未修复✗ Unfixed
D0-3Criticaloperator/admin 高权限能力暴露或限制不足operator/admin high-privilege capabilities exposed or under-restricted权限边界缺陷Privilege-boundary flaw✗ 未修复✗ Unfixed
D0-4HighWebSocket 控制面配置读取WebSocket control-plane config read敏感配置泄露Sensitive-config leak✗ 未修复✗ Unfixed
D0-5Criticalagents.files.set 等文件写入能力过宽Overly broad file-write capability (agents.files.set, etc.)任意文件/工作区写入Arbitrary file/workspace write✗ 未修复✗ Unfixed
D0-6Mediumconfig.patch 缺乏足够审计和变更保护config.patch lacks adequate audit and change protection配置完整性 / 审计缺失Config integrity / missing audit✗ 未修复✗ Unfixed
D0-7Highheartbeat 脚本完整性校验不足Insufficient integrity checking of heartbeat scripts执行完整性缺陷Execution-integrity flaw✗ 未修复✗ Unfixed
D0-8CriticalOpenClaw beforeRun / 控制面机制导致 RCERCE via OpenClaw beforeRun / control-plane mechanisms远程代码执行Remote code execution✗ 未修复✗ Unfixed
D0-9HighSession Token 文件可由容器内进程读取Session Token file readable by in-container processes会话凭据泄露Session-credential leak✗ 未修复✗ Unfixed
D0-10High容器环境变量泄露Container environment-variable leakage敏感信息泄露Sensitive-info leak✗ 未修复✗ Unfixed
D0-11Medium内部 ELB / 后端入口暴露Internal ELB / backend-entry exposure架构泄露 / 纵深攻击面Architecture leak / lateral attack surface✗ 未修复✗ Unfixed
D0-12HighPod 间网络隔离仍需进一步授权验证Pod-to-Pod network isolation needs further authorized verification隔离边界风险Isolation-boundary risk✗ 未修复✗ Unfixed
D0-13HighGateway Token 生命周期与轮换不足Insufficient Gateway Token lifecycle and rotation凭据管理缺陷Credential-management flaw✗ 未修复✗ Unfixed
D0-14MediumJWT 有效期与敏感凭据暴露风险JWT validity period and sensitive-credential exposure risk会话安全Session security✗ 未修复✗ Unfixed