There’s always a lot going on with the ECC security team, and the last few months have been no exception.
A recent Heartwood security assessment conducted by independent firm Trail of Bits, revealed no major issues in the implementation of NU3 ZIPs. The final report was handed over May 6, and we are making it publicly available now. It is also available from Trail of Bits’ Github.
The ECC team was impressed with ToB’s depth of knowledge, and they were even able to perform some additional general application-security-assurance activities as a value-add, which was greatly appreciated by our ECC team.
Thanks, Trail of Bits, for another successful engagement.
Results and response
We received some advice on fuzzing and we’re running with it. Other work that coincided with the engagement revealed that a different approach was needed, further validating the move to libfuzzer and away from AFL. We learned it was possible to reuse a substantial part of the effort that had already been put in, but I’m planning on writing a more in-depth review of our fuzzing efforts in an upcoming blog post, so I’ll save the details for then.
Taylor Hornby and Daira Hopwood did some further analysis of a test_bitcoin ASAN issue and discovered that the use-after-free was a problem in the scheduler code itself. But it could only manifest if the scheduler service queue for the same scheduler object was entered in two separate threads — a condition that never occurs in any bitcoin-derived coin that we could think of, including zcashd. We are tracking the improvement as ticket #4569.
Should we continue with these assessments?
After this latest assessment, we discussed whether we should continue to fund external security assessments for all ZIPs, regardless of their complexity or maximum risk to the network.
We are very lucky to have some of the top experts in cryptography working here, but after considering the implications of any system where we attempt to categorize which ZIPs should and should not receive external security analysis, and in recognition of the need to expand the Zcash ecosystem in a way that provides assurance to users, it was decided that we would continue our policy of external security assessment of each ZIP. In fact, we plan to expand the scope of security assessments to include at least soft fork consensus changes that have been made between network upgrades.