Skip to content

fuzz: add 7 fuzz targets for dynamic pipelines#92

Merged
mostafa merged 1 commit into
mainfrom
fuzz/dynamic-pipelines
May 7, 2026
Merged

fuzz: add 7 fuzz targets for dynamic pipelines#92
mostafa merged 1 commit into
mainfrom
fuzz/dynamic-pipelines

Conversation

@mostafa
Copy link
Copy Markdown
Member

@mostafa mostafa commented May 7, 2026

Summary

  • Add 7 new cargo-fuzz targets covering the untrusted input surfaces introduced by dynamic pipelines: pipeline YAML sources parsing, jq/JSONPath/CEL extract expressions, ${source.*} template expansion, include transformation parsing, and HTTP response body parsing (JSON/YAML/lines/CSV).
  • Each target has handcrafted seed corpus files with valid inputs, edge cases, and adversarial patterns (template injection attempts, malformed IDs, deeply nested data, empty/malformed payloads).
  • All 7 targets added to the weekly CI fuzz workflow matrix with appropriate max_len values.

Targets

Target Input Surface max_len
fuzz_pipeline_sources_yaml Pipeline YAML with sources section 8192
fuzz_extract_jq jq expressions + JSON data 4096
fuzz_extract_jsonpath JSONPath expressions + JSON data 4096
fuzz_extract_cel CEL expressions + JSON data 4096
fuzz_template_expand ${source.*} templates + resolved JSON 4096
fuzz_include_parse YAML/JSON transformation lists 8192
fuzz_http_response Response bodies as JSON/YAML/lines/CSV 65536

Test plan

  • cargo +nightly check in fuzz/ passes
  • 60-second smoke run on all 7 targets: zero crashes
  • CI workflow runs successfully with new matrix entries

Cover the untrusted input surfaces introduced by dynamic pipelines:

- fuzz_pipeline_sources_yaml: pipeline YAML with sources section
- fuzz_extract_jq: arbitrary jq expressions against arbitrary JSON
- fuzz_extract_jsonpath: arbitrary JSONPath expressions against JSON
- fuzz_extract_cel: arbitrary CEL expressions against JSON
- fuzz_template_expand: ${source.*} template strings with resolved data
- fuzz_include_parse: YAML/JSON claiming to be transformation lists
- fuzz_http_response: response bodies parsed as JSON/YAML/lines/CSV

Each target has handcrafted seed corpus files covering valid inputs,
edge cases, and adversarial patterns. All targets added to the weekly
CI fuzz workflow matrix.

60-second smoke run across all 7 targets: zero crashes.
@mostafa mostafa merged commit 0dd5bdc into main May 7, 2026
13 checks passed
@mostafa mostafa deleted the fuzz/dynamic-pipelines branch May 7, 2026 20:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant