• 0 Posts
  • 1 Comment
Joined 4 months ago
cake
Cake day: February 17th, 2025

help-circle
  • There was this recent attack to XZ utils, which shows that more attention is needed on the code being merged and compiled.

    XZ was made possible largely because there was unaudited binary data. One part as test data in the repo, and the other part within the pre-built releases. Bootstrapping everything from source would have required that these binaries had an auditable source, thus allowing public eyes to review the code and likely stopping the attack. Granted, reproducibility almost certainly would have too, unless the malware wasn’t directly present in the code.

    Pulled from here:

    Every unauditable binary also leaves us vulnerable to compiler backdoors as described by Ken Thompson in the 1984 paper Reflections on Trusting Trust and beautifully explained by Carl Dong in his Bitcoin Build System Security talk.

    It is therefore equally important that we continue towards our final goal: A Full Source bootstrap; removing all unauditable binary seeds.

    Sure you might have the code that was input into GCC to create the binary, and sure the code can be absolutely safe, and you can even compile it yourself to see that you arrive at the same bit-for-bit binary as the official release binary. But was GCC safe? Did some other compilation dependency infect the compiled binary? Bootstrapping from an auditable seed can answer this question.