Ahead-of-time analysis of shell program effects. Contribute to atlas-brown/sash development by creating an account on GitHub.
1 comment
Abstract: "The Unix shell remains a core system substrate across system administration, automation, and software development. Shell programs, however, are prone to subtle, severe, and often irreversible effects that are difficult to predict. The challenge stems from the shell's unique execution model, its reliance on external computation and state, its highly dynamic expansion semantics, and the complex interactions among these features. This paper presents SaSh, a system that statically analyzes shell programs to identify errors in their execution before they occur. SaSh introduces an optimistic symbolic execution engine for shell programs that limits path explosion and focuses on high-impact failures. It tracks the effects of external commands over a filesystem model, and approximates shell word expansion using a tailored abstract domain. SaSh quickly identifies bugs even in large programs with a risk-directed exploration strategy, steering its analysis to program fragments likely to exhibit dangerous behavior. Applied to 61 buggy programs, including several high-profile disasters, SaSh identifies all but one instance of unwanted behavior with no false positives, going far beyond the current state-of-the-art. Furthermore, SaSh has already yielded 104 new bug reports in 50 open-source projects such as PyTorch, the P4 compiler, Kubernetes, and vLLM, including bugs that can lead to irreversible data loss."
Read the full thread on Hacker News →
Related stories
- Hacker News · 2 points · 12 days ago
- Static Analysis vs. Taint Analysis: Which One Secures Your Python Code?nocomplexity.substack.comHacker News · 2 points · 2 days ago
- Hacker News · 2 points · 6 days ago
- Shell From Scratch by Gary Bernhardtdestroyallsoftware.comLobsters · 14 points · about 9 years ago
- Ars Technica · 0 points · 6 days ago
- Binary Mutation Analysis of Tests Using Reassembleable Disassemblywww-users.cs.umn.eduLobsters · 5 points · over 6 years ago