Fuzzing the PHP Interpreter via Dataflow Fusion

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Jiang, Yuancheng, Zhang, Chuqi, Ruan, Bonan, Liu, Jiahao, Rigger, Manuel, Yap, Roland, Liang, Zhenkai
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866929696554352640
author Jiang, Yuancheng
Zhang, Chuqi
Ruan, Bonan
Liu, Jiahao
Rigger, Manuel
Yap, Roland
Liang, Zhenkai
author_facet Jiang, Yuancheng
Zhang, Chuqi
Ruan, Bonan
Liu, Jiahao
Rigger, Manuel
Yap, Roland
Liang, Zhenkai
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2410_21713
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Fuzzing the PHP Interpreter via Dataflow Fusion
Jiang, Yuancheng
Zhang, Chuqi
Ruan, Bonan
Liu, Jiahao
Rigger, Manuel
Yap, Roland
Liang, Zhenkai
Cryptography and Security
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.
title Fuzzing the PHP Interpreter via Dataflow Fusion
topic Cryptography and Security
url https://arxiv.org/abs/2410.21713