A High-Acceptance-Rate VxWorks Fuzzing Framework Based on Protocol Feature Fusion and Memory Extraction
Abstract
1. Introduction
- Inherent Specificity of TCP. As a connection-oriented transport-layer protocol, TCP fundamentally differs from application-layer protocols in implementation. Existing network protocol fuzzing tools typically overlook critical TCP aspects, including connection states, sequence number synchronization, retransmission mechanisms, and complex option fields. These limitations render most traditional protocol test case generation methods inapplicable to TCP directly.
- The black-box testing process lacks effective guidance. In network communication-based fuzz testing, the closed-source nature of VxWorks results in a lack of visibility during the fuzzing process. Consequently, it is almost impossible to obtain the system’s internal execution information to guide the fuzz testing process (as is performed in most typical black-box fuzzers). Therefore, there is a need for a lightweight solution in the black-box environment to acquire feedback information of VxWorks during fuzz testing. This information can then serve as a new coverage metric to guide and optimize subsequent testing.
- A novel fuzzing framework. We propose a network communication-based fuzzing framework, vxTcpFuzzer, specifically designed for TCP in VxWorks systems under black-box environments. vxTcpFuzzer can bypass the encapsulation logic of the local kernel protocol stack, construct TCP packets with arbitrary data, and perform fuzzing.
- A new method. We adopt a new method to implement an automated, multi-state coverage TCP fuzzing framework, vxTcpFuzzer. vxTcpFuzzer includes a test case generation method that integrates protocol features, a feedback guidance method that extracts memory data, and a dual anomaly detection mechanism that detects the state of the test system from multiple aspects.
- Implementation and vulnerability discovery. We implement the designed fuzzing framework vxTcpFuzzer and evaluate it on three types of VxWorks devices. During testing, six crashes were successfully triggered, verifying the effectiveness of the proposed framework. Meanwhile, a comparison with three advanced fuzzing schemes was conducted, revealing their inapplicability.
2. Background and Motivation
2.1. Overview of the TCP Protocol
2.2. Network Protocol Fuzzing Method
2.3. The Task Characteristics of VxWorks
2.4. VxWorks Debugging Mechanism
3. Design and Implementation
3.1. Framework
3.2. Protocol Feature Fusion Fuzzer
3.3. Memory Feedback Utilization Method
3.3.1. Memory Data Extraction Method
Algorithm 1: Task memory data extraction algorithm |
Input: task name, taskName Output: 100 bytes of memory data, memData 1: taskID ← taskNameToId(taskName); 2: init_pc ← taskRegsGet(taskID); 3: while True do 4: cur_pc ← taskRegsGet(taskID); 5: if cur_pc is not equal to init_pc then 6: memData ← memcpy(cur_pc, 100); 7: memfwirte(memData, memfile); 8: else 9: taskDelay(); 10: end if 11: end while |
3.3.2. Heuristic Havoc Mutation
Algorithm 2: Heuristic Havoc mutation algorithm |
Input: Seed queue, S Output: New test case set, P 1: L ← excfield_position(S); 2: Map the field name to the corresponding list L to the Field_lists 3: Filter out the empty list in the Field_lists to get Noempty_fields 4: Extract all field names from the Noempty_fields to Fields 5: for each combination size comsize in between range 2 and len(Fields) do 6: for each field combination fieldsubset in all subsequences of length comsize in Fields do 7: Get the list of exceptional values for each field in the current fieldsubset to Value_lists; 8: for each exceptional value combination values in Value_lists Cartesian product do 9: C ← build_newcase(fieldsubset, values); 10: add C to set P 11: end for 12: end for 13: end for 14: return P |
Algorithm 3: Abnormal field identification and extraction algorithm |
Input: Seed queue, S Output: Lists of abnormal value, L 1: for each seed in S do 2: for each field in seed do 3: value ← seed[field]; 4: default ← get_default(field); 5: if value != default then 6: add value to L[field] 7: break 8: end if 9: end for 10: end for 11: return L |
3.4. Dual Anomaly Detector
4. Implementation and Evaluation
4.1. Experimental Setup
4.2. Runtime Testing
4.2.1. Memory Data Changes
4.2.2. Vulnerability Identification
4.2.3. Performance of the Dual Anomaly Detector
4.3. Comparison with Benchmark Tools
- Boofuzz-chksum: Boofuzz [19] is an excellent network protocol fuzzer, an improved version based on the Sulley framework. It supports manually defined protocol tree structures as input for continuous test generation. Therefore, we can utilize its protocol definition method to implement the definition of the TCP protocol, thereby generating test cases for fuzz testing targeting the TCP. However, when generating test cases, since Boofuzz does not provide a TCP checksum algorithm, all the test cases it generates will be discarded during the initial checksum verification phase, failing to achieve the actual testing effect. To enable the test cases generated by Boofuzz to pass the initial checksum phase, we added a TCP checksum algorithm module to the original Boofuzz, which is denoted as Boofuzz-chksum.
- Netzob-generation: Netzob [37] is a protocol reverse analysis tool developed by Bossert et al. It can infer message formats and state machines through passive/active methods and generate test cases based on the inferred protocol model for fuzzing. Netzob-generation uses an active definition-based message format generation algorithm for fuzzing. Similar to Boofuzz, we can use the method of actively defining protocol messages provided by Netzob to implement the format definition of the TCP protocol, thus generating TCP-compliant test cases for fuzz testing targeting TCP.
- Netzob-mutation: Netzob-mutation is a TCP fuzzing scheme we implemented using another method provided in Netzob, which passively infers message formats and state machines. First, Netzob is used to reversely infer message formats and state machines using captured TCP traffic. Then, mutation algorithms are applied to mutate the inferred results, thereby generating TCP test cases for fuzzing.
4.3.1. Test Case Acceptance Rate
4.3.2. Test System Abnormal Rate
4.3.3. Found Bugs
- Test case scale: All tools tested 80,000 cases on VxWorks 6.6 and 100,000 cases each on VxWorks 6.9 and VxWorks 6.9_z7 (consistent with vxTcpFuzzer);
- Anomaly detection mechanism: The benchmark tools uniformly adopted the dual anomaly detection mechanism of vxTcpFuzzer (WDB detection + heartbeat detection);
- Testing targets: All targeted the TCP services exposed by the three types of VxWorks devices.
4.4. Evaluation of Memory Feedback Utilization
5. Discussion
6. Conclusions
Author Contributions
Funding
Data Availability Statement
Conflicts of Interest
References
- Kostas, K.; Just, M.; Lones, M.A. IoTDevID: A behavior-based device identification method for the IoT. IEEE Internet Things J. 2022, 9, 23741–23749. [Google Scholar] [CrossRef]
- Chui, M.; Collins, M.; Patel, M. The Internet of Things: Catching up to an Accelerating Opportunity; McKinsey & Company: New York, NY, USA, 2021. [Google Scholar]
- Affinito, A.; Zinno, S.; Stanco, G.; Botta, A.; Ventre, G. The evolution of Mirai botnet scans over a six-year period. J. Inf. Secur. Appl. 2023, 79, 103629. [Google Scholar] [CrossRef]
- Micro, T. Smart Yet Flawed: IoT Device Vulnerabilities Explained. Secur. News, Trend Micro Inc., Irving, TX, USA, Tech. Rep 2020. Available online: https://www.trendmicro.com/vinfo/hk-en/security/news/internet-of-things/smart-yet-flawed-iot-device-vulnerabilities-explained (accessed on 8 August 2025).
- Nordrum, A. Popular internet of things forecast of 50 billion devices by 2020 is outdated. IEEE Spectr. 2016, 18, 223–236. [Google Scholar]
- Travis, F.J.M. Secure Interface Improvements Internet of Things (IoT) Vendors Need to Protect Smart Home IoT Devices from Cyber Attacks. Ph.D. Thesis, University of the Cumberlands, Williamsburg, KY, USA, 2023. [Google Scholar]
- More, S.; Mukhede, S.; Deshmukh, M.M. Comparative Analysis of Embedded Operating Systems: A Criteria-Based Evaluation. Int. J. Eng. Technol. Manag. Sci. 2024, 1, 34–41. [Google Scholar]
- Formaggio, Y. Attacking VxWorks: From Stone Age to Interstellar. 44CON Cyber Security 2015. Available online: https://www.youtube.com/watch?v=T6N-87GlmsI (accessed on 8 August 2025).
- Bishop, S.; Fairbairn, M.; Norrish, M.; Sewell, P.; Smith, M.; Wansbrough, K. Rigorous specification and conformance testing techniques for network protocols, as applied to TCP, UDP, and Sockets. In Proceedings of the 2005 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications, Philadelphia, PA, USA, 22–26 August 2005; pp. 265–276. [Google Scholar]
- Edwards, A.; Muir, S. Experiences implementing a high performance TCP in user-space. ACM SIGCOMM Comput. Commun. Rev. 1995, 25, 196–205. [Google Scholar] [CrossRef]
- Zou, Y.-H.; Bai, J.-J.; Zhou, J.; Tan, J.; Qin, C.; Hu, S.-M. {TCP-Fuzz}: Detecting memory and semantic bugs in {TCP} stacks with fuzzing. In Proceedings of the 2021 USENIX Annual Technical Conference (USENIX ATC 21), Santa Clara, CA, USA, 14–16 July 2021; pp. 489–502. [Google Scholar]
- Lockefeer, L.; Williams, D.M.; Fokkink, W. Formal specification and verification of TCP extended with the Window Scale Option. Sci. Comput. Program. 2016, 118, 3–23. [Google Scholar] [CrossRef]
- Chen, Q.A.; Qian, Z.; Jia, Y.J.; Shao, Y.; Mao, Z.M. Static detection of packet injection vulnerabilities: A case for identifying attacker-controlled implicit information leaks. In Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security, Denver, CO, USA, 12–16 October 2015; pp. 388–400. [Google Scholar]
- Kothari, N.; Mahajan, R.; Millstein, T.; Govindan, R.; Musuvathi, M. Finding protocol manipulation attacks. In Proceedings of the ACM SIGCOMM 2011 Conference, Toronto, ON, Canada, 15–19 August 2011; pp. 26–37. [Google Scholar]
- Oehlert, P. Violating assumptions with fuzzing. IEEE Secur. Priv. 2005, 3, 58–62. [Google Scholar] [CrossRef]
- Miller, B.P.; Fredriksen, L.; So, B. An empirical study of the reliability of UNIX utilities. Commun. ACM 1990, 33, 32–44. [Google Scholar] [CrossRef]
- Muench, M.; Stijohann, J.; Kargl, F.; Francillon, A.; Balzarotti, D. What You Corrupt Is Not What You Crash: Challenges in Fuzzing Embedded Devices. In Proceedings of the NDSS, Montreal, QC, Canada, 3–8 December 2018. [Google Scholar]
- Zheng, Y.; Davanian, A.; Yin, H.; Song, C.; Zhu, H.; Sun, L. {FIRM-AFL}:{High-Throughput} greybox fuzzing of {IoT} firmware via augmented process emulation. In Proceedings of the 28th USENIX Security Symposium (USENIX Security 19), Santa Clara, CA, USA, 14–16 August 2019; pp. 1099–1114. [Google Scholar]
- JTPEREYDA. Boofuzz: Network Protocol Fuzzing for Humans. Available online: https://github.com/jtpereyda/boofuzz (accessed on 28 June 2025).
- Luo, Z.; Zuo, F.; Jiang, Y.; Gao, J.; Jiao, X.; Sun, J. Polar: Function code aware fuzz testing of ics protocol. ACM Trans. Embed. Comput. Syst. (TECS) 2019, 18, 1–22. [Google Scholar] [CrossRef]
- Pham, V.-T.; Böhme, M.; Roychoudhury, A. Aflnet: A greybox fuzzer for network protocols. In Proceedings of the 2020 IEEE 13th International Conference on Software Testing, Validation and Verification (ICST), Porto, Portugal, 24–28 October 2020; pp. 460–465. [Google Scholar]
- Chen, J.; Diao, W.; Zhao, Q.; Zuo, C.; Lin, Z.; Wang, X.; Lau, W.C.; Sun, M.; Yang, R.; Zhang, K. IoTFuzzer: Discovering memory corruptions in IoT through app-based fuzzing. In Proceedings of the NDSS, Montreal, QC, Canada, 3–8 December 2018; pp. 1–15. [Google Scholar]
- Luo, Z.; Yu, J.; Zuo, F.; Liu, J.; Jiang, Y.; Chen, T.; Roychoudhury, A.; Sun, J. Bleem: Packet sequence oriented fuzzing for protocol implementations. In Proceedings of the 32nd USENIX Security Symposium (USENIX Security 23), Anaheim, CA, USA, 9–11 August 2023; pp. 4481–4498. [Google Scholar]
- Eddington, M. Peach Fuzzing Platform. Available online: https://gitlab.com/gitlab-org/securi-ty-products/protocol-fuzzer-ce (accessed on 28 June 2025).
- Shu, Z.; Yan, G. IoTInfer: Automated Blackbox Fuzz Testing of IoT Network Protocols Guided by Finite State Machine Inference. IEEE Internet Things J. 2022, 9, 22737–22751. [Google Scholar] [CrossRef]
- Yu, Z.; Wang, H.; Wang, D.; Li, Z.; Song, H. CGFuzzer: A Fuzzing Approach Based on Coverage-Guided Generative Adversarial Networks for Industrial IoT Protocols. IEEE Internet Things J. 2022, 9, 21607–21619. [Google Scholar] [CrossRef]
- Luo, Z.; Yu, J.; Du, Q.; Zhao, Y.; Wu, F.; Shi, H.; Chang, W.; Jiang, Y. Parallel Fuzzing of IoT Messaging Protocols Through Collaborative Packet Generation. IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst. 2024, 43, 3431–3442. [Google Scholar] [CrossRef]
- RFC 793: TCP (Transmission Control Protocol). Available online: https://www.rfc-editor.org/rfc/rfc793 (accessed on 28 June 2025).
- Liu, P.; Lu, J.; Huang, S.; Lu, P.; Wang, J. Real-time performance analysis of network buffer under multi-core scheduling platform. Multimed. Tools Appl. 2023, 82, 34653–34677. [Google Scholar] [CrossRef]
- Feng, X.; Sun, R.; Zhu, X.; Xue, M.; Wen, S.; Liu, D.; Nepal, S.; Xiang, Y. Snipuzz: Black-box fuzzing of iot firmware via message snippet inference. In Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security, New York, NY, USA, 15–19 November 2021; pp. 337–350. [Google Scholar]
- Li, R. Computer embedded automatic test system based on VxWorks. Int. J. Embed. Syst. 2022, 15, 183–192. [Google Scholar] [CrossRef]
- Zheng, W.; Zhou, Y.; Wang, B. Design and Implementation of VxWorks System Vulnerability Mining Framework Based on Dynamic Symbol Execution. In Proceedings of the 9th International Conference on Computer Engineering and Networks, Hefei, China, 17–19 October 2020; pp. 801–811. [Google Scholar]
- RFC 1323: TCP Extensions for High Performance. Available online: https://www.rfc-editor.org/rfc/rfc1323 (accessed on 28 June 2025).
- RFC 5925: The TCP Authentication Option. Available online: https://www.rfc-editor.org/rfc/rfc5925 (accessed on 28 June 2025).
- 11 Zero Day Vulnerabilities Impacting Billions of Mission-Critical Devices. Available online: https://www.armis.com/research/urgent-11 (accessed on 28 June 2025).
- Zynq-7000 SoC Data Sheet: Overview. Available online: https://docs.amd.com/v/u/en-US/ds190-Zynq-7000-Overview (accessed on 28 June 2025).
- Bossert, G.; Guihéry, F.; Hiet, G. Netzob: Protocol Reverse Engineering, Modeling and Fuzzing. Available online: https://github.com/netzob/netzob (accessed on 28 June 2025).
- Yan, H.; Li, X.; Dai, R.; Li, H.; Zhao, X.; Li, F. MARS: Automated protocol analysis framework for internet of things. IEEE Internet Things J. 2022, 9, 18333–18345. [Google Scholar] [CrossRef]
- Zhao, S.; Yang, S.; Wang, Z.; Liu, Y.; Zhu, H.; Sun, L. Crafting Binary Protocol Reversing via Deep Learning With Knowledge-Driven Augmentation. IEEE/ACM Trans. Netw. 2024, 32, 5399–5414. [Google Scholar] [CrossRef]
TCP Server States | Conversion Conditions | Response Packets |
---|---|---|
LISTEN | - | - |
SYN_RCVD | SYN | {SYN, ACK} |
ESTABLISHED | SYN, ACK | - |
CLOSE_WAIT | SYN, ACK, FIN | ACK |
LAST_ACK | SYN, ACK, FIN | FIN |
CLOSED | SYN, ACK, FIN, ACK | - |
TCP Fields | Formation Strategy |
---|---|
Source port | Random acquisition |
Sequence, Acknowledgment number | Timing dependency calculation |
Data offset, Reserved, Flags, Window size, Urgent pointer | Progressive assignment |
Options | Two-layer composite mutation |
Test Devices | Number of Memory Changes | ATCAR | ATSAR | Number of Crashes | Vulnerability Type |
---|---|---|---|---|---|
VxWorks6.6 | 1661 | 44.94% | 23.79% | 4 | Integer overflow, DoS |
VxWorks6.9 | 3629 | 53.93% | 31.83% | 1 | DoS |
VxWorks6.9_z7 | 2427 | 54.92% | 34.70% | 1 | DoS |
Test Devices | WDB Detection Mechanism | Client Heartbeat Detection Mechanism |
---|---|---|
VxWorks6.6 | 3 | 1 |
VxWorks6.9 | 1 | 0 |
VxWorks6.9_z7 | 1 | 0 |
Number of Test Cases | vxTcpFuzzer TSAR | Boofuzz-Chksum TSAR | Netzob-Generation TSAR | Netzob-Mutation TSAR |
---|---|---|---|---|
5000 | 33.9200% | 0.6000% | 3.2600% | 11.8800% |
10,000 | 43.3400% | 0.6000% | 3.1400% | 12.1400% |
15,000 | 28.9000% | 0.6133% | 3.2533% | 12.4200% |
20,000 | 38.3000% | 0.6150% | 3.1900% | 12.3750% |
25,000 | 30.6400% | 0.6080% | 3.1720% | 12.4200% |
30,000 | 25.5333% | 0.6100% | 3.1767% | 10.3500% |
35,000 | 24.9228% | 0.6142% | 3.1485% | 8.8714% |
40,000 | 27.4575% | 0.6075% | 3.1300% | 7.7625% |
45,000 | 24.4066% | 0.6089% | 3.1489% | 6.9000% |
50,000 | 21.9660% | 0.6120% | 3.1640% | 6.2100% |
55,000 | 20.2727% | 0.6090% | 3.1581% | 5.6454% |
60,000 | 19.1033% | 0.6100% | 3.1617% | 5.1750% |
65,000 | 18.0384% | 0.6123% | 3.1569% | 4.7769% |
70,000 | 17.0157% | 0.6114% | 3.1785% | 4.4357% |
75,000 | 15.8813% | 0.6066% | 3.1880% | 4.1400% |
80,000 | 14.8887% | 0.6075% | 3.2087% | 3.8812% |
Number of Test Cases | vxTcpFuzzer TSAR | Boofuzz-Chksum TSAR | Netzob-Generation TSAR | Netzob-Mutation TSAR |
---|---|---|---|---|
5000 | 33.9200% | 0.7600% | 3.2600% | 18.3800% |
10,000 | 56.9700% | 0.7500% | 3.1400% | 18.6500% |
15,000 | 55.7466% | 0.7666% | 3.2533% | 18.7066% |
20,000 | 45.1200% | 0.7700% | 3.1900% | 18.6300% |
25,000 | 36.0960% | 0.7600% | 3.1720% | 18.6360% |
30,000 | 30.4133% | 0.7633% | 3.1766% | 15.5300% |
35,000 | 26.0714% | 0.7685% | 3.1485% | 13.3114% |
40,000 | 26.6700% | 0.7600% | 3.1300% | 11.6475% |
45,000 | 27.6800% | 0.7644% | 3.1489% | 10.3533% |
50,000 | 24.9120% | 0.7680% | 3.1640% | 9.3180% |
55,000 | 22.6472% | 0.7636% | 3.1581% | 8.4709% |
60,000 | 20.7600% | 0.7650% | 3.1616% | 7.7650% |
65,000 | 22.1107% | 0.7661% | 3.1569% | 7.1676% |
70,000 | 27.5914% | 0.7657% | 3.1785% | 6.6557% |
75,000 | 32.3786% | 0.7640% | 3.1880% | 6.2120% |
80,000 | 34.8900% | 0.7662% | 3.2087% | 5.8237% |
85,000 | 36.8011% | 0.7658% | 3.2235% | 5.4811% |
90,000 | 37.8422% | 0.7633% | 3.1988% | 5.1766% |
95,000 | 35.8926% | 0.7673% | 3.2063% | 4.9042% |
100,000 | 34.1110% | 0.7760% | 3.1920% | 4.6590% |
Number of Test Cases | vxTcpFuzzer TSAR | Boofuzz-Chksum TSAR | Netzob-Generation TSAR | Netzob-Mutation TSAR |
---|---|---|---|---|
5000 | 33.9200% | 0.7600% | 3.2600% | 18.3800% |
10,000 | 44.1400% | 0.7500% | 3.1400% | 18.6500% |
15,000 | 40.400% | 0.7666% | 3.2533% | 18.7066% |
20,000 | 38.7050% | 0.7700% | 3.1900% | 18.6300% |
25,000 | 30.9640% | 0.7600% | 3.1720% | 18.6360% |
30,000 | 25.8066% | 0.7666% | 3.1766% | 15.5300% |
35,000 | 30.3485% | 0.7714% | 3.1485% | 13.3114% |
40,000 | 27.6700% | 0.7625% | 3.1300% | 11.6475% |
45,000 | 24.5955% | 0.7666% | 3.1489% | 10.3533% |
50,000 | 30.4000% | 0.7700% | 3.1640% | 9.3180% |
55,000 | 36.4090% | 0.7654% | 3.1581% | 8.4709% |
60,000 | 39.0333% | 0.7667% | 3.1616% | 7.7650% |
65,000 | 37.3661% | 0.7692% | 3.1569% | 7.1676% |
70,000 | 41.8400% | 0.7685% | 3.1785% | 6.6557% |
75,000 | 45.7173% | 0.7667% | 3.1880% | 6.2120% |
80,000 | 43.0600% | 0.7687% | 3.2087% | 5.8237% |
85,000 | 40.5270% | 0.7694% | 3.2235% | 5.4811% |
90,000 | 41.4000% | 0.7667% | 3.1988% | 5.1766% |
95,000 | 39.2210% | 0.7705% | 3.2063% | 4.9042% |
100,000 | 37.2600% | 0.7800% | 3.1920% | 4.6590% |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2025 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Wang, Y.; Han, J.; Deng, X.; Hei, X. A High-Acceptance-Rate VxWorks Fuzzing Framework Based on Protocol Feature Fusion and Memory Extraction. Future Internet 2025, 17, 377. https://doi.org/10.3390/fi17080377
Wang Y, Han J, Deng X, Hei X. A High-Acceptance-Rate VxWorks Fuzzing Framework Based on Protocol Feature Fusion and Memory Extraction. Future Internet. 2025; 17(8):377. https://doi.org/10.3390/fi17080377
Chicago/Turabian StyleWang, Yichuan, Jiazhao Han, Xi Deng, and Xinhong Hei. 2025. "A High-Acceptance-Rate VxWorks Fuzzing Framework Based on Protocol Feature Fusion and Memory Extraction" Future Internet 17, no. 8: 377. https://doi.org/10.3390/fi17080377
APA StyleWang, Y., Han, J., Deng, X., & Hei, X. (2025). A High-Acceptance-Rate VxWorks Fuzzing Framework Based on Protocol Feature Fusion and Memory Extraction. Future Internet, 17(8), 377. https://doi.org/10.3390/fi17080377