專案簡介
The target of this audit is the private code repository of zcash-wallet-wasm of NoirWallet. Please refer to the report for the detailed audit scope.
Our audit methodology employs automated vulnerability scans, manual verification, and business logic analysis to uncover potential security issues coupled with gas and code quality optimization recommendations.
In summary, we have found that the codebase contains 4 high-risk issues that require prompt attention. In addition, we have identified other non-critical issues as well as recommendations and notes that should be considered. The zcash-wallet-wasm team has addressed these issues promptly. It is important to note that our audit covers only the final reported versions of the codebase. Any subsequent updates would require a re-evaluation.
關鍵發現
我們在該智能合約中共發現 12 個潛在問題,另有 5 條建議與 10 條說明,明細如下:
| ID | Severity | Description | Status |
|---|---|---|---|
| 1 | High | Data leakage to the remote proving server | Fixed |
| 2 | High | Sensitive data exposure through console logs | Fixed |
| 3 | High | Lack of Sapling receiver in returned unified address | Fixed |
| 4 | High | Incorrect implementation of function utxo_query_height() |
Fixed |
| 5 | Medium | Incorrect transparent address resolution | Fixed |
| 6 | Medium | Lack of restriction on new mnemonic length | Fixed |
| 7 | Medium | Incorrect check in function get_wallet_summary() |
Fixed |
| 8 | Low | Lack of support for BIP39 passphrases | Fixed |
| 9 | Low | Potential panics | Fixed |
| 10 | Low | Lack of handling for broadcast failures | Confirmed |
| 11 | Low | Lack of zeroization for sensitive seed value |
Fixed |
| 12 | Low | Incorrect balance display during wallet recovery | Confirmed |
| 13 | - | Revise the incorrect annotation | Fixed |
| 14 | - | Add a check in function pczt_sign_inner() |
Fixed |
| 15 | - | Unify implementation between payment request and PCZT creation | Fixed |
| 16 | - | Unify the confirmation policy | Fixed |
| 17 | - | Report pending and total balances | Fixed |
| 18 | - | Security assumptions on the host application | - |
| 19 | - | Trust assumptions on the librustzcash library | - |
| 20 | - | Non-standard encoding in transparent message signing | - |
| 21 | - | Transfers to TEX addresses are not supported | - |
| 22 | - | Address linkage during shielding | - |
| 23 | - | Constraints of PCZT implementation | - |
| 24 | - | Worker-based execution for multithreaded Wasm | - |
| 25 | - | Library upgrades and integration are out of scope | - |
| 26 | - | Transparent receive transactions are omitted from history | - |
| 27 | - | Function get_next_shielded_address() is limited to shielded address rotation |
- |
更多細節見審計報告。