🦥 About Me
Hi, I am Bonan Ruan (阮博男). Currently, I am a second-year Ph.D. candidate (advised by Prof. Zhenkai Liang) in CuriOSity group at NUS. I received my Master of Computing degree from NUS, and B.E. degree in Information Security (advised by Prof. Zhijun Ding) at Tongji University.
My research interests mainly lie in the interactions of system security, program analysis, and AI, with a focus on developing practical and effective solutions to improve the security of various real-world systems. Specifically, my work centers around vulnerabilities, including their discovery, analysis, assessment, and defense, by leveraging and advancing various techniques, including program analysis, fuzzing, and AI.
In addition, I also have a strong interest in interdisciplinary research that bridges technical and societal perspectives, such as AI governance and the social implications of cybersecurity risks and incidents.
Motto: Life is like carrying a heavy burden on a long journey; one must not be hasty.
🔥 News
- Jun 2025: 🎉 I have passed my Qualifying Exam and am now a Ph.D. candidate!
- Apr 2025: 🎉 KernJC is presented in BlackHat Asia 2025!
- Jan 2025: 🎉 Our work on PHP fuzzing (FlowFusion) is accepted in Security'25!
- Oct 2024: 🎉 KernJC wins the Best Practical Paper Award in RAID'24!
- Aug 2024: 🎉 Our vulnerability intelligence dataset (VulZoo) is accepted by ASE'24 Tool Demonstrations!
- Jun 2024: 🎉 Our work on kernel vulnerability reproduction (KernJC) is accepted in RAID'24!
🌋 Selected Publications
[USENIX Security 2025] Fuzzing the PHP Interpreter via Dataflow Fusion
Yuancheng Jiang, Chuqi Zhang, Bonan Ruan, Jiahao Liu, Manuel Rigger, Roland Yap, Zhenkai Liang
34th USENIX Security Symposium
Abstract | Paper | Code | Slides
PHP, a dominant scripting language in web development, powers a vast range of websites, from personal blogs to major platforms. While existing research primarily focuses on PHP application-level security issues like code injection, memory errors within the PHP interpreter have been largely overlooked. These memory errors, prevalent due to the PHP interpreter's extensive C codebase, pose significant risks to the confidentiality, integrity, and availability of PHP servers. This paper introduces FlowFusion, the first automatic fuzzing framework to detect memory errors in the PHP interpreter. FlowFusion leverages dataflow as an efficient representation of test cases maintained by PHP developers, merging two or more test cases to produce fused test cases with more complex code semantics. Moreover, FlowFusion employs strategies such as test mutation, interface fuzzing, and environment crossover to increase bug finding. In our evaluation, FlowFusion found 158 unknown bugs in the PHP interpreter, with 125 fixed and 11 confirmed. Comparing FlowFusion against the official test suite and a naive test concatenation approach, FlowFusion can detect new bugs that these methods miss, while also achieving greater code coverage. FlowFusion also outperformed state-of-the-art fuzzers AFL++ and Polyglot, covering 24% more lines of code after 24 hours of fuzzing. FlowFusion has gained wide recognition among PHP developers and is now integrated into the official PHP toolchain.
[ASE 2024] VulZoo: A Comprehensive Vulnerability Intelligence Dataset
Bonan Ruan, Jiahao Liu, Weibo Zhao, Zhenkai Liang
39th IEEE/ACM International Conference on Automated Software Engineering, Tool Demonstrations
Abstract | Paper | Code | Slides
Software vulnerabilities pose critical security and risk concerns. Many techniques are proposed to assess and prioritize vulnerabilities. To evaluate their performance, researchers often craft datasets from limited data sources, lacking a global overview of broad vulnerability intelligence. The repetitive data preparation process complicates the evaluation of new solutions. To solve this issue, we propose VulZoo, a comprehensive vulnerability intelligence dataset that covers 17 vulnerability data sources. We also construct connections among these sources, enabling more straightforward configuration and adaptation for different tasks. VulZoo provides utility scripts for automatic data synchronization and cleaning, relationship mining, and statistics generation. We make VulZoo publicly available and maintain it with incremental updates. We believe that VulZoo serves as a valuable input to vulnerability assessment and prioritization studies. The video is at https://youtu.be/EvoxQmUAHtw. The dataset is at https://github.com/NUS-Curiosity/VulZoo.
[RAID 2024] KernJC: Automated Vulnerable Environment Generation for Linux Kernel Vulnerabilities
Bonan Ruan, Jiahao Liu, Chuqi Zhang, Zhenkai Liang
27th International Symposium on Research in Attacks, Intrusions and Defenses
🏆 Best Practical Paper Award (1/43)
Abstract | Paper | Code | Slides | News
Linux kernel vulnerability reproduction is a critical task in system security. To reproduce a kernel vulnerability, the vulnerable environment and the Proof of Concept (PoC) program are needed. Most existing research focuses on the generation of PoC, while the construction of environment is overlooked. However, establishing an effective vulnerable environment to trigger a vulnerability is challenging. Firstly, it is hard to guarantee that the selected kernel version for reproduction is vulnerable, as the vulnerability version claims in online databases can occasionally be incorrect. Secondly, many vulnerabilities cannot be reproduced in kernels built with default configurations. Intricate non-default kernel configurations must be set to include and trigger a kernel vulnerability, but less information is available on how to recognize these configurations.
To solve these challenges, we propose a patch-based approach to identify real vulnerable kernel versions and a graph-based approach to identify necessary configs for activating a specific vulnerability. We implement these approaches in a tool, KernJC, automating the generation of vulnerable environments for kernel vulnerabilities. To evaluate the efficacy of KernJC, we build a dataset containing 66 representative real-world vulnerabilities with PoCs from kernel vulnerability research in the past five years. The evaluation shows that KernJC builds vulnerable environments for all these vulnerabilities, 32 (48.5%) of which require non-default configs, and 4 have incorrect version claims in the National Vulnerability Database (NVD). Furthermore, we conduct large-scale spurious version detection on kernel vulnerabilities and identify 128 vulnerabilities that have spurious version claims in NVD. To foster future research, we release KernJC with the dataset in the community.
[TPS-ISA 2021] Security Challenges in the Container Cloud
Yutian Yang, Wenbo Shen, Bonan Ruan, Wenmao Liu, Kui Ren
3rd IEEE International Conference on Trust, Privacy and Security in Intelligent Systems and Applications
In recent years, containerization has become a major trend in the cloud due to its high resource utilization efficiency and convenient DevOps support. However, the complexity of container system also introduces attack surfaces. This paper aims to summarize security challenges in the container cloud. In particular, we first divide the whole container system into different layers according to their functionalities, including the kernel layer, the container layer, and the orchestration layer. We then summarize security-related technologies. After that, we discuss the security challenges for each layer. Finally, we present the current protection status for the container system and highlight future research directions. Our study shows that to improve the container cloud security, we need to design and implement more robust kernel isolation mechanisms, conduct systematic and thorough security analysis on existing container techniques, and develop comprehensive configuration checking tools.
🎮 Book Chapters
Cloud Native Security: Practice and Architecture
Wenmao Liu, Guolong Jiang, Ming Pu, Bonan Ruan, Xiaohu Ye
Beijing: China Machine Press. ISBN: 9787111691839. 2021.
Contributed Chapters: 3, 4, 14, and 16.
🛢️ Patents
CN111835768: A Method, Apparatus, Medium, and Device for Handling Security Incidents
CN112035839: A Method and Apparatus for Detecting Race Condition Vulnerability Exploitation
CN111831275: A Method, Server, Medium, and Device for Orchestrating Micro-Scenario Scripts
CN112153049: An Intrusion Detection Method, Apparatus, Device, and Computer-Readable Medium
CN115103362: A Method, Apparatus, and Device for Restoring 5G Network Element Call Sequences
🎸 Talks and Speeches
[BlackHat Asia 2025] KernJC: Automated Vulnerable Environment Generation for Linux Kernel Vulnerabilities
Linux kernel vulnerability reproduction is a critical task in system security. To reproduce a kernel vulnerability, the vulnerable environment and the Proof of Concept (PoC) program are needed. Most existing research focuses on the generation of PoC, while the construction of environment is overlooked. However, establishing an effective vulnerable environment to trigger a vulnerability is challenging. Firstly, it is hard to guarantee that the selected kernel version for reproduction is vulnerable, as the vulnerability version claims in online databases can occasionally be incorrect. Secondly, many vulnerabilities cannot be reproduced in kernels built with default configurations. Intricate non-default kernel configurations must be set to include and trigger a kernel vulnerability, but less information is available on how to recognize these configurations.
To solve these challenges, we propose a patch-based approach to identify real vulnerable kernel versions and a graph-based approach to identify necessary configs for activating a specific vulnerability. We implement these approaches in a tool, KernJC, automating the generation of vulnerable environments for kernel vulnerabilities. To evaluate the efficacy of KernJC, we build a dataset containing 66 representative real-world vulnerabilities with PoCs from kernel vulnerability research in the past five years. The evaluation shows that KernJC builds vulnerable environments for all these vulnerabilities, 32 (48.5%) of which require non-default configs, and 4 have incorrect version claims in the National Vulnerability Database (NVD). Furthermore, we conduct large-scale spurious version detection on kernel vulnerabilities and identify 128 vulnerabilities that have spurious version claims in NVD. To foster future research, we release KernJC with the dataset in the community.
[KCon 2022] Dilemma: runC’s Achilles’ Heel
This talk explores the exploitation of vulnerabilities in container runtimes, focusing on two critical issues: CVE-2019-5736 in runC and CVE-2022-0847 (Dirty Pipe) in the Linux kernel. These vulnerabilities highlight the risks inherent in containerized environments, such as privilege escalation and host compromise, which pose significant threats to modern infrastructure security. The presentation begins with an analysis of Dirty Pipe, a Linux kernel vulnerability that allows unprivileged processes to overwrite data in read-only files, enabling code injection into privileged processes. We demonstrate how this exploit facilitates container escape when combined with the runC vulnerability, which allows attackers to overwrite the runC binary on the host system, achieving root access. Through live demonstrations, we showcase advanced exploitation techniques, including ELF manipulation, memory injection via Dirty Pipe, and stealthy post-exploitation persistence. We also examine practical mitigations, such as hardening runC and kernel-level defenses, to secure containerized environments. This comprehensive analysis provides valuable insights for security researchers and practitioners into detecting, mitigating, and understanding vulnerabilities in container infrastructures.
[OID Asia 2021] Metarget: Auto-construction of Vulnerable Cloud Native Infrastructure
This talk introduces Metarget, an innovative framework designed for the automatic construction of vulnerable cloud-native environments. By facilitating the deployment of multi-layered, vulnerable infrastructures, Metarget enables researchers and ethical hackers to efficiently simulate complex attack scenarios ranging from container exploitation to cluster-level persistence. The presentation highlights offensive methodologies in cloud-native security, including real-world case studies such as post-penetration attacks against Kubernetes clusters. Using Metarget, we explore vulnerabilities like CVE-2020-15257 and CVE-2020-8559, demonstrating how attackers can achieve lateral movement and full cluster compromise. Additionally, we showcase k0otkit, a post-penetration persistence technique for Kubernetes, emphasizing its role in automating and advancing offensive security research. Through a detailed analysis of offensive strategies, this talk illustrates how tools like Metarget accelerate defensive innovations, paving the way for more robust cloud-native security practices.
[CIS 2020] k0otkit: A Universal Manipulation Technique in Post-Penetration against Kubernetes
This presentation introduces k0otkit, a universal post-penetration control technique for Kubernetes (K8s) clusters. By leveraging Kubernetes-native features such as DaemonSets, Secrets, and container injection, k0otkit provides attackers with rapid, covert, and persistent control over large-scale clusters. This talk explores the evolution of k0otkit through its various iterations, highlighting advancements in stealth, persistence, and efficiency, including the adoption of fileless attack techniques and encrypted communication. The discussion outlines a typical Kubernetes penetration process, emphasizing container escape, privilege escalation, and lateral movement, leading to full cluster control. Through live demonstrations, we showcase how k0otkit exploits Kubernetes vulnerabilities, automates reverse shell deployment, and achieves seamless cluster-wide compromise. Finally, the talk concludes with key defensive strategies to mitigate these risks, including implementing Pod security policies, detecting anomalous container behavior, and protecting against fileless attacks. This comprehensive analysis offers valuable insights for both offensive and defensive Kubernetes security research.
🧲 Teaching Activities
[2025 Fall] CS5231 System Security with Zhenkai Liang
[2025 Spring] CS5321 Network Security with Zhenkai Liang
[2024 Fall] CS5231 System Security with Zhenkai Liang
🎯 Vulnerabilities & Bugs Discovered
CVE-2024-50260 - sock_map: fix a NULL pointer dereference in sock_map_link_update_prog()