1. Introduction
Cyber–physical systems (CPSs), including industrial control systems, smart manufacturing platforms, connected vehicles, and intelligent IoT infrastructures, increasingly depend on complex software to parse inputs, process sensor data, coordinate control logic, and communicate with external services. Many deployable CPS products contain CPS-facing software components such as industrial protocol parsers, edge gateways, data converters, media/configuration parsers, and control-support services. Vulnerabilities in these components may propagate from cyberspace to physical processes, making efficient vulnerability discovery an important part of CPS security assurance.
Fuzzing is a popular and effective vulnerability discovery technique for such software-intensive systems. It explores program execution paths by repeatedly running the target program with mutated inputs, thereby triggering potentially vulnerable states. Parallel fuzzing can increase the number of executions within a fixed time budget and thus improve the probability of discovering vulnerabilities. Many companies (e.g., Google and Microsoft) have proposed the fuzzing-as-a-service (FaaS) paradigm to reduce the burden of distributing fuzzing tasks across multiple machines.
However, this paradigm raises serious privacy concerns because developers must trust both the cloud provider and the underlying infrastructure. Since fuzzing can uncover high-value zero-day vulnerabilities, curious or compromised cloud providers may have incentives to monetize such vulnerabilities without disclosing them to software developers.
Fuzzing@Home [
1] is the first attempt to enable collaborative fuzzing on multiple untrusted nodes. It builds a blockchain network to connect software developers with computing-power providers. However, Fuzzing@Home relies on sharing fuzzing corpora, which may cause crash samples to be leaked for profit. Because developers still need time to locate and fix vulnerabilities, users who continue to run affected versions face substantial security risks. Even when crash-triggering samples are not shared directly, sharing ordinary but informative seeds may allow malicious participants to rediscover the same vulnerability within a short period of time. Therefore, the confidentiality of the seed set must be protected.
A straightforward solution is to let each node encrypt seeds with the task issuer’s public key and store the ciphertext on the blockchain. However, this approach has two major limitations. First, the fairness between workers (fuzzing nodes) and the task publisher (the program developer) must be addressed. Workers should not submit valuable seeds unless the publisher pays the corresponding reward, and the publisher should receive seeds of the claimed value after payment. However, if seeds remain confidential, blockchain nodes other than the task publisher cannot independently reach consensus on seed value, which makes fair settlement difficult. Second, encrypted seed files cannot be shared among fuzzing nodes, wasting computing resources and reducing fuzzing efficiency.
To address these issues, we introduce PrivFuzz—a privacy-preserving collaborative fuzzing outsourcing framework, motivated by and applicable to CPS-facing parsing components, that does not require changes to the underlying blockchain consensus protocol. PrivFuzz protects valuable seeds from leakage and abuse while still enabling seed sharing among multiple fuzzing nodes. Specifically, our design follows a widely adopted off-chain processing approach and uses trusted execution environments (TEEs) to enable privacy-preserving fuzzing crowdsourcing. In our scheme, all seeds are stored on the blockchain as ciphertext and are encrypted, decrypted, mutated, and consumed inside off-chain enclaves throughout the fuzzing process. Workers cannot access plaintext seeds at any stage. To support fair exchange, we devise an off-chain seed value evaluation mechanism. Before submitting a newly discovered valuable seed to the blockchain, a worker inputs the seed into an off-chain value evaluation enclave to generate an immutable value proof, which is calculated from the seed’s contribution to code coverage and the difficulty of the discovered crash. With this value proof, consensus nodes can transparently determine the seed price through an on-chain smart contract and thereby enforce fair exchange.
To support the security and fairness claims of our scheme, we give game-based definitions and reduction-style arguments for four properties under the stated attested execution and blockchain consensus assumptions: seed confidentiality, worker soundness, outsourcer atomicity, and duplicate-claim resistance.
To evaluate the practicality of our scheme, we implement PrivFuzz on the Hyperledger Fabric blockchain and deploy four real-world parsing-oriented applications for fuzzing. We evaluate the overhead, node-count behavior, and seed synchronization behavior of PrivFuzz, including a comparison with Fuzzing@Home-style real-time synchronization. We further run native AFL++ sanity checks on CPS-facing protocol parsers only to clarify the target domain; these checks are not an end-to-end evaluation of PrivFuzz. A dedicated microbenchmark campaign on a second host additionally characterizes each pipeline component, the settlement path, the library-OS software layer, and cryptographic kernel alternatives, and a matched seed-sharing ablation isolates the coverage-level effect of encrypted seed reuse. The prototype evaluation exercises the full PrivFuzz workflow under the tested settings. Meanwhile, we found nine bugs in the original prototype evaluation and reported them to the project maintainers.
In summary, the main contributions of our work are as follows:
We build a secure distributed collaborative fuzzing outsourcing framework, motivated by and applicable to CPS-facing parsing components, based on blockchain and TEEs. The framework protects the confidentiality of valuable seeds while still permitting seed sharing among fuzzing nodes.
We design an off-chain seed value evaluation mechanism that enables worker nodes to generate unforgeable seed value proofs. By verifying these proofs, blockchain nodes can reach on-chain consensus on seed prices.
We formalize seed confidentiality, worker soundness, outsourcer atomicity, and duplicate-claim resistance using game-based definitions, and give reduction-style arguments based on attestation integrity, encryption security, hash collision resistance, and blockchain consensus. Moreover, we implement a prototype on Hyperledger Fabric, evaluate its performance on four real-world parsing-oriented projects, and separately use native AFL++ sanity checks to illustrate that industrial protocol parsers belong to the intended fuzzing target domain.
3. Problem Formulation
3.1. System Architecture
As shown in
Figure 1, PrivFuzz adopts a distributed collaborative architecture consisting of four types of components: fuzzing outsourcers (FOs), fuzzing participants (FPs), cloud storage (CS), and blockchain network (BN). Their roles are as follows:
Fuzzing Outsourcer: FOs are developers who outsource fuzzing tasks to accelerate vulnerability discovery for their products. They are responsible for preparing and uploading fuzzing toolchains.
Fuzzing Participant: FPs are blockchain-network nodes that monetize their computational resources. In PrivFuzz, each FP controls at least one SGX-enabled server for deploying fuzzing toolchains.
Blockchain Network: BN provides a common interface for FOs to publish fuzzing tasks and for FPs to discover and join tasks through smart contract invocations. BN also stores encrypted fuzzing seeds and maintains consistency between off-chain and on-chain seed data.
Cloud Storage: CS stores fuzzing toolchains provided by FOs and serves download requests from other entities.
Main Workflow. As shown in
Figure 1, PrivFuzz has two main phases: task outsourcing and monetization. In the task outsourcing phase, an FO publishes a fuzzing task, including its reward policy and fuzzing-toolchain file index, through the task management contract (①). This task may target CPS-related software components such as parsers, gateways, protocol handlers, or control-support services. FPs then join the task through smart contract invocations, provide the fuzzing toolchain to a fuzzing enclave, and start fuzzing (②). In the monetization phase, the fuzzing enclave interacts with an evaluation enclave to generate a publicly verifiable work value proof, which is then submitted to the monetization contract (③–④). The monetization contract transparently determines the reward according to the work value proof and transfers the reward to the FP (⑤).
Section 4 presents the detailed design of these two phases.
The architecture is intended to support multiple deployment layers rather than require every IoT sensor or actuator to run the complete prototype. A lightweight device may remain a target or data source, while an edge gateway, fog node, or cloud worker runs the SGX-enabled fuzzing and evaluation toolchain.
3.2. Threat Model
In our threat model, cloud storage is honest-but-curious: it correctly stores and returns data but may try to infer sensitive information from its observations and background knowledge. FOs and FPs are untrusted and may deviate from the protocol to maximize their own interests. We introduce two active adversaries and in our model. The goal of is to obtain valuable seeds discovered by FPs without providing the corresponding rewards. The goal of is to obtain the plaintext of valuable fuzzing seeds or receive rewards from FOs without providing the corresponding seeds. The capabilities of are itemized as follows:
can compromise some blockchain nodes to reject a valid seed value proof, but cannot control enough nodes to break consensus.
may compromise FOs and interact with cloud storage or FPs to obtain fuzzing seeds without providing the corresponding rewards.
The capabilities of are itemized as follows:
can compromise some blockchain nodes and attempt to forge value proofs, but cannot control enough nodes to break consensus.
can compromise cloud storage and attempt to infer unencrypted fuzzing seeds.
may have full control over the operating system, applications, and memory outside the enclave on FP machines, and may attempt to extract seeds from the enclave.
Our security assumptions are as follows:
We assume that SGX enclaves preserve the confidentiality of their contents under a no-side-channel model and that the secure channel established after remote attestation is reliable.
We assume that the implementation of blockchain clients, smart contracts, and the fuzzing toolchains (except the target program) are free of software vulnerabilities.
We assume that the fuzzing toolchain and evaluation enclave are auditable artifacts: their source code, build configuration, and enclave measurement can be checked by FPs, auditors, or an on-chain allowlist before a task is joined. This assumption is necessary because an enclave protects execution from the host but cannot make malicious enclave code benign.
We assume that malicious blockchain nodes do not control enough voting power or computational power to disrupt distributed consensus.
The scope of visible information under this threat model is summarized in
Table 3. The table distinguishes metadata exposure from seed exposure: PrivFuzz does not hide the existence of a fuzzing task, the identity of registered participants, synchronization timing, or the size of encrypted submissions. Instead, it aims to prevent parties outside attested enclaves from learning the plaintext contents of valuable seeds before the intended disclosure process.
This threat model does not cover microarchitectural side-channel attacks against SGX, rollback attacks not prevented by the underlying blockchain state, denial-of-service attacks, bugs in enclave code or smart contracts, or intentionally malicious toolchains whose measurements are not audited before deployment. These attacks are important in deployment, but they require defenses orthogonal to the protocol-level confidentiality and fairness mechanisms studied in this paper.
The blockchain layer also creates deployment risks. Task identifiers, participant activity, ciphertext sizes, synchronization timing, accepted value proofs, and reward transfers remain observable metadata; ledger immutability can make correction and key revocation difficult; smart contract or chain-client bugs can affect settlement; consensus and ordering services can become availability bottlenecks; and permissioned-network governance determines which organizations can operate validating nodes. The prototype mitigates part of this exposure by storing seed contents as ciphertext and using Hyperledger Fabric rather than a public permissionless chain, but it does not eliminate metadata leakage, denial of service, key-management failures, or governance risk.
3.3. Design Goals
Our goal is to create a confidential and fair fuzzing outsourcing framework that enables FOs, including CPS software developers and operators, to use the computational resources provided by FPs to accelerate vulnerability discovery while keeping valuable seeds confidential. FPs earn rewards by submitting seeds discovered during fuzzing. Thus, PrivFuzz should be designed to achieve the following security goals:
Confidentiality. Fuzzing seeds should not be obtained by any untrusted parties.
Fairness. PrivFuzz should ensure that FPs receive corresponding rewards after submitting valuable seeds, and that seed values are publicly verifiable and cannot be forged.
Efficiency. Since distributed fuzzing aims to improve fuzzing efficiency, PrivFuzz should increase explored code coverage as more computational resources participate, within the evaluated synchronization settings.