Affiliation:
1. National University of Singapore, Singapore
2. Southern University of Science and Technology, China
Abstract
Automated program repair is an emerging area that attempts to patch software errors and vulnerabilities. In this article, we formulate and study a problem related to automated repair, namely automated patch transplantation. A patch for an error in a donor program is automatically adapted and inserted into a “similar” target program. We observe that despite standard procedures for vulnerability disclosures and publishing of patches, many un-patched occurrences remain in the wild. One of the main reasons is the fact that various implementations of the same functionality may exist and, hence, published patches need to be modified and adapted. In this article, we therefore propose and implement a workflow for transplanting patches. Our approach centers on identifying patch insertion points, as well as namespaces translation across programs via symbolic execution. Experimental results to eliminate five classes of errors highlight our ability to fix recurring vulnerabilities across various programs through transplantation. We report that in 20 of 24 fixing tasks involving eight application subjects mostly involving file processing programs, we successfully transplanted the patch and validated the transplantation through differential testing. Since the publication of patches make an un-patched implementation more vulnerable, our proposed techniques should serve a long-standing need in practice.
Funder
National Research Foundation Singapore
Natural Science Foundation of Guangdong Province
National Natural Science Foundation of China
Publisher
Association for Computing Machinery (ACM)
Cited by
21 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Confix: Combining node-level fix templates and masked language model for automatic program repair;Journal of Systems and Software;2024-10
2. Automating Zero-Shot Patch Porting for Hard Forks;Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis;2024-09-11
3. CodeArt: Better Code Models by Attention Regularization When Symbols Are Lacking;Proceedings of the ACM on Software Engineering;2024-07-12
4. PEM: Representing Binary Program Semantics for Similarity Analysis via a Probabilistic Execution Model;Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2023-11-30
5. Enhancing OSS Patch Backporting with Semantics;Proceedings of the 2023 ACM SIGSAC Conference on Computer and Communications Security;2023-11-15