Jet Protocol 任意提款漏洞

慢雾科技Xuất bản vào 2022-04-02Cập nhật gần nhất vào 2022-04-02

Tóm tắt

目前在 Solana 上发生过多起黑客攻击事件均与账号校验问题有关,慢雾安全团队提醒广大 Solana 开发者,注意对账号体系进行严密的审查。

据 Jet Protocol 官方博客披露,他们近期修复了一个赏金漏洞,这个漏洞会导致恶意用户可以提取任意用户的存款资金,慢雾安全团队对此漏洞进行了简要分析,并将分析结果分享如下。

账号

(来源:https://www.jetprotocol.io/posts/jet-bug-disclosure)
相关信息
Jet Protocol 是运行在 Solana 上的一个借贷市场,用户可将账号里的代币(如:USDC、SOL)存入金库,赚取年化收益,同时也可以按一定的比例借出另一种代币。在这个过程中合约会给用户一个 note 凭证,作为用户未来的提款凭证,用我们熟悉的字眼来说就是 LP,而本次漏洞发生的原因也和这个 LP 的设计有关。
我们知道和以太坊合约相比,Solana 合约没有状态的概念,取而代之的是账号机制,合约数据都存储在相关联的账号中,这种机制极大提升了 Solana 的区块链性能,但也给合约编写带来了一些困难,最大的困难就是需要对输入的账号进行全面的验证。Jet Protocol 在开发时使用了 Anchor 框架进行开发,Anchor 是由 Solana 上的知名项目 Serum 团队开发的,可以精简很多账号验证及跨合约调用逻辑。
Anchor 是如何工作的呢?我们可以从 Jet Protocol 的一段代码说起:
programs/jet/src/instructions/init_deposit_account.rs

账号

这里的 deposit_account 账号就是用于存储 LP 代币数据的账号,用户在首次使用时,需要调用合约生成该账号,并支付一定的存储费用。
而这里的 #[account] 宏定义限定了这个账号的生成规则:
规则 1:#[account(init, payer = <target_account>, space = <num_bytes>)]
这个约束中,init 是指通过跨合约调用系统合约创建账号并初始化,payer=depositor 意思是 depositor 为新账号支付存储空间费用。
规则 2:#[account(seeds = <seeds>, bump)]
这个约束中将检查给定帐户是否是当前执行程序派生的 PDA,PDA (Program Derived Address) 账号是一个没有私钥、由程序派生的账号,seed 和 bump 是生成种子,如果 bump 未提供,则 Anchor 框架默认使用 canonical bump,可以理解成自动赋予一个确定性的值。
使用 PDA,程序可以以编程方式对某些地址进行签名,而无需私钥。同时,PDA 确保没有外部用户也可以为同一地址生成有效签名。这些地址是跨程序调用的基础,它允许 Solana 应用程序相互组合。这里用的是 "deposits" 字符 + reserve 账号公钥 + depositor 账号公钥作为 seeds,bump 则是在用户调用时传入。
规则 3:#[account(token::mint = <target_account>, token::authority = <target_account>)]
这是一个 SPL 约束,用于更简便地验证 SPL 账号。这里指定 deposit_account 账号是一个 token 账号,它的 mint 权限是 deposit_note_mint 账号,authority 权限是 market_authority。
Account 的宏定义还有很多,这里略表不提,详细可以考虑文档:
https://docs.rs/anchor-lang/latest/anchor_lang/derive.Accounts.html
有了这些前置知识,我们就可以直接来看漏洞代码:
programs/jet/src/instructions/withdraw_tokens.rs

账号

正常情况下,用户调用函数 withdraw_tokens 提币时,会传入自己的 LP 账号,然后合约会销毁他的 LP 并返还相应数量的代币。但这里我们可以看到 deposit_note_account 账号是没有进行任何约束的,用户可以随意传入其他用户的 LP 账号。难道使用别人的 LP 账号不需要他们的签名授权吗?
通过前面分析宏定义代码,我们已经知道了 market_authority 账号拥有 LP 代币的操作权限,确实不需要用户自己的签名。那么 market_authority 又是一个怎么样的账号呢?我们可以看这里:

  • programs/jet/src/instructions/init_market.rs
账号

这个 market_authority 也是一个 PDA 账号。也就是说合约通过自身的调用就可以销毁用户的 LP 代币。那么对于恶意用户来说,要发起攻击就很简单了,只要简单地把 deposit_note_account 账号设置为想要窃取的目标账号,withdraw_account 账号设置为自己的收款账号,就可以销毁他的 LP,并把他的存款本金提现到自己的账号上。
最后我们看一下官方的修复方法:

账号

补丁中并未直接去约束 deposit_note_account 账号,而是去除了 burn 操作的 PDA 签名,并将 authority 权限改成了 depositor,这样的话用户将无法直接调用这里的函数进行提现,而是要通过另一个函数 withdraw() 去间接调用,而在 withdraw() 函数中账号宏定义已经进行了严密的校验,恶意用户如果传入的是他人的 LP 账号,将无法通过宏规则的验证,将无法通过宏规则的验证,因为 depositor 需要满足 signer 签名校验,无法伪造成他人的账号。

programs/jet/src/instructions/withdraw.rs

账号

总结
本次漏洞的发现过程比较有戏剧性,漏洞的发现人 @charlieyouai 在他的个人推特上分享了漏洞发现的心路历程,当时他发现 burn 的权限是 market_authority,用户无法进行签名,认为这是一个 bug,会导致调用失败且用户无法提款,于是给官方提交了一个赏金漏洞,然后就去吃饭睡觉打豆豆了。
而后官方开发者意识到了问题的严重性,严格地说,他们知道这段代码没有无法提现的漏洞,而是人人都可以提现啊,老铁,一个能良好运行的 bug 你知道意味着什么吗?!所幸的是没有攻击事件发生。
目前在 Solana 上发生过多起黑客攻击事件均与账号校验问题有关,慢雾安全团队提醒广大 Solana 开发者,注意对账号体系进行严密的审查。

Nội dung Liên quan

Charles Schwab tính toán và tiết lộ giá trị hợp lý của Bitcoin (BTC)! Đây là mức giá mà nó nên đạt được!

Công ty môi giới Charles Schwab ước tính giá trị hợp lý của Bitcoin (BTC) là khoảng 95.000 USD. Jim Ferraioli, người đứng đầu bộ phận nghiên cứu tiền điện tử tại công ty này, cho biết mức định giá dựa trên chi phí sản xuất (khai thác) Bitcoin, không phải tâm lý thị trường ngắn hạn. Theo phân tích, các thợ đào hiệu quả nhất có chi phí khai thác khoảng 60.000 USD/BTC, trong khi con số này có thể lên tới 95.000 USD đối với những thợ đào kém hiệu quả hơn. Ferraioli so sánh điều này với thị trường hàng hóa truyền thống, nơi chi phí sản xuất là một chỉ số quan trọng. Ông cũng nhấn mạnh rằng mức 60.000 USD - tương ứng với chi phí sản xuất của các thợ đào hiệu quả - có thể đóng vai trò là một mức hỗ trợ mạnh về mặt cơ bản cho Bitcoin, trùng hợp với đường trung bình động 200 tuần của BTC. Tuy nhiên, Ferraioli nói rõ rằng 95.000 USD là một ước tính dựa trên dữ liệu kinh tế chứ không phải một mục tiêu giá dự đoán, và không thể biết liệu Bitcoin có đạt được mức đó trong vòng sáu tháng tới hay không. *Đây không phải là lời khuyên đầu tư.

cryptonews.ru9 phút trước

Charles Schwab tính toán và tiết lộ giá trị hợp lý của Bitcoin (BTC)! Đây là mức giá mà nó nên đạt được!

cryptonews.ru9 phút trước

Giấc mộng không tưởng về tiền điện tử đã vỡ? Ngành công nghiệp đón điểm ngoặt sau khi cơn sốt tan biến

Hiện nay, ngành công nghiệp tiền mã hóa đang ở một bước ngoặt sau khi bong bóng "không tưởng" tan vỡ. Nhiều người rời đi vì kỳ vọng tài chính không được đáp ứng, và sự sụt giảm năm 2021 được xem như đỉnh cao của chu kỳ hype. Ngành công nghiệp buộc phải quay trở lại những nguyên tắc cơ bản: xem xét lại giá trị token, củng cố bảo mật DeFi và tìm kiếm các ứng dụng thực tế. Tài sản tiền mã hóa có tính phản ánh cao, và đặc tính giao dịch sớm của token đã góp phần tạo ra bong bóng. Động lực lợi nhuận ngắn hạn đã lấn át sự đổi mới thực sự. Hiện tại, các cuộc tấn công DeFi là tín hiệu cho thấy nhu cầu về các giải pháp kỹ thuật vững chắc. Sự tò mò, chứ không phải lợi nhuận, mới là động lực thực sự cho phát minh. Văn hóa ngành đã thay đổi, chấp nhận rằng giai đoạn đầu đã kết thúc. Theo lý thuyết của Carlota Perez, chúng ta đang ở điểm bùng phát, chuyển từ ảo tưởng sang triển khai hợp lý. Mục tiêu xây dựng lại tài chính từ số không là một thách thức lớn, đòi hỏi nhiều lần lặp lại và thất bại. Đầu tư mạo hiểm trong lĩnh vực tiền mã hóa (Crypto VC) không chết, nhưng đang điều chỉnh. Lợi nhuận siêu cao giai đoạn 2016-2021 là bất thường. Ngành công nghiệp đang trưởng thành và bị hệ thống hiện tại đồng hóa, từ bỏ những tư tưởng không tưởng ban đầu. Các dự án mới tập trung vào các lĩnh vực như stablecoin, thị trường dự đoán, tài sản mã hóa (RWA), hợp đồng vĩnh viễn và AI. Tóm lại, tiền mã hóa có thể không tạo ra một cuộc cách mạng ồn ào, mà thâm nhập một cách tinh tế vào hệ thống tài chính hiện có. Trong nghịch cảnh, sự sáng tạo thực sự có cơ hội nảy nở. Vẫn còn nhiều thứ để xây dựng và nhiều lý do để giữ niềm tin.

marsbit12 phút trước

Giấc mộng không tưởng về tiền điện tử đã vỡ? Ngành công nghiệp đón điểm ngoặt sau khi cơn sốt tan biến

marsbit12 phút trước

Bán Token hay Bán Kết Quả: Những Nghịch Lý Trong Mô Hình Kinh Doanh AI

**AI Mô hình Kinh doanh: Bốn Nghịch lý Cơ cấu** Năm 2026, ngành AI phát triển nhanh về doanh thu và lượt gọi, nhưng các mô hình kinh doanh lại khác biệt. Bài viết phân tích bốn nghịch lý cơ cấu: **1. Nghịch lý Chi phí: Token càng rẻ, hóa đơn càng lớn** Giá token giảm hơn 95%, nhưng tổng lượng sử dụng và hóa đơn tăng vọt do nhu cầu mở rộng và sự xuất hiện của Agent. Mặc dù vậy, lợi nhuận lại chảy về phía nhà cung cấp chip. Một nghịch lý nữa là việc thiếu cải tổ quy trình tổ chức khiến hiệu suất không được cải thiện rõ rệt. **2. Nghịch lý Tầng lớp: Ứng dụng là Vua hay đã Chết?** Trong khi lý thuyết cho rằng giá trị nằm ở tầng ứng dụng, thực tế vốn đang đổ vào mô hình cơ sở và hạ tầng. Lợi nhuận phần lớn thuộc về tầng chip (ví dụ: NVIDIA). Ứng dụng chỉ thành công nếu nó giải quyết các nhiệm vụ cụ thể, tích hợp sâu vào quy trình và trở nên khó thay thế hơn khi mô hình cơ sở phát triển. **3. Nghịch lý Trách nhiệm: Lợi nhuận Phân bổ theo Trách nhiệm** Tốc độ tăng trưởng cao không đảm bảo lợi nhuận. Lợi nhuận biến động tùy thuộc vào mức độ chịu trách nhiệm về kết quả đầu ra. Bán theo token chỉ tranh ngân sách CNTT. Ngược lại, bán theo kết quả (đặc biệt trong các lĩnh vực như pháp lý, y tế) với trách nhiệm rõ ràng có thể tiếp cận ngân sách nhân sự lớn hơn và có biên lợi nhuận cao hơn. **4. Nghịch lý Mã nguồn: Mở chiếm lưu lượng, Đóng giành doanh thu** Mô hình mã nguồn mở chiếm ưu thế về lượng sử dụng, nhưng mô hình độc quyền (như Anthropic) vẫn chiếm phần lớn doanh thu. Doanh nghiệp sẵn sàng trả giá cao hơn cho độ tin cậy, hỗ trợ kỹ thuật và trách nhiệm pháp lý. Mô hình đang trở thành hàng hóa; lợi nhuận dịch chuyển sang hạ tầng (chip) và các dịch vụ giá trị gia tăng (quản lý, dữ liệu). **Xu hướng cốt lõi:** Trí tuệ nhân tạo đang nhanh chóng trở thành hàng hóa, nhưng lợi nhuận chỉ tập trung ở một số ít khâu: hạ tầng tính toán và các giải pháp có khả năng chịu trách nhiệm cao, tích hợp sâu vào quy trình nghiệp vụ thực tế.

marsbit21 phút trước

Bán Token hay Bán Kết Quả: Những Nghịch Lý Trong Mô Hình Kinh Doanh AI

marsbit21 phút trước

Lôi Quân lời 7 tỷ một ngày từ đầu tư IPO vào Trường Tân Công nghệ? Lãnh đạo Xiaomi lên tiếng phản hồi

Ngày 28/7, cổ phiếu CX Technology (Trường Tân Khoa Kỹ) có màn ra mắt ấn tượng trên sàn STAR Market, trở thành cổ phiếu A-share đầu tiên trong lịch sử có khối lượng giao dịch trong ngày vượt 1.400 tỷ nhân dân tệ. Điều này mang lại lợi nhuận kế toán lớn cho các cổ đông chiến lược, bao gồm cả Lei Jun (Lôi Quân), người sáng lập Xiaomi (Tiểu Mỹ). Thông qua một công ty con, Xiaomi đã đầu tư khoảng 158 triệu nhân dân tệ và ước tính thu về lợi nhuận trên giấy khoảng 717 triệu nhân dân tệ chỉ trong ngày đầu niêm yết. Tuy nhiên, trợ lý đặc biệt của Chủ tịch Tập đoàn Xiaomi, Phó tổng giám đốc Bộ phận Chiến lược Thị trường, Xu Jieyun, đã lên tiếng phản hồi trên mạng xã hội rằng đây là hành vi đầu tư của công ty, không thể tính toán đơn giản thành tài sản cá nhân. Ngoài Xiaomi, Alibaba và NIO cũng là những nhà đầu tư chiến lược hưởng lợi lớn từ đợt IPO này. Alibaba ước tính lãi trên giấy hơn 160 tỷ nhân dân tệ, trong khi NIO có tỷ suất lợi nhuận trên 465%. Các ngân hàng quốc doanh và công ty bảo hiểm tham gia đầu tư cũng thu về khoản lãi tiềm năng hàng trăm tỷ nhân dân tệ. Bài báo cũng đề cập rằng Hefei (Hợp Phì), quê hương của CX Technology, đã thu về khoản lãi trên giấy hơn 1.000 tỷ nhân dân tệ từ khoản đầu tư này. Trong khi đó, một số doanh nghiệp như Country Garden (Bích Quế Viên) đã bỏ lỡ cơ hội do bán cổ phần trước khi IPO. Cần lưu ý rằng tất cả các khoản lợi nhuận nêu trên mới chỉ là tính toán trên giấy, vì cổ phiếu phát hành cho các nhà đầu tư chiến lược có thời gian khóa bắt buộc và giá cổ phiếu có thể biến động. Nhân viên của CX Technology chia sẻ rằng họ bình tĩnh trước những bàn tán trên mạng và quan tâm hơn đến các chính sách lương thưởng trong tương lai.

marsbit22 phút trước

Lôi Quân lời 7 tỷ một ngày từ đầu tư IPO vào Trường Tân Công nghệ? Lãnh đạo Xiaomi lên tiếng phản hồi

marsbit22 phút trước

Giao dịch

Giao ngay
活动图片