SQLaser: Detecting DBMS Logic Bugs with Clause-Guided Fuzzing
Database Management Systems (DBMSs) are vital components in modern data-driven systems. Their complexity often leads to logic bugs, which are implementation errors within the DBMSs that can lead to incorrect query results, data exposure, unauthorized access, etc., without necessarily causing visible...
Saved in:
Main Authors | , , , , |
---|---|
Format | Journal Article |
Language | English |
Published |
05.07.2024
|
Subjects | |
Online Access | Get full text |
Cover
Loading…
Summary: | Database Management Systems (DBMSs) are vital components in modern
data-driven systems. Their complexity often leads to logic bugs, which are
implementation errors within the DBMSs that can lead to incorrect query
results, data exposure, unauthorized access, etc., without necessarily causing
visible system failures. Existing detection employs two strategies: rule-based
bug detection and coverage-guided fuzzing. In general, rule specification
itself is challenging; as a result, rule-based detection is limited to specific
and simple rules. Coverage-guided fuzzing blindly explores code paths or
blocks, many of which are unlikely to contain logic bugs; therefore, this
strategy is cost-ineffective. In this paper, we design SQLaser, a
SQL-clause-guided fuzzer for detecting logic bugs in DBMSs. Through a
comprehensive examination of most existing logic bugs across four distinct
DBMSs, excluding those causing system crashes, we have identified 35 logic bug
patterns. These patterns manifest as certain SQL clause combinations that
commonly result in logic bugs, and behind these clause combinations are a
sequence of functions. We therefore model logic bug patterns as error-prone
function chains (ie, sequences of functions). We further develop a directed
fuzzer with a new path-to-path distance-calculation mechanism for effectively
testing these chains and discovering additional logic bugs. This mechanism
enables SQLaser to swiftly navigate to target sites and uncover potential bugs
emerging from these paths. Our evaluation, conducted on SQLite, MySQL,
PostgreSQL, and TiDB, demonstrates that SQLaser significantly accelerates bug
discovery compared to other fuzzing approaches, reducing detection time by
approximately 60%. |
---|---|
DOI: | 10.48550/arxiv.2407.04294 |