arrow
Return

Enhancing concurrency bug detection in Rust programs through LLVM IR based graph visualization

delete2025-12-08
delete0
delete
OA
AI
Y
Young Lee *
E
Ernesto Aparicio Diaz
J
Jeong Yang
B
Bozhen Liu
DOI:10.1016/j.hcc.2025.100377delete
deleteOriginal
deleteShare
deleteSave
View PDF
Abstract

Abstract

En 中文
Rust has gained widespread acceptance in secure software development, primarily because of its memory safety guarantees achieved at compile-time by its ownership model. However, concurrency-related vulnerabilities persist in Rust programs in the form of use of unsafe code blocks and subtle interactions between safe abstractions. Current static analysis tools mainly target the source code level, thereby ignoring low-level details and not capturing subtle interactions between threads and ownership transfers. To address this issue, our research proposes a novel graph-based visualization approach that integrates Rust’s LLVM Intermediate Representation (IR) with Code Property Graphs (CPGs) and exploits Neo4j’s interactive graph database to yield comprehensive program visualizations. Our approach distinctively extends CPG models by exposing IR-level memory access operations after compiler transformations. This allows for intuitive visualizations of hidden race conditions and thread safety vulnerabilities that remain latent in source code and evade compiler detection. We evaluate our system with Rust code examples with well-documented concurrency vulnerabilities, including real-world Common Vulnerabilities and Exposures (CVEs). Through three case studies, the experimental results demonstrate the effectiveness of our approach in graphing vulnerable thread interaction patterns in diverse unsafe coding paradigms, including ones involving no explicit unsafe blocks. The results validate the efficacy of our system in mapping abstract program semantics to intuitive visual constructs, making complicated concurrency bugs more intuitive for developers to locate and comprehend. Beyond Rust, our work has wider implications for analysis methods in other memory-safe languages and concurrent software systems.
Keywords:
Rust
Concurrency
Memory safety
Static analysis
Visualization
Code Property Graphs
LLVM IR
Graph database
Neo4j
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

H
High-Confidence Computing
IF:
3
Papers:
239
Citations:
407

Organization

T
Texas A&M University-San Antonio
Scholars:
22
Papers: 14
Citations: 0
T
texas a&m university-corpus christi
Scholars:
64
Papers: 37
Citations: 0