cybox
A Python library for parsing and generating CybOX content.
What it is and what it does
python-cybox is a library for working with Cyber Observable eXpression (CybOX) v2.1.0 content, a structured format for describing cyber observables like files, network addresses, and other security-relevant entities. It provides two layers of API: a low-level auto-generated binding to the XML schema (for complete coverage of the CybOX standard) and a higher-level manually designed API (for common use cases and more Pythonic interaction). The library can parse CybOX from XML, generate CybOX XML output, and convert to and from JSON and Python dictionaries.
The package depends on lxml, python-dateutil, and mixbox for its core functionality. It is designed to be faithful to both the CybOX standard and Python conventions, making it usable by both XML schema experts and Python developers. However, the project has been abandoned since 2020-05-01 with no active maintenance, meaning it will not receive updates for new Python versions, security issues, or changes in its dependencies.
Use it for:
- Parse and validate CybOX XML documents from security tools or threat intelligence feeds.
- Programmatically construct CybOX observables for threat reporting or integration with other standards.
- Convert CybOX content to JSON for use in web APIs or modern data pipelines.
- Work with legacy security applications that depend on the CybOX v2.1.0 standard.
- Extract and manipulate cyber observable metadata from structured threat intelligence.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Parses, manipulates, and generates Cyber Observable eXpression (CybOX) v2.1.0 content in XML and JSON formats through both low-level schema bindings and higher-level Python APIs.
Yes, but only if you are locked into CybOX v2.1.0 for legacy or compliance reasons. The package is stable with no known vulnerabilities, but it is abandoned and will not receive maintenance or Python version updates. Install it if you must work with existing CybOX content; avoid it for new projects unless CybOX is a hard requirement.
Install
cybox on PyPI
pip
pip install cyboxuv
uv add cyboxpoetry
poetry add cyboxInstalling cybox
Before you install
Low install friction with three straightforward dependencies. However, the package is abandoned—last commit was 2020-05-01 with no active maintenance or security updates since then.
License in practice
BSD permissive license allows commercial and private use with minimal restrictions, making it safe to adopt from a licensing perspective.
Quickstart
pip install cybox
from cybox.core import Observables
from cybox.objects.file_object import File
f = File()
f.file_name = "example.txt"
observables = Observables()
observables.add_observable(f)
lxml requires system libraries (libxml2-dev, libxslt1-dev, zlib1g-dev on Ubuntu) to build from source on some platforms.
Verify before relying
- Whether the package works reliably with Python versions beyond 3.7 despite classifier claims.
- Current compatibility status with recent versions of lxml and python-dateutil.
- Whether the CybOX standard itself remains in active use or has been superseded.
Package facts
| License | BSD (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — mixbox, python-dateutil, lxml |
| Maintenance | abandoned — 2,352 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 122,814/month — #11,931 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: cybox-2.1.0.21-py2.py3-none-any.whl
Tags
More Security packages
Provides Python bindings to the FreeDesktop.org…
permissive · top 1,000 on PyPI
msalMSAL for Python handles OAuth2 and OpenID…
permissive · top 1,000 on PyPI
joserfcjoserfc implements JOSE standards (JWS, JWE,…
permissive · top 1,000 on PyPI
AuthlibAuthlib provides a complete implementation of…
permissive · top 1,000 on PyPI
argon2-cffi-bindingsProvides low-level CFFI bindings to the…
permissive · top 1,000 on PyPI
adalADAL for Python authenticates applications with…
permissive · top 1,000 on PyPI
stixParses, manipulates, and generates STIX v1.2.0…
permissive · top 15,000 on PyPI
maecParse, manipulate, and generate MAEC (Malware…
permissive · top 15,000 on PyPI
mixboxMixbox provides shared utility code for…
permissive · top 15,000 on PyPI
xsdataxsdata generates Python dataclasses from XML…
permissive · top 5,000 on PyPI
stix2-patternsValidates the syntax of STIX 2 Pattern…
permissive · top 5,000 on PyPI
lxmllxml provides Python bindings to libxml2 and…
permissive · top 1,000 on PyPI
stix2Serializes and deserializes STIX 2 JSON…
permissive · top 5,000 on PyPI
PyXB-XPyXB-X generates Python classes from XMLSchema…
permissive · top 15,000 on PyPI
xmlunittestExtends Python's unittest framework to compare…
permissive · top 5,000 on PyPI
cssselectcssselect parses CSS3 selectors and translates…
permissive · top 1,000 on PyPI