Back to the courtyard

Cybersecurity / Python · Nmap · NVD

Vulnerability & CVE scanner

An Nmap XML inventory is compared with documented CVEs. Each finding keeps the observed version beside the conditions that need verification.

Nmap inventory / CVE reviewSynthetic hosts · Real advisories

Service inventory

Service evidence

The Python scanner reads Nmap XML and generates a remediation report. This fixture uses 2 curated advisories so every comparison is inspectable.

Open generated report
web.example.testPotential match

Apache httpd 2.4.49

cpe:/a:apache:http_server:2.4.49
CVE-2021-41773

Apache HTTP Server path traversal

Observed
Apache httpd 2.4.49 on tcp/80
Affected upstream versions
Apache HTTP Server 2.4.49
Check before confirming
Exposure depends on the Alias configuration and filesystem access rules. CGI changes the possible impact.

Remediation

Check the package advisory and install a supported patched release. Apache 2.4.50's fix was incomplete, tracked as CVE-2021-42013. Apache 2.4.51 addressed that follow-up issue.

Verification

Confirm the installed package build and review Alias access rules before closing this finding.

Download the report data

Advisory snapshot: 13 October 2026. No hosts were scanned to create this fixture. The download also includes an optional NVD API client.

Implementation notes

A banner starts the investigation

Nmap identifies a service and its reported version. The Python scanner compares that evidence with an advisory, while keeping package verification in the report.

OpenSSH packages may carry backported fixes without changing the upstream banner. Apache 2.4.50 also illustrates why a first fix needs checking: its correction for CVE-2021-41773 was incomplete.

The optional NVD mode looks up supported CPE identifiers from an authorized inventory. It adds candidate CVEs with source links, preserving the conditions that still need review.

NVD: Vulnerability API

Run locally

Source and example data

The Python project includes the example inputs and tests. Open its README for prerequisites and the complete workflow.

Download project source
python3 scan_report.py report fixtures/nmap.xml \
  --fixture --out reports
python3 -m unittest discover -s tests -v

# Optional NVD lookup for your own inventory
python3 scan_report.py report local-inventory.xml \
  --nvd --out local-report
Read the setup notes
Back to the courtyardAll work