Return
Automated Patch Transplantation
DOI:10.1145/3412376.png)
Abstract
En 中文
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 tut-patched implementation more vulnerable, our proposed techniques should serve a long-standing need in practice.
Keywords:
Program repair
code transplantation
patch transplantation
dynamic program analysis
AI Summary
Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.
Journal
A
IF:
6.2
Papers:
1.2K
Citations:
3.4K
Organization
Cited Papers
Quinoline and phenanthroline preparation starting from glycerol via improved microwave-assisted modified Skraup reaction
RSC Adv.
IF0

