ByteScan.net
← Research
ByteScan Security Research Lab · Berlin

VULCAN
LLM-Guided
Semantic Fuzzer

Beyond the bitmap

VULCAN reads C source code directly, reasons about dangerous data-flow patterns at the implementation level, and generates targeted inputs that find real vulnerabilities — without coverage instrumentation, SMT solvers, or symbolic state.

Contact Research Team View Findings
Research output — June 2026
CVEs assigned 3
CVE submissions pending 4
Targets evaluated 8
Success rate 75%
Academic recognition CODASPY 2026
CVE-2025-65834 Assigned
CVE-2026-39020 Assigned
CVE-2026-36433 Assigned
4 Submissions Pending
CODASPY 2026 Poster

Four-phase pipeline

VULCAN requires no coverage instrumentation, no SMT solver, and no symbolic state. An LLM reasons about the code the way a human security researcher would.

Phase 01 — Ingestion

Source ingestion

C source files are split into per-function chunks with full context: signatures, callees, type definitions. For binary-only targets, Ghidra decompiles to pseudocode first.

Phase 02 — Analysis

Pattern analysis

The LLM traces data flow from user-controlled input fields to dangerous operations, recording the exact byte offset, data type, and triggering value range for each finding.

Phase 03 — Synthesis

Fuzzer synthesis

A Python mutation fuzzer is generated with a minimal valid seed and targeted mutation pools for each dangerous field. Only the targeted offsets are mutated.

Phase 04 — Triage

Crash triage

Crash stack traces are fed back to the LLM for root cause analysis. All findings require ASAN or UBSan confirmation. False positives are retracted with documented reasoning.

Pattern Bank

A persistent store indexed by library name and version. When a new target includes a known library (ClipperLib, boost::filesystem, zlib), VULCAN retrieves prior patterns without re-analysis — reducing Phase 2 from 40 minutes to under 3 minutes on subsequent targets.


Why existing tools miss these bugs

Three dominant paradigms all fail on real-world C codebases in documented ways. VULCAN addresses all three.

Tool / approach Reads source code Works on crypto code Targets specific fields Core limitation
AFL++ / libFuzzer No Yes No Semantically blind — all bytes treated equally regardless of data-flow meaning
KLEE / angr Yes No Yes Path explosion and SMT solver timeouts on cryptographic constraints
ChatAFL No Yes No Protocol-level only — no visibility into the C implementation handling messages
VULCAN Yes Yes Yes No instrumentation, no solver, no symbolic state

Zero-days confirmed

6 confirmed vulnerabilities across 8 targets. 4 retracted findings are documented with gate failure reasoning — all reported findings are ASAN confirmed.

Shotcut / MLT Framework

Buffer overflow in image processing pipeline

Out-of-bounds memory access triggered via crafted media file. Assigned by MITRE.

CVE-2025-65834
Wings3D 2.4.1

DoS via crafted Wavefront OBJ file

Unhandled IEEE-754 special float values cause immediate crash on import. Unhandled function_clause exception in the Erlang OBJ parser.

CVE-2026-39020
Actions Semiconductor Media Player Utilities 4.46

Arbitrary code execution via unsigned firmware update

Zero cryptographic verification before flashing firmware over USB. Attacker with physical access can permanently compromise affected devices across 12 USB Product IDs.

CVE-2026-36433
vorbis-tools oggenc 1.4.3

NULL pointer dereference via malformed WAV file

WAVE_FORMAT_EXTENSIBLE handler dereferences an uninitialized pointer when the fmt chunk is shorter than 22 bytes. Triggered in 12 iterations. Publicly disclosed at xiph.org GitLab.

Pending
Icecast 2.4.4

Integer overflow in stream burst size calculation

User-controlled bitrate HTTP header feeds into burst_size arithmetic without overflow protection. Triggered with bitrate: 2147483647 in iteration 7.

Pending
Beanstalkd 1.13

CRLF injection in TCP job command parser

CR/LF sequences within the job body are not sanitized, allowing injection of arbitrary commands into the protocol stream.

Pending
Privoxy 4.1.0

Null byte DoS in HTTP header parser

Crafted null byte in HTTP headers causes denial of service.

Pending
ngircd 27 / FreeRADIUS 3.2.8

No findings

Both targets had undergone recent security rewrites — validating the target selection heuristic that old, unaudited C codebases yield results significantly faster than recently patched codebases.

No CVE

Dangerous patterns VULCAN targets

Each pattern includes the source location, dangerous function, byte offset of the user-controlled field, and the triggering value range.

CWE-190

Unchecked integer in size arithmetic

atoi() or strtol() result fed directly into malloc() or an array index without range validation. Classic heap overflow precursor.

CWE-120

Unsafe string operations

strcpy() or sprintf() with a fixed destination buffer and a user-controlled source length. Destination overwrite if length exceeds buffer size.

CWE-248

Uncaught C++ exceptions

Third-party library calls inside functions with no enclosing try/catch block where the library documentation indicates exception-throwing behavior.

CWE-476

Uninitialized pointer dereference

Pointer initialized only on one branch of a conditional but dereferenced unconditionally after the branch. Format code dispatch is a common trigger.

CWE-93

CRLF injection

CR/LF sequences in user-controlled string fields passed to network protocol parsers without sanitization, allowing command injection into the protocol stream.

CWE-190

Signed integer overflow in size fields

Arithmetic on user-controlled values feeding allocation functions where overflow produces a smaller-than-expected allocation followed by an oversized write.

CODASPY 2026

VULCAN: Beyond the Bitmap — LLM-Guided Semantic Mutation Fuzzing was accepted as a poster at ACM CODASPY 2026, Frankfurt am Main, Germany. The paper describes the full four-phase pipeline, Pattern Bank design, and preliminary evaluation results.

ACM CODASPY 2026 Frankfurt am Main Poster — Accepted Mohammadreza Ashouri
Request Paper Draft

Run VULCAN on your codebase

ByteScan applies VULCAN as part of security audits for open-source C infrastructure, payment systems, and network daemons. All findings are responsibly disclosed before any public release.