Detecting Lifecycle-Related Concurrency Bugs in ROS Programs via Coverage-Guided Fuzzing

IF 8 1区 计算机科学 Q1 COMPUTER SCIENCE, THEORY & METHODS
Si-Miao Gao;Pengcheng Wang;Jia-Ju Bai;Jia-Wei Yu;Haizhou Wang
{"title":"Detecting Lifecycle-Related Concurrency Bugs in ROS Programs via Coverage-Guided Fuzzing","authors":"Si-Miao Gao;Pengcheng Wang;Jia-Ju Bai;Jia-Wei Yu;Haizhou Wang","doi":"10.1109/TIFS.2025.3592562","DOIUrl":null,"url":null,"abstract":"Robot Operating System (ROS) is very popular in robotic software development. To ease the process management of ROS programs, ROS provides a special lifecycle mechanism that can conveniently manage the state of each running process, which often involves resource allocation, initialization, and release; and this mechanism has been widely used in real-world ROS programs. However, due to code concurrency of ROS programs, a lifecycle-related function is inevitably concurrently executed with other functions, introducing the security risk of dangerous concurrency bugs involving null-pointer dereference and use after free. Due to the non-determinism of thread scheduling, these concurrency bugs are difficult to find and reproduce. In this paper, we design and implement a new coverage-guided fuzzing framework named <sc>ROCF</small>, which can effectively detect and reproduce lifecycle-related concurrency bugs in ROS programs, with two novel techniques. First, we propose a lifecycle-aware fuzzing approach that uses lifecycle pair sequence as a new coverage metric to effectively describe lifecycle-related thread interleavings, for input-mutation guidance of ROS concurrency fuzzing. Second, we propose a heuristic-based reproducing method that identifies minimal input sequences that can stably and efficiently reproduce the found concurrency bugs, with strategical input pruning and delay injection. We evaluate <sc>ROCF</small> on eight popular robotic programs in ROS2, and it finds 32 new and real concurrency bugs, all of which have been confirmed by ROS developers, and 19 have been assigned CVE IDs.","PeriodicalId":13492,"journal":{"name":"IEEE Transactions on Information Forensics and Security","volume":"20 ","pages":"7940-7953"},"PeriodicalIF":8.0000,"publicationDate":"2025-07-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"IEEE Transactions on Information Forensics and Security","FirstCategoryId":"94","ListUrlMain":"https://ieeexplore.ieee.org/document/11095749/","RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"COMPUTER SCIENCE, THEORY & METHODS","Score":null,"Total":0}
引用次数: 0

Abstract

Robot Operating System (ROS) is very popular in robotic software development. To ease the process management of ROS programs, ROS provides a special lifecycle mechanism that can conveniently manage the state of each running process, which often involves resource allocation, initialization, and release; and this mechanism has been widely used in real-world ROS programs. However, due to code concurrency of ROS programs, a lifecycle-related function is inevitably concurrently executed with other functions, introducing the security risk of dangerous concurrency bugs involving null-pointer dereference and use after free. Due to the non-determinism of thread scheduling, these concurrency bugs are difficult to find and reproduce. In this paper, we design and implement a new coverage-guided fuzzing framework named ROCF, which can effectively detect and reproduce lifecycle-related concurrency bugs in ROS programs, with two novel techniques. First, we propose a lifecycle-aware fuzzing approach that uses lifecycle pair sequence as a new coverage metric to effectively describe lifecycle-related thread interleavings, for input-mutation guidance of ROS concurrency fuzzing. Second, we propose a heuristic-based reproducing method that identifies minimal input sequences that can stably and efficiently reproduce the found concurrency bugs, with strategical input pruning and delay injection. We evaluate ROCF on eight popular robotic programs in ROS2, and it finds 32 new and real concurrency bugs, all of which have been confirmed by ROS developers, and 19 have been assigned CVE IDs.
通过覆盖引导模糊测试检测ROS程序中与生命周期相关的并发错误
机器人操作系统(ROS)在机器人软件开发中非常流行。为了简化ROS程序的进程管理,ROS提供了一种特殊的生命周期机制,可以方便地管理每个运行进程的状态,通常涉及资源分配、初始化和释放;这种机制已经广泛应用于实际的ROS程序中。然而,由于ROS程序的代码并发性,与生命周期相关的函数不可避免地会与其他函数并发执行,从而引入了涉及空指针解引用和释放后使用的危险并发错误的安全风险。由于线程调度的不确定性,这些并发性bug很难发现和重现。在本文中,我们设计并实现了一个新的覆盖引导的模糊测试框架ROCF,它可以有效地检测和重现ROS程序中与生命周期相关的并发错误,采用两种新颖的技术。首先,我们提出了一种生命周期感知模糊方法,该方法使用生命周期对序列作为新的覆盖度量来有效描述与生命周期相关的线程交织,用于ROS并发模糊的输入突变指导。其次,我们提出了一种基于启发式的复制方法,该方法通过策略输入修剪和延迟注入来识别能够稳定有效地复制发现的并发错误的最小输入序列。我们在ROS2中对8个流行的机器人程序进行了ROCF评估,发现了32个新的和真实的并发性错误,所有这些错误都已被ROS开发人员确认,并且已经分配了19个CVE id。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
IEEE Transactions on Information Forensics and Security
IEEE Transactions on Information Forensics and Security 工程技术-工程:电子与电气
CiteScore
14.40
自引率
7.40%
发文量
234
审稿时长
6.5 months
期刊介绍: The IEEE Transactions on Information Forensics and Security covers the sciences, technologies, and applications relating to information forensics, information security, biometrics, surveillance and systems applications that incorporate these features
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信