Skip to main content

VulnTrain

Latest release License PyPi version

VulnTrain turns the vulnerability data collected by Vulnerability-Lookup into AI datasets and trained models. It processes over one million advisory records (CVE, GitHub advisories, CSAF, PySecDB, CNVD, FSTEC) to answer questions such as:

  • How severe is this vulnerability, given only its description?
  • Which CWE does this patch fix?
  • Which MITRE ATT&CK techniques does this CVE enable?

All resulting datasets and models are published on Hugging Face:

Model on HF

Installation

pipx install VulnTrain

For development:

git clone https://github.com/vulnerability-lookup/VulnTrain.git
cd VulnTrain/
poetry install

Documentation

Full documentation — configuration, dataset generation, training recipes and methodology — is available at https://vulnerability-lookup.github.io/VulnTrain

For more information about the use of AI in Vulnerability-Lookup, please refer to the user manual.

Usage

Every task follows the same three stages, each with its own command.

1. Build a dataset from the vulnerability sources and push it to the Hub:

vulntrain-dataset-generation --sources cvelistv5,github,csaf_redhat,pysec \
  --repo-id CIRCL/vulnerability-scores

2. Train a model on that dataset (trainers push to the Hub by default; use --no-push for a local run):

vulntrain-train-severity-classification --base-model roberta-base \
  --dataset-id CIRCL/vulnerability-scores \
  --repo-id CIRCL/vulnerability-severity-classification-roberta-base

3. Validate the trained model:

vulntrain-validate-severity-classification

Available tasks

Task Train with Published model
Severity classification vulntrain-train-severity-classification …severity-classification-roberta-base
Severity classification (Chinese, CNVD) vulntrain-train-severity-cnvd-classification …severity-classification-chinese-macbert-base
CWE classification from patches vulntrain-train-cwe-classification …cwe-classification-modernbert-base
CVE → ATT&CK techniques vulntrain-train-attack-classification …attack-technique-classification-roberta-base
CVE → ATT&CK techniques (bi-encoder) vulntrain-train-attack-biencoder …attack-technique-biencoder
Description generation vulntrain-train-description-generation …description-generation-gpt2*

Every command accepts --help. The exact command lines used to regenerate each published artifact are in the runbook.

How to cite

For the severity classification work:

Bonhomme, C., & Dulaunoy, A. (2025). VLAI: A RoBERTa-Based Model for Automated Vulnerability Severity Classification (Version 1.4.0) [Computer software]. https://doi.org/10.48550/arXiv.2507.03607

@misc{bonhomme2025vlai,
    title={VLAI: A RoBERTa-Based Model for Automated Vulnerability Severity Classification},
    author={Cédric Bonhomme and Alexandre Dulaunoy},
    year={2025},
    eprint={2507.03607},
    archivePrefix={arXiv},
    primaryClass={cs.CR}
}

For the ATT&CK technique mapping work:

Bonhomme, C., & Dulaunoy, A. (2026). Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion. https://doi.org/10.48550/arXiv.2607.25572

@misc{bonhomme2026mappingcvesmitreattck,
    title={Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion},
    author={Cédric Bonhomme and Alexandre Dulaunoy},
    year={2026},
    eprint={2607.25572},
    archivePrefix={arXiv},
    primaryClass={cs.CR},
    url={https://arxiv.org/abs/2607.25572},
}

License

VulnTrain is licensed under GNU General Public License version 3

Copyright (c) 2025-2026 Computer Incident Response Center Luxembourg (CIRCL)
Copyright (C) 2025-2026 Cédric Bonhomme - https://github.com/cedricbonhomme
Copyright (C) 2025 Léa Ulusan - https://github.com/3LS3-1F

Funding

AIPITCH (AI-Powered Innovative Toolkit for Cybersecurity Hubs) is a co-funded EU project supported by the European Cybersecurity Competence Centre (ECCC) under the DIGITAL-ECCC-2024-DEPLOY-CYBER-06-ENABLINGTECH program and CIRCL.

The project brings together an international consortium to develop AI-based tools that enhance the capabilities of operational cybersecurity teams. These tools are designed to support critical services, with a focus on national security teams, while also being applicable to internal security teams in companies and institutions.

Metadata

Release files for VulnTrain 3.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for VulnTrain 3.3.0
File Size Uploaded
vulntrain-3.3.0.tar.gz 97.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for VulnTrain 3.3.0
File Interpreter ABI Platform
vulntrain-3.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 215.9 kB

Release files / vulntrain-3.3.0.tar.gz

Download URL vulntrain-3.3.0.tar.gz
Size 97.6 kB
Tags Source
SHA-256 checksum
How to use checksums
cc6f23ad08c57281c2ab6349be38125b117d2836e521d9bb5b04f767574bbf9e
BLAKE2b-256 checksum
How to use checksums
ce27730588efec323b19fa54ad0f807c5ea0f8bed72db7564a835a795f34949b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release files / vulntrain-3.3.0-py3-none-any.whl

Download URL vulntrain-3.3.0-py3-none-any.whl
Size 118.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ae356b803d4bc6b0d9566c339b947284f6ce5462f0b2c711296aac98bbb954ad
BLAKE2b-256 checksum
How to use checksums
eace108f5255f9e99545f7850250fc8f51afe0a16caf8fe3c8c72bf9367bc39a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

3.3.0 This release

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.0.0

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page