/ justapi / fuzz / fuzz_targets / fuzz_query_params.rs
swadhinbiswas sec(fuzz): add cargo-fuzz targets for parser and protocol attack surfaces · 7/9/2026
e086c74
22 lines · 576 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#![no_main]

use libfuzzer_sys::fuzz_target;
use std::collections::HashMap;

fuzz_target!(|data: &[u8]| {
    if data.is_empty() {
        return;
    }

    if let Ok(s) = std::str::from_utf8(data) {
        // Fuzz URL query string parsing
        let _: HashMap<String, String> = serde_urlencoded::from_str(s).unwrap_or_default();

        // Fuzz full URL parsing with query parameters
        if s.len() > 4 && s.contains('=') {
            let url = format!("http://localhost:8080/test?{}", s);
            let _: Result<http::Uri, _> = url.parse();
        }
    }
});