🦥 About Me

Hi, I am Bonan Ruan (阮博男). Currently, I am a second-year Ph.D. student (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 the Tongji University.

My research interest lies in the interactions of system security, program analysis, and AI for security. Currently I focus on vulnerability-related topics.

Motto: Life is like carrying a heavy burden on a long journey; one must not be hasty.

🌋 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

2021 Third IEEE International Conference on Trust, Privacy and Security in Intelligent Systems and Applications

Abstract | Paper

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.

🎮 Books

云原生安全:攻防实践与体系构建

刘文懋,江国龙,浦明,阮博男,叶晓虎

ISBN: 9787111691839 机械工业出版社 2021

Douban | Code

🛢️ Patents

CN111835768A 一种用于处理安全事件的方法、装置、介质及计算机设备

CN112035839A 一种竞态条件漏洞利用的检测方法及装置

CN111831275A 一种编排微场景剧本的方法、服务器、介质及计算机设备

CN112153049A 一种入侵检测方法及装置

🎸 Talks and Demos

[BlackHat Asia 2025] KernJC: Automated Vulnerable Environment Generation for Linux Kernel Vulnerabilities

Abstract | Slides | WP | Code

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黑客大会] 进退维谷:runC的阿克琉斯之踵

Abstract | Slides | WP

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

Abstract | Slides | WP | Code

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:针对K8s集群的通用后渗透控制技术

Abstract | Slides | WP | Code

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.

🗺️ Education

[Jan 2024 ~ present] Ph.D. in Computer Science, National University of Singapore

[Aug 2022 ~ Jan 2024] Master of Computing, National University of Singapore

[Sep 2014 ~ Jun 2019] Bachelor in Information Security, Tongji University

🚂 Work Experience

[Jul 2019 ~ Jul 2022] Security Researcher, XingYun Lab, NSFOCUS

[Mar 2019 ~ Jun 2019] (Intern) Security Researcher, XingYun Lab, NSFOCUS

[Jul 2017 ~ Aug 2017] (Intern) Software Development Engineer, NFV Lab, HUAWEI

🧲 Teaching Activities

[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()

🛞 Awards

Best Practical Paper Award, RAID 2024

NUS Research Scholarship

Student Scholarship, BlackHat Asia 2023

2017年度网络安全专项基金网络安全奖学金,中国互联网发展基金会