scholarly journals Beyond Tests

2021 ◽  
Vol 30 (2) ◽  
pp. 1-27
Author(s):  
Xiang Gao ◽  
Bo Wang ◽  
Gregory J. Duck ◽  
Ruyi Ji ◽  
Yingfei Xiong ◽  
...  

Automated program repair is an emerging technology that seeks to automatically rectify program errors and vulnerabilities. Repair techniques are driven by a correctness criterion that is often in the form of a test suite. Such test-based repair may produce overfitting patches, where the patches produced fail on tests outside the test suite driving the repair. In this work, we present a repair method that fixes program vulnerabilities without the need for a voluminous test suite. Given a vulnerability as evidenced by an exploit, the technique extracts a constraint representing the vulnerability with the help of sanitizers. The extracted constraint serves as a proof obligation that our synthesized patch should satisfy. The proof obligation is met by propagating the extracted constraint to locations that are deemed to be “suitable” fix locations. An implementation of our approach (E xtract F ix ) on top of the KLEE symbolic execution engine shows its efficacy in fixing a wide range of vulnerabilities taken from the ManyBugs benchmark, real-world CVEs and Google’s OSS-Fuzz framework. We believe that our work presents a way forward for the overfitting problem in program repair by generalizing observable hazards/vulnerabilities (as constraint) from a single failing test or exploit.

2017 ◽  
Vol 23 (5) ◽  
pp. 2948-2979 ◽  
Author(s):  
Jooyong Yi ◽  
Shin Hwei Tan ◽  
Sergey Mechtaev ◽  
Marcel Böhme ◽  
Abhik Roychoudhury

2017 ◽  
Vol 23 (5) ◽  
pp. 2901-2947 ◽  
Author(s):  
Manish Motwani ◽  
Sandhya Sankaranarayanan ◽  
René Just ◽  
Yuriy Brun

Sign in / Sign up

Export Citation Format

Share Document