ShellFuzzer: Grammar-based Fuzzing of Shell Interpreters

Fuente: arXiv
Enregistré dans:
Détails bibliographiques
Auteurs principaux: Felici, Riccardo, Pozzi, Laura, Furia, Carlo A.
Format: Preprint
Publié: 2024
Sujets:
Accès en ligne:
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
_version_ 1866909276160655360
author Felici, Riccardo
Pozzi, Laura
Furia, Carlo A.
author_facet Felici, Riccardo
Pozzi, Laura
Furia, Carlo A.
contents Despite its long-standing popularity and fundamental role in an operating system, the Unix shell has rarely been a subject of academic research. In particular, regardless of the significant progress in compiler testing, there has been hardly any work applying automated testing techniques to detect faults and vulnerabilities in shell interpreters. To address this important shortcoming, we present ShellFuzzer: a technique to test Unix shell interpreters by automatically generating a large number of shell scripts. ShellFuzzer combines grammar-based generation with selected random mutations, so as to produce a diverse range of shell programs with predictable characteristics (e.g., valid according to the language standard, and free from destructive behavior). In our experimental evaluation, ShellFuzzer generated shell programs that exposed 8 previously unknown issues that affected a recent version of the mksh POSIX-compliant shell; the shell maintainers confirmed 7 of these issues, and addressed them in the latest revisions of the shell's open-source implementation.
format Preprint
id arxiv_https___arxiv_org_abs_2408_00433
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle ShellFuzzer: Grammar-based Fuzzing of Shell Interpreters
Felici, Riccardo
Pozzi, Laura
Furia, Carlo A.
Software Engineering
Despite its long-standing popularity and fundamental role in an operating system, the Unix shell has rarely been a subject of academic research. In particular, regardless of the significant progress in compiler testing, there has been hardly any work applying automated testing techniques to detect faults and vulnerabilities in shell interpreters. To address this important shortcoming, we present ShellFuzzer: a technique to test Unix shell interpreters by automatically generating a large number of shell scripts. ShellFuzzer combines grammar-based generation with selected random mutations, so as to produce a diverse range of shell programs with predictable characteristics (e.g., valid according to the language standard, and free from destructive behavior). In our experimental evaluation, ShellFuzzer generated shell programs that exposed 8 previously unknown issues that affected a recent version of the mksh POSIX-compliant shell; the shell maintainers confirmed 7 of these issues, and addressed them in the latest revisions of the shell's open-source implementation.
title ShellFuzzer: Grammar-based Fuzzing of Shell Interpreters
topic Software Engineering
url https://arxiv.org/abs/2408.00433