  Modern software often struggles with bloat, leading to increased memory
consumption and security vulnerabilities from unused code. In response, various
program debloating techniques have been developed, typically utilizing test
cases that represent functionalities users want to retain. These methods range
from aggressive approaches, which prioritize maximal code reduction but may
overfit to test cases and potentially reintroduce past security issues, to
conservative strategies that aim to preserve all influenced code, often at the
expense of less effective bloat reduction and security improvement. In this
research, we present RLDebloatDU, an innovative debloating technique that
employs 1-DU chain minimality within abstract syntax trees. Our approach
maintains essential program data dependencies, striking a balance between
aggressive code reduction and the preservation of program semantics. We
evaluated RLDebloatDU on ten Linux kernel programs, comparing its performance
with two leading debloating techniques: Chisel, known for its aggressive
debloating approach, and Razor, recognized for its conservative strategy.
RLDebloatDU significantly lowers the incidence of Common Vulnerabilities and
Exposures (CVEs) and improves soundness compared to both, highlighting its
efficacy in reducing security issues without reintroducing resolved security
issues.
