VXDF Logo
VXDF
Open Security Standard v0.0.1

VXDFValidated Exploitable Data Flow

A standardized JSON format for documenting confirmed security vulnerabilities with the evidence needed to prove they're real and actionable.Every VXDF report includes structured evidence.

Key Features

Evidence Required

Structured proof of exploitability with 33 evidence types

Actionable Reports

Clear remediation guidance with technical details

Standardized Format

JSON Schema compliant with machine-readable structure

Current Problem
Unvalidated vulnerability reports lack evidence
VXDF Solution
Validated vulnerabilities with structured evidence
View Schema Reference

Designed for interoperability with

SARIFSPDXCWECVSS

What is VXDF?

VXDF (Validated Exploitable Data Flow) is a standardized JSON format for documenting confirmed security vulnerabilities with the evidence needed to prove they're real and fix them fast.

The Problem

Alert Fatigue
Security teams waste over 21,000 hours annually investigating false positives from SAST tools
Lost in Translation
Critical vulnerability context gets lost between security scanners and development teams
Format Fragmentation
Each security tool uses its own format, making integration and correlation difficult

The Solution

Evidence-Backed
Every VXDF report includes proof of exploitability - no more guessing if it's real
Actionable Details
Precise code locations, data flow traces, and working exploit examples
Standardized Format
Machine-readable JSON that integrates seamlessly with existing security tooling

How VXDF Works

1

Detect & Validate

Security tools find potential vulnerabilities and validate them with actual exploits

2

Generate VXDF

Tools output findings in VXDF format with evidence, code locations, and remediation guidance

3

Fix with Confidence

Developers receive actionable reports they can trust, with everything needed to fix issues fast

Core Concepts

Understanding the building blocks of VXDF to create and consume vulnerability reports effectively

Exploit Flow
The journey from vulnerability source to exploitation sink

An ExploitFlow represents a single validated vulnerability instance. It traces the path of untrusted data from its entry point (source) to where it causes harm (sink), including all intermediate steps.

Example

{
  "source": "HTTP request parameter \"username\"",
  "sink": "SQL query execution",
  "steps": [
    "Input validation bypass",
    "String concatenation",
    "Database query"
  ]
}
JSON Schema

VXDF uses a strict JSON Schema (v2020-12) to ensure consistency and enable validation across all implementations.

Extensible Design

Custom properties and x-prefixed fields allow organizations to add domain-specific data without breaking compatibility.

Interoperability

Designed to work with SARIF, SPDX, CWE, and CVSS standards, enabling seamless integration with existing tools.

Schema & Examples

Explore the VXDF JSON schema structure and see real-world examples

Complete VXDF Example
A real-world example of a SQL injection vulnerability in VXDF format
{
  "vxdfVersion": "0.0.1",
  "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
  "generatedAt": "2025-01-15T14:30:00Z",
  "generatorTool": {
    "name": "OWASP VXDF Validator",
    "version": "3.5.1"
  },
  "exploitFlows": [
    {
      "id": "flow-123e4567-e89b-12d3-a456-426614174000",
      "title": "SQL Injection in User Authentication",
      "description": "User-supplied username parameter is directly concatenated into SQL query without sanitization",
      "validatedAt": "2025-01-15T13:45:00Z",
      "severity": {
        "level": "CRITICAL",
        "cvssV3_1": {
          "baseScore": 9.8,
          "vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
        }
      },
      "category": "INJECTION",
      "cwe": [
        "CWE-89"
      ],
      "source": {
        "locationType": "WEB_ENDPOINT_PARAMETER",
        "uri": "/api/v1/auth/login",
        "parameterName": "username",
        "description": "Username parameter in login endpoint accepts unsanitized input"
      },
      "sink": {
        "locationType": "SOURCE_CODE_UNIT",
        "filePath": "src/auth/LoginController.java",
        "startLine": 42,
        "endLine": 44,
        "functionName": "authenticateUser",
        "description": "SQL query construction using string concatenation"
      },
      "evidence": [
        {
          "evidenceType": "HTTP_REQUEST_LOG",
          "description": "Actual HTTP request that exploited the SQL injection",
          "data": {
            "method": "POST",
            "url": "https://api.example.com/api/v1/auth/login",
            "requestBody": {
              "username": "admin' OR '1'='1",
              "password": "anything"
            },
            "responseStatusCode": 200,
            "responseBody": {
              "authenticated": true,
              "role": "admin"
            }
          }
        }
      ]
    }
  ]
}
Note: This example shows a validated SQL injection with HTTP request evidence

Get Involved

Join the open source community building standardized vulnerability reporting

Explore the Schema
Browse the normative VXDF JSON schema interactively
Contribute on GitHub
Submit issues, pull requests, or star the repository
Implement VXDF
Add VXDF support to your security tools
Join the Discussion
Participate in our community forums and working groups

Resources & Tools

Stay Updated
Get the latest VXDF news, updates, and security insights

We respect your privacy. Unsubscribe at any time.

Have questions or want to contribute?

Contact the VXDF Team