Open source · Scanner-aware · Multi-LLM

Best Paper · 2nd place · WRSeg 2025

Structured vulnerability extraction from security reports, powered by LLMs

MulitaMiner turns archived scanner PDF reports into consistent, queryable vulnerability records under a canonical schema that does not depend on the tool that produced them.

90.4%
exact record match
1.7%
vulnerabilities missed
129
reports validated at scale
US$ 0.035
per report, recommended model

The finding

Pipeline engineering is worth more than swapping models.

Across 450 independent runs with five LLMs and three successive versions of the pipeline, refining how the document reaches the model, and never touching the models themselves, moved every metric further than any model substitution observed in the study. Once the pipeline absorbs the variance between LLMs, choosing a model becomes a question of cost and latency rather than quality.

What it is

From an inert PDF archive to a queryable record of what is vulnerable

Scanners such as OpenVAS and Tenable WAS deliver their results as PDF, a format meant for human reading and with no queryable structure. Incident response teams accumulate years of these files, and answering an elementary question, such as which machines still expose a given CVE, means reopening and comparing dozens of documents by hand.

A second problem compounds the first: each scanner adopts its own fields, names and severity scales, so results from different tools cannot be consolidated into a single view of the infrastructure.

MulitaMiner addresses both with one open-source command-line tool. It reads the report, extracts every finding and normalizes the result into an 18-field canonical schema that is independent of the source scanner.

The pressure is measurable, and it is growing

48,000
CVE records published in 2025
131
new vulnerabilities per day, on average
263%
growth in published records between 2020 and 2025
44%
of recent submissions the NVD has not managed to enrich

Institutional CSIRTs, usually small teams, have to triage, prioritize and communicate a volume of information that grows faster than their analytical capacity, and the metadata they need in order to prioritize is precisely what is missing. Figures from the National Vulnerability Database and from published analyses of its enrichment backlog.

Use cases

CSIRT operations

Turn a scan archive into a searchable history for triage, prioritization and fix tracking.

Cross-tool consolidation

Bring reports from different scanners, including corporate CAIS formats, under one schema.

Research and reproducibility

Public references, preserved run artifacts and a field-by-field evaluation package.

How it works

An adaptive, scanner-aware extraction pipeline

Eight stages turn a raw PDF into standardized, multi-format output, with adaptive re-splitting whenever a chunk fails.

Heterogeneous PDF reports
OpenVAS / Greenbone PDF

Scan Report · Host 192.168.1.10

  • 9.8 SSL/TLS: Deprecated TLSv1.0
  • 7.5 OpenSSH < 8.8 User Enum.
  • 5.3 TCP Timestamps Disclosure
Tenable WAS PDF

Web App Scanning · target.example.com

  • CRIT Cross-Site Scripting /search?q=
  • HIGH SQL Injection /login
MulitaMiner
  1. Segment by vulnerability
  2. Chunk within the model budget
  3. Extract with schema-anchored prompts
  4. Repair, normalize, consolidate
Standardized records
{
  "host": "192.168.1.10",
  "name": "SSL/TLS Deprecated",
  "severity": "High",
  "cvss": 9.8,
  "cve": "CVE-2011-3389",
  "scanner": "openvas"
}

6 of the 18 canonical fields shown

  • JSON
  • CSV
  • TSV
  • XLSX
Heterogeneous PDF reports from OpenVAS and Tenable WAS are normalized by the MulitaMiner pipeline into a single, scanner-independent record schema.
  1. 1

    Scanner PDF report

    Text and a layout reconstruction are read in two passes, recovering header context, rejoining lines broken across pages and normalizing ligatures and Unicode artifacts.

  2. 2

    Vulnerability-aware segmentation

    A start regex declared in the scanner profile materializes one block per finding, so no vulnerability is ever cut in half.

  3. 3

    Chunking and prompt assembly

    Each block is sliced inside the token budget of the target model, using its native tokenizer. The prompt carries an explicit output contract, the JSON schema and two complete examples.

  4. 4

    LLM extraction

    Any configured model runs the extraction at temperature zero. Cloud providers and local runtimes are declared the same way.

  5. 5

    Validation and repair

    Every response goes through progressive JSON repair, budget verification and truncation detection, with re-splitting proportional to the error before any retry.

  6. 6

    Consolidation

    A merge rule declared per scanner removes duplicates and keeps base findings joined to their instances, which matters for Tenable WAS pairs.

  7. 7

    Multi-format export

    The same canonical records are written to JSON, CSV, TSV and XLSX, ready to query, diff or load into a database.

  8. 8

    Field-by-field evaluation

    Optional. Scores the extraction against a reference on omission, hallucination, exact record match, text similarity and severity classification.

MulitaMiner pipeline in eight stages: a scanner PDF report is segmented into one block per vulnerability, chunked within each model's token budget, extracted by an LLM, validated and repaired with adaptive re-splitting on failure, consolidated per scanner profile, exported to JSON, CSV, TSV and XLSX, and optionally evaluated field by field.
Complete pipeline diagram. Open full size (SVG)
Terms used on this page
Structured extraction
Converting unstructured text into records with named fields and defined types, ready to query and process automatically.
Canonical schema
The fixed set of 18 fields, independent of the source scanner, onto which reports from every tool are mapped.
Segmentation and chunking
Splitting the report into one block per vulnerability and then into slices that fit the language model's context window.
Omission
The fraction of vulnerabilities, or fields, present in the reference and absent from the extraction. It is the primary metric of the research, because it measures what is never recovered.
Hallucination
The fraction of records, or fields, present in the extraction with no counterpart in the reference.
ERM (exact record match)
The fraction of aligned pairs in which every deterministic field matches the reference exactly.
Pipeline engineering
The set of design decisions (segmentation, token budget, prompt, repair and deduplication) that improve extraction without changing the language model.
Reproducibility
Being able to repeat the experiments and compare techniques from preserved code, configurations, references and artifacts.

Capabilities

Everything variable lives in a configuration file

Around 12,500 lines of Python across 19 modules, with model and scanner behaviour declared in JSON and plain-text prompt templates. Adding a scanner or a model means creating a file, not touching the pipeline.

Six scanner profiles

OpenVAS / Greenbone, Tenable WAS, Nessus, Qualys, Rapid7 and the corporate CAIS format, each with its own prompt template, start regex, chunking policy and consolidation field.

18-field canonical schema

One fixed record shape, independent of the source scanner, so reports from different tools finally compare field by field.

Per-model token budget

Each model gets its own budget and its native tokenizer, instead of one set of parameters calibrated for all. Uniform settings disproportionately penalize models with reasoning overhead.

Repair before retry

Malformed JSON is repaired progressively, truncation is detected, and the chunk is re-split in proportion to the error before spending another call.

Multi-format export

The same canonical records in JSON, CSV, TSV and XLSX, ready for spreadsheets, databases or downstream analysis.

Measurable, reproducible runs

Batch execution with checkpoints, per-model cost reports, and an evaluation package covering omission, hallucination, exact record match and severity.

Evidence

Measured, not asserted

Two independent evaluations, with references of very different natures, point in the same direction: a controlled multi-version comparison against manually curated references, and a scale validation against the scanner's own native export.

Controlled comparison

Same five models, three pipeline versions

450 independent runs · 5 LLMs · 3 curated references · 208 vulnerabilities · 95% bootstrap confidence intervals over 10,000 resamples

Metric Pipeline v1 Pipeline v3
Exact record match 37.5% 90.4%
Omission, per vulnerability 20.5% 1.7%
Omission, per field 25.1% 8.3%
Spread between best and worst model 41.8 pp 2.9 pp

All confidence intervals are non-overlapping, and the convergence is asymmetric: the models that suffered most under v1 are precisely the ones that improve most. Not a single model substitution observed in the study comes close to this margin.

Scale validation

129 reports, against the scanner's own export

6,343 reference findings · OpenVAS native CSV export as ground truth, with no human curation · every model run once per report at temperature zero

78.3% field correctness, up from 67.5%
2.8% omission, down from 14.1%
1 pp separates all five models
US$ 73.82 total cost of the full batch

Under the final version the five models sit between 77.9% and 78.9% correctness, against a six-point spread under v1. The residual error concentrates in interpretive fields such as detection method, impact and insight, while the deterministic fields approach a perfect score.

Hallucination is the one metric that does not fall monotonically: 2.4%, then 6.8%, then 4.5%. The rise is an expected effect of enforcing strict block boundaries, which start demanding that the model fill fields it previously left empty, and it is partly reversed by the adaptive resizing and JSON repair introduced in the third version.

Cost

Once quality converges, price is the deciding factor

Around 119 million tokens across the full third-version batch. Cost per PDF, measured on the same 129 reports.

Model Cost per report Notes
Llama 4 Scout US$ 0.032 The cheapest of the five.
DeepSeek recommended US$ 0.035 Best overall balance: 78.3% correctness, 2.7% omission, 4.1% hallucination.
GPT-5 mini US$ 0.342 Roughly ten times more, and about 60% of the whole batch cost, at comparable quality.

MulitaMiner dataset v1.0

Roughly 6,700 vulnerabilities extracted from the 129 OpenVAS reports, consolidated into the canonical schema and released alongside the 6,343-finding reference derived from the native export.

Available formats: JSON · CSV · TSV · XLSX

Supported scanners

OpenVAS / Greenbone and Tenable WAS were validated functionally; profiles for Nessus, Qualys, Rapid7 and CAIS ship with the distribution but were not measured with the same rigour.

Models evaluated

DeepSeek, GPT-4o mini, GPT-5 mini, Llama 3.3 70B and Llama 4 Scout, all through their official APIs. Local runtimes work end to end but were not yet run under the full protocol.

Scope and limitations
  • Scale validation covers OpenVAS only. Tenable WAS is supported and was validated functionally, but its commercial licensing capped the volume of data obtainable, and including it would produce statistically asymmetric comparisons.
  • The curated references were converged into a single annotation rather than two parallel ones, so there is no inter-annotator agreement statistic and a risk of anchoring remains.
  • The scale reference is derived from the native export, which penalizes interpretive fields that the PDF states more concisely than the CSV, and therefore likely understates real quality on those fields.
  • MulitaMiner structures what the scanner reported. It does not judge whether a finding is an exploitable vulnerability, and it does not replace human validation during triage.

Practical guidance

If you are building an extraction pipeline, do it in this order

The ordering matters more than any individual item. It is the main practical recommendation the research leaves behind.

  1. Invest in segmentation before investing in the model

    Identify the semantic unit of the document, here the vulnerability, and guarantee that no record is ever cut in half. This produced more gain than any model swap observed.

  2. Tune the token budget and tokenizer per model

    A single set of parameters calibrated for every model disproportionately penalizes the ones with the largest reasoning overhead.

  3. Anchor the prompt in an explicit schema

    Give it an output contract and complete examples, and repair malformed output before falling back on retries.

  4. Measure coverage, not just similarity

    Otherwise you will declare successful an extraction that simply ignored part of the document. Lexical metrics say nothing about what was never extracted.

  5. Only then, choose the model

    With the pipeline stabilized, the dominant criteria become cost, latency and data residency policy.

Beyond security reports

Nothing in this ordering is specific to vulnerability scanners

The experiments ran on scanner reports, but the principle that emerges from them does not depend on any property exclusive to that domain. Whenever the task is to extract structured records from long, repetitive documents organized into recognizable sections, structure-aware segmentation, a per-model token budget, a schema-anchored prompt and the repair of malformed output tend to produce more gain than replacing the model.

  • Technical assessment reports
  • Audit reports
  • Regulatory opinions
  • Compliance documentation

Empirical validation in those domains remains future work. The claim here is about where the evidence points, not about a result already measured outside security.

What comes next

Six directions the dissertation leaves open, in the order the research would take them.

  1. Extend the scale evaluation to Tenable WAS and to the other scanners already supported by profile, such as Nessus, Qualys and Rapid7, conditional on obtaining a comparable volume of data.
  2. Widen the set of curated references, in number and in application category, with parallel annotation on at least one target and a reported agreement statistic, putting the reliability of the reference on firmer ground.
  3. Run the full protocol with local providers such as Ollama, Hugging Face and LM Studio, a prerequisite for deployments in network-isolated environments.
  4. Build a fourth version of the pipeline that attacks the residual omission in interpretive fields through field-oriented re-extraction.
  5. Report processing time and cost per model systematically, folding operating cost into the selection criteria.
  6. Validate the principle in other document domains with repetitive structure, such as technical assessment and audit reports.

Dissertation

The research behind the tool

MulitaMiner is the product of a master's dissertation organized as a compilation of three scientific papers.

MulitaMiner: pipeline engineering for structured extraction from vulnerability scanner reports with language models

Author
Douglas Lautert
Advisor
Prof. Dr. Diego Kreutz
Program
Graduate Program in Software Engineering (PPGES)
Institution
Universidade Federal do Pampa, Alegrete, 2026

Abstract

Vulnerability management relies on scanners such as OpenVAS and Tenable WAS, whose reports are delivered as PDF, a format designed for human reading and without a queryable structure. This work investigates the use of large language models to convert these reports into structured, queryable records under a canonical schema that is independent of the source scanner. The papers establish the feasibility of LLM-based extraction and map its failure modes; quantify, across 450 independent runs with five LLMs and three pipeline versions, that engineering refinement raises exact record match from 37.5% to 90.4% and reduces vulnerability-level omission from 20.5% to 1.7% without changing the underlying models; and consolidate the method into MulitaMiner, evaluated on 129 reports and 6,343 findings. The results support the thesis that, in structured extraction from security reports, pipeline engineering is worth more than swapping models.

Keywords: vulnerability management; large language models; structured information extraction; vulnerability scanners; OpenVAS; CSIRT; reproducibility.

Research questions

QP1

Is it feasible to use large language models to convert scanner PDF reports into structured records under a single schema, and which failure modes limit that conversion?

Answered by Paper 1, feasibility

QP2

What is the relative contribution of pipeline engineering and of swapping the language model to extraction quality, measured by vulnerability coverage, field accuracy and severity classification?

Answered by Paper 2, evidence

QP3

How can the method be consolidated into an open, configurable and reproducible tool, and how does it behave at scale, in extraction quality and in the financial cost of running it?

Answered by Paper 3, artifact

Specific objectives, and how each was addressed

aCharacterize the structural and semantic heterogeneity of OpenVAS and Tenable WAS reports and define a field-by-field mapping to a unified schema.
Paper 1: inventory of both scanners' fields, the same vulnerability compared across the two tools, and an explicit mapping to a unified schema.
bDemonstrate the feasibility of LLM-based extraction on those reports and identify the failure modes that limit it.
Paper 1: ROUGE-L above 0.7 for GPT-4.1 and DeepSeek, with four failure modes characterized, all tied to segmentation and truncation.
cBuild a battery of metrics that goes beyond lexical similarity, covering omission, hallucination, deterministic field accuracy and severity classification.
Paper 2: omission and hallucination per vulnerability, exact record match per field, text similarity, and coverage-weighted macro F1 for severity.
dQuantify, under an explicit statistical protocol, the contribution of pipeline engineering against swapping the language model.
Paper 2: 450 runs with non-overlapping confidence intervals; exact record match from 37.5% to 90.4% and omission from 20.5% to 1.7% without changing models.
eConsolidate the method into an open-source tool and evaluate it at scale, including the financial cost of running it.
Paper 3: MulitaMiner under the MIT License, with 18 fields and six scanner profiles, evaluated on 129 reports and 6,343 findings, with cost measured per model. The scale validation covers OpenVAS, not the other supported scanners.
fRelease reproducible artifacts.
Code, scanner and model profiles, three manually curated references totalling 208 vulnerabilities, the scale reference, per-run artifacts and this project site.

Publications

Three papers, one trajectory

Feasibility, evidence and artifact. None of the three would be sufficient on its own.

Study 1

Feasibility

ERRC 2025

Is it possible at all?

  • 1 report, 34 vulnerabilities
  • 5 models compared
  • 4 failure modes characterized

Study 2

Evidence

SBSeg 2026

How much of the gain comes from the pipeline?

  • 208 curated vulnerabilities
  • 5 models, 450 runs
  • 3 versions of the pipeline

Study 3

Tool

SBSeg 2026

At what scale, and at what cost?

  • 129 reports, 6,343 findings
  • Open-source tool (MIT)
  • Full batch: US$ 73.82

Each stage answers a concrete limitation of the one before it.

Best Paper award (2nd place), WRSeg 2025

Recognized at the 9th Workshop Regional de Segurança da Informação e de Sistemas Computacionais (WRSeg), ERRC 2025.

WRSeg 2025 award certificate: Melhor Artigo, 2nd place, for the MulitaMiner paper
  1. 1

    Feasibility

    Structured Extraction of Vulnerabilities in OpenVAS and Tenable WAS Reports Using LLMs

    Machado, B.; Lautert, D.; Kapelinski, C.; Kreutz, D.

    WRSeg, proceedings of the XXII Escola Regional de Redes de Computadores (ERRC 2025), p. 144-150.

    Inventories the fields of both scanners, defines the field-by-field mapping to a unified schema and demonstrates that LLM-based extraction is feasible. ROUGE-L above 0.7 for GPT-4.1 and DeepSeek, with four recurring failure modes characterized, all tied to segmentation and truncation.

    Published Open in the SBC library

  2. 2

    Evidence

    MulitaMiner: A Multi-Version Evaluation of LLM-Based Vulnerability Report Extraction

    Machado, B.; Lautert, D.; Kapelinski, C.; Kreutz, D.; Ferrão, I. G.; Bof, A.

    Submitted to SBSeg 2026, under review.

    Builds three successive pipeline versions and measures, over 450 independent runs on the same five models, how much each refinement contributes, isolating the effect of the pipeline from the effect of the model.

    Under review

  3. 3

    Artifact

    MulitaMiner: An LLM-Based Tool for Structuring Vulnerability Scanner Reports

    Lautert, D.; Machado, B.; Kapelinski, C.; Kreutz, D.

    Submitted to the open-source track of SBSeg 2026, under review.

    Consolidates the method into the open-source tool and submits it to a real institutional archive: 129 reports and 6,343 findings, measured against the scanner's native export, with the financial cost of every run reported.

    Under review See the repository

BibTeX
@inproceedings{machado2025structured,
  title     = {Structured Extraction of Vulnerabilities in OpenVAS
               and Tenable WAS Reports Using LLMs},
  author    = {Machado, Beatriz and Lautert, Douglas and
               Kapelinski, Cristhian and Kreutz, Diego},
  booktitle = {Anais da XXII Escola Regional de Redes de Computadores (ERRC)},
  publisher = {Sociedade Brasileira de Computa\c{c}\~{a}o (SBC)},
  pages     = {144--150},
  year      = {2025},
  url       = {https://sol.sbc.org.br/index.php/errc/article/view/39195}
}

@mastersthesis{lautert2026mulitaminer,
  title  = {MulitaMiner: engenharia de pipeline para extra\c{c}\~{a}o estruturada
            de relat\'{o}rios de scanners de vulnerabilidades com modelos
            de linguagem},
  author = {Lautert, Douglas},
  school = {Universidade Federal do Pampa},
  type   = {Disserta\c{c}\~{a}o de Mestrado},
  note   = {Programa de P\'{o}s-Gradua\c{c}\~{a}o em Engenharia de Software (PPGES)},
  address = {Alegrete, RS, Brasil},
  year   = {2026},
  url    = {https://mulitaminer.github.io}
}

Quick start

Run your first extraction

Three steps to extract vulnerabilities from a sample OpenVAS report.

1Clone and install

git clone https://github.com/AnonShield/MulitaMiner.git
cd MulitaMiner
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

2Add your API keys to a .env file

API_KEY_DEEPSEEK = "your-deepseek-api-key"
API_KEY_GPT4     = "your-openai-api-key"
API_KEY_LLAMA3   = "your-groq-api-key"

3Run the extraction

python3 main.py \
  --input test/openvas/OpenVAS_JuiceShop.pdf \
  --llm deepseek --scanner openvas \
  --allow-duplicates --output-file openvas_test

DeepSeek is the recommended default: it gave the best balance of correctness, omission and cost in the scale evaluation. Full installation, usage and configuration guides are in the repository. Read the full documentation

Presentation

Presentation decks

Two decks cover the project: the dissertation defense, which threads the three studies into a single timeline, and the earlier TCC I defense.

Opening slide of the MulitaMiner TCC I defense: structured vulnerability extraction based on LLMs, showing a raw scanner finding transformed into a structured JSON record. TCC I

TCC I defense · July 1, 2026

22 slides · PDF · 9.6 MB

Walks through the problem, the extraction pipeline and the first results, at the stage where feasibility had just been established.