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.
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.
web.example.testPotential matchApache httpd 2.4.49
cpe:/a:apache:http_server:2.4.49Apache 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.
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 APIRun 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 sourcepython3 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-reportRead the setup notes