2026· IEEE Transactions on Information Forensics and Security· Vol 21, pp. 8166-8181· 0 citations· 52 references
Abstract
Concurrency bugs arising from asynchronous-synchronous interactions pose a serious and underexplored threat to OS kernel security. Conventional detection methods often fail to capture the delayed triggering nature of asynchronous tasks and their semantic relationships with synchronous execution contexts, limiting their ability to detect such bugs. We propose two key insights: explicit dependency modeling between execution paths, and contingent triggering of asynchronous tasks during associated synchronous execution. Based on this, we develop ASFuzz, an asynchronous fuzzing system that builds a Shadow Dependency Graph to capture scheduling relations, context-matched resource relations, and operation types. Leveraging the Shadow Dependency Graph, ASFuzz employs a dual-mode architecture: a coverage-guided phase explores synchronous paths and collects legitimate asynchronous-triggering seeds, while a shadow execution phase generates legal syscall programs that naturally schedule related asynchronous tasks during relevant synchronous contexts. An adaptive scheduler coordinates the process, balancing broad state exploration and targeted interleaving stress. We evaluated ASFuzz on Linux kernel versions 6.6 to 6.15. The results demonstrate that ASFuzz successfully uncovered 14 previously unknown concurrency-related bugs, including 10 asynchronous concurrency bugs; 5 of the 14 bugs have been assigned CVE identifiers. These findings validate the effectiveness of our dual insights and highlight ASFuzz’s capability in exposing deep and subtle asynchronous concurrency bugs through dependency-driven and context-sensitive testing.
Asynchronous programming is widely used in modern Java software, including server-side processing, network I/O, reactive streams, task scheduling, and RPC communication. Unlike synchronous executions, resource creation and release in asynchronous programs are distributed across callbacks, Future/Promise chains, threads...
Jinyoung Kim, Jinseok Heo, Dongwook Choi et al.· Proceedings of the ACM on So...· 0 citations
Causal reversibility has emerged as an effective technique for debugging concurrent systems. In particular, rolling back and replaying a concurrent program with causal consistency has been found very helpful in debugging concurrency bugs. In channel-based communication, queue ordering creates dependencies that prevent...
Shunya Oguchi, Shoji Yuen, Nobuko Yoshida et al.· 0 citations
This work introduces an append-only logical event log that abstracts implementation details and enables a Kamp-style translation of Linear Temporal Logic into First-Order Logic, which enables deductive program verifiers to reason about progress via monotonic timestamps without needing native temporal logic support.
Ti Zhou, Zi-Hao Zhang, Omar Chowdhury et al.· Proceedings of the ACM SIGOP...· 1 citation
The results show that explicit dependency, event, and property semantics expose consequential runtime failures across API boundaries and execution modes at release scale.
The Message Passing Interface (MPI) is the standard programming model for high-performance computing, yet nondeterministic scheduling in concurrent executions makes reliability assurance highly challenging. Beyond deadlocks, property-related bugs such as modifying a send buffer before a nonblocking send completes or ac...
Jia-Qiang Yao, Hao-Cheng Geng, Zhen-Bang Chen· Proceedings of the ACM on So...· 0 citations
Existing distributed system fuzzers are limited by coarsegrained, nondeterministic event control and weak support for systematic schedule mutation. They rely on timing perturbations (e.g., injecting delays), which can influence execution but do not precisely realize the fine-grained event orderings that trigger many di...
Cong-Yu Liu, Yao-Xu Song, Pedro Fonseca et al.· Proceedings of the ACM SIGOP...· 0 citations
We use cookies to run the site and, with your consent, for analytics and to show ads.
See our Cookie Policy.