Abstract:Software vulnerabilities are known as a special kind of defects that threat the completeness, security and reliability of computer systems. To date, developers deal with software vulnerabilities in a manual way, which is a tedious, time-consuming, error-prone, and challenging task. To boost the automation of solving vulnerabilities, automated vulnerability repair has been becoming a popular research topic in academia. The automated vulnerability repair work consists of three main process: vulnerability localization, patch generation, and patch validation, which aims at releasing developers from the huge burden of addressing vulnerabilities. To this end, researchers have explored various research work on vulnerability repair. To build a comprehensive knowledge on vulneraibility repair for practitioners, we conducted a systematic survey to illustrate the theory, design and implementation of different vulnerability repair approaches. Eventually, this survey makes the following contributions: (1) vulnerability repair taxonomy of specific and general vulnerability types; (2) classification and summarization of different repair approaches based on the technical principles; discussions on (3) challenges of vulnerability repair; (4) future research topics of vulnerability repair.