Add SBOM, symbols, traces, and VEX files for CVE-2022-21661 SQLi case
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled

- Created CycloneDX and SPDX SBOM files for both reachable and unreachable images.
- Added symbols.json detailing function entry and sink points in the WordPress code.
- Included runtime traces for function calls in both reachable and unreachable scenarios.
- Developed OpenVEX files indicating vulnerability status and justification for both cases.
- Updated README for evaluator harness to guide integration with scanner output.
This commit is contained in:
master
2025-11-08 20:53:45 +02:00
parent 515975edc5
commit 536f6249a6
837 changed files with 37279 additions and 14675 deletions

View File

@@ -0,0 +1,46 @@
{
"id": "python-urllib3-dos-regex-TBD",
"cve": "N/A",
"description": "STUB: Replace with accurate description and threat model for the specific CVE/case.",
"threat_model": {
"entry_points": [
"STUB: define concrete inputs"
],
"preconditions": [
"STUB: feature flags / modules / protocols enabled"
],
"privilege_boundary": [
"STUB: describe boundary (if any)"
]
},
"ground_truth": {
"reachable_variant": {
"status": "affected",
"evidence": {
"symbols": [
"sym://python:python.c#sink"
],
"paths": [
[
"sym://net:handler#read",
"sym://python:python.c#entry",
"sym://python:python.c#sink"
]
],
"runtime_proof": "traces.runtime.jsonl: lines 1-5"
}
},
"unreachable_variant": {
"status": "not_affected",
"justification": "vulnerable_code_not_in_execute_path",
"evidence": {
"pruning_reason": [
"STUB: feature disabled, module absent, or policy denies"
],
"blocked_edges": [
"sym://python:python.c#entry -> sym://python:python.c#sink"
]
}
}
}
}

View File

@@ -0,0 +1,15 @@
# python-urllib3-dos-regex-TBD
Primary axis: lang-python
Tags: regex-dos, parser
Languages: python
## Variants
- reachable: vulnerable function/path is on an executable route.
- unreachable: same base image/config with control toggles that prune the path.
## Entrypoint & Controls (fill in)
- entrypoints: e.g., http:/route, grpc method, tcp port, OCI hook
- flags: e.g., feature_on=true, middleware_order=bad|good, module_loaded=true|false, LSM=enforcing|permissive
## Expected ground-truth path(s)
See `images/*/reachgraph.truth.json`.

View File

@@ -0,0 +1,30 @@
{
"dsse_version": "1.0",
"subject": [
{
"name": "ghcr.io/reachbench/python-urllib3-dos-regex-TBD:reachable",
"digest": {
"sha256": "STUB_DIGEST"
}
}
],
"statement": {
"type": "reachbench.attestation",
"materials": [
"sbom.cdx.json",
"sbom.spdx.json",
"symbols.json",
"callgraph.static.json",
"callgraph.framework.json",
"reachgraph.truth.json",
"vex.openvex.json"
]
},
"signatures": [
{
"keyid": "STUB",
"sig": "STUB_SIGNATURE",
"alg": "dilithium2"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"schema_version": "1.0",
"nodes": [
{
"sid": "sym://python:python.c#entry"
},
{
"sid": "sym://python:python.c#sink"
}
],
"edges": [
{
"from": "sym://python:python.c#entry",
"to": "sym://python:python.c#sink",
"kind": "direct"
}
]
}

View File

@@ -0,0 +1,8 @@
{
"image": "ghcr.io/reachbench/python-urllib3-dos-regex-TBD:reachable",
"config_flags": {
"FEATURE_FLAG": true,
"POLICY_MODE": "permissive"
},
"sha256": "STUB_DIGEST"
}

View File

@@ -0,0 +1,16 @@
{
"schema_version": "1.0",
"sinks": [
{
"sid": "sym://python:python.c#sink",
"kind": "generic"
}
],
"paths": [
[
"sym://net:handler#read",
"sym://python:python.c#entry",
"sym://python:python.c#sink"
]
]
}

View File

@@ -0,0 +1,5 @@
{
"bomFormat": "CycloneDX",
"specVersion": "1.6",
"components": []
}

View File

@@ -0,0 +1,6 @@
{
"spdxVersion": "SPDX-3.0",
"creationInfo": {
"created": "2025-11-07T22:40:04Z"
}
}

View File

@@ -0,0 +1,31 @@
{
"schema_version": "1.0",
"components": [
{
"purl": "pkg:generic/python@0.0.1",
"files": [
{
"path": "/src/python.c",
"funcs": [
{
"sid": "sym://python:python.c#entry",
"name": "entry",
"range": {
"start": 10,
"end": 20
}
},
{
"sid": "sym://python:python.c#sink",
"name": "sink",
"range": {
"start": 30,
"end": 60
}
}
]
}
]
}
]
}

View File

@@ -0,0 +1,2 @@
{"ts": 1.001, "event": "call", "sid": "sym://python:python.c#entry", "pid": 100}
{"ts": 1.005, "event": "call", "sid": "sym://python:python.c#sink", "pid": 100}

View File

@@ -0,0 +1,12 @@
{
"author": "reachbench-2025",
"timestamp": "2025-11-07T22:40:04Z",
"statements": [
{
"vulnerability": "TBD",
"status": "affected",
"justification": "reasoning_provided",
"impact_statement": "Function-level path is reachable."
}
]
}

View File

@@ -0,0 +1,30 @@
{
"dsse_version": "1.0",
"subject": [
{
"name": "ghcr.io/reachbench/python-urllib3-dos-regex-TBD:unreachable",
"digest": {
"sha256": "STUB_DIGEST"
}
}
],
"statement": {
"type": "reachbench.attestation",
"materials": [
"sbom.cdx.json",
"sbom.spdx.json",
"symbols.json",
"callgraph.static.json",
"callgraph.framework.json",
"reachgraph.truth.json",
"vex.openvex.json"
]
},
"signatures": [
{
"keyid": "STUB",
"sig": "STUB_SIGNATURE",
"alg": "dilithium2"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"schema_version": "1.0",
"nodes": [
{
"sid": "sym://python:python.c#entry"
},
{
"sid": "sym://python:python.c#sink"
}
],
"edges": [
{
"from": "sym://python:python.c#entry",
"to": "sym://python:python.c#sink",
"kind": "direct"
}
]
}

View File

@@ -0,0 +1,8 @@
{
"image": "ghcr.io/reachbench/python-urllib3-dos-regex-TBD:unreachable",
"config_flags": {
"FEATURE_FLAG": false,
"POLICY_MODE": "enforcing"
},
"sha256": "STUB_DIGEST"
}

View File

@@ -0,0 +1,16 @@
{
"schema_version": "1.0",
"sinks": [
{
"sid": "sym://python:python.c#sink",
"kind": "generic"
}
],
"paths": [
[
"sym://net:handler#read",
"sym://python:python.c#entry",
"sym://python:python.c#sink"
]
]
}

View File

@@ -0,0 +1,5 @@
{
"bomFormat": "CycloneDX",
"specVersion": "1.6",
"components": []
}

View File

@@ -0,0 +1,6 @@
{
"spdxVersion": "SPDX-3.0",
"creationInfo": {
"created": "2025-11-07T22:40:04Z"
}
}

View File

@@ -0,0 +1,31 @@
{
"schema_version": "1.0",
"components": [
{
"purl": "pkg:generic/python@0.0.1",
"files": [
{
"path": "/src/python.c",
"funcs": [
{
"sid": "sym://python:python.c#entry",
"name": "entry",
"range": {
"start": 10,
"end": 20
}
},
{
"sid": "sym://python:python.c#sink",
"name": "sink",
"range": {
"start": 30,
"end": 60
}
}
]
}
]
}
]
}

View File

@@ -0,0 +1 @@
{"ts": 1.001, "event": "call", "sid": "sym://python:python.c#entry", "pid": 100}

View File

@@ -0,0 +1,12 @@
{
"author": "reachbench-2025",
"timestamp": "2025-11-07T22:40:04Z",
"statements": [
{
"vulnerability": "TBD",
"status": "not_affected",
"justification": "vulnerable_code_not_in_execute_path",
"impact_statement": "Pruned by configuration; path unreachable."
}
]
}