mitre-attack / mitre-attack/attack-website

stixtests module unable to validate STIX with stix2-validator==3.3.1

Open Beginner friendly
#628 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HTML
Stars
588
Forks
174
Avg merge
13d 4h
Merged PRs (30d)
2

Description

The stixtests module cannot validate ATT&CK STIX bundles when this repository uses its currently pinned dependency, stix2-validator==3.3.1. For example:

$ uv run python update-attack.py -m clean -e stixtests
...
2026-08-05 10:07:45.316 | INFO     | modules.stixtests.stixtests:run_tests:47 - Validating STIX for domain: enterprise-attack
2026-08-05 10:07:45.540 | ERROR    | modules.stixtests.stixtests:run_tests:52 - File enterprise-attack.json is invalid:
[X] STIX JSON: Invalid
    [X] Cannot locate a schema for the object's type, nor the base schema (core.json).
2026-08-05 10:07:45.540 | INFO     | modules.stixtests.stixtests:run_tests:47 - Validating STIX for domain: mobile-attack
2026-08-05 10:07:45.560 | ERROR    | modules.stixtests.stixtests:run_tests:52 - File mobile-attack.json is invalid:
[X] STIX JSON: Invalid
    [X] Cannot locate a schema for the object's type, nor the base schema (core.json).
2026-08-05 10:07:45.560 | INFO     | modules.stixtests.stixtests:run_tests:47 - Validating STIX for domain: ics-attack
2026-08-05 10:07:45.575 | ERROR    | modules.stixtests.stixtests:run_tests:52 - File ics-attack.json is invalid:
[X] STIX JSON: Invalid
    [X] Cannot locate a schema for the object's type, nor the base schema (core.json).

Downgrading to stix2-validator==3.2.0 validates the same STIX content successfully:

$ uv pip install stix2-validator==3.2.0
$ uv run python update-attack.py -m clean -e stixtests
...
2026-08-05 10:36:13.990 | INFO     | modules.stixtests.stixtests:run_tests:47 - Validating STIX for domain: enterprise-attack
2026-08-05 10:37:55.376 | INFO     | modules.stixtests.stixtests:run_tests:50 - File enterprise-attack.json is valid
2026-08-05 10:37:55.376 | INFO     | modules.stixtests.stixtests:run_tests:47 - Validating STIX for domain: mobile-attack
2026-08-05 10:38:05.264 | INFO     | modules.stixtests.stixtests:run_tests:50 - File mobile-attack.json is valid
2026-08-05 10:38:05.264 | INFO     | modules.stixtests.stixtests:run_tests:47 - Validating STIX for domain: ics-attack
2026-08-05 10:38:12.549 | INFO     | modules.stixtests.stixtests:run_tests:50 - File ics-attack.json is valid

This appears to be caused by the upstream 3.3.1 wheel omitting the STIX schema JSON files. It matches oasis-open/cti-stix-validator#248.

Until an upstream fixed release is available, we should pin stix2-validator==3.2.0 so our stixtests extra/module can continue to perform STIX validation.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the dependency configuration for the stixtests extra and read modules.stixtests.stixtests:run_tests, especially the validation call around lines 47-52. Pin stix2-validator to 3.2.0, then run uv run python update-attack.py -m clean -e stixtests; done means the enterprise, mobile, and ICS bundles all validate successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
security, testing-qa
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.