4 ms·
Well, we're talking about programs here. Once you've managed to get an arbitrary, suspicious-but-harmless patch accepted (which, admittedly, is quite the hurdl
by amalcon 18y ago
Well, we're talking about programs here. Once you've managed to get an arbitrary, suspicious-but-harmless patch accepted (which, admittedly, is quite the hurdle), you can switch one garbled section for another. Then, you can check which version of the garbled section is in place using your actual code, and branch based on that. There are of course obfuscated variants of this.
This is similar to that exploit on MD5 signatures of PDFs: trick someone into blessing something with harmless effects, and then change part of it so that the effects become harmful. It's not the most dangerous thing in the world, as we have human gatekeepers to ward against this sort of attack, but it may be something to watch out for.
- SwellJoe 18y agoIt seems far more likely that the human gatekeepers will be more fallible than SHA1 in this context. How many people really understand the deeper intricacies of C, for example? Submit a patch to a Ruby or Python project to "speed up parsing" that includes a hunk of C. If it actually does speed up parsing, it's possible that the patch would be accepted. Maybe there's also a backdoor in the code. It could take months or years to be discovered, if the project isn't heavily populated by paranoid C programmers and isn't being scrutinized by a lot of people (this is why I generally like really popular Open Source software over niche projects...the level of scrutiny by security experts is much higher).