Skip to content

Open Source Boundary

NetVuln Tool is open-source software with one clearly delineated proprietary exception. This page explains both the license boundary (what is and is not Apache-2.0) and the functional boundary (standalone scanning versus optional portal integration).

License boundary

The entire repository is licensed under the Apache License 2.0, except for the appliance/ subtree, which is proprietary to Bullium Consulting and All Rights Reserved.

AreaLicense
Everything outside appliance/ (all scripts, libraries, the Python orchestrator, templates, tests, docs)Apache-2.0
appliance/ (hardware enclosure design)Proprietary, All Rights Reserved (LicenseRef-Bullium-Proprietary)

The split is recorded at the repository root in NOTICE:

The contents of the "appliance/" directory (hardware enclosure design: OpenSCAD source, STL meshes, renders, and print documentation) are proprietary to Bullium Consulting and are NOT licensed under the Apache License 2.0. They are excluded from the Apache-2.0 grant that covers the rest of this product. See appliance/LICENSE.

The proprietary appliance/ subtree

appliance/ holds the field-appliance enclosure design: a two-part 3D-printed case for a Raspberry Pi 5 plus an RTL-SDR Blog V4 dongle. It ships the parametric OpenSCAD source, print-ready STL meshes, reference renders, and a print/assembly guide.

Per appliance/LICENSE:

  • These materials are not licensed under the Apache License 2.0 that governs the rest of the repository.
  • No license to use, copy, modify, distribute, manufacture, or create derivative works is granted by their inclusion in the repository.
  • Use, reproduction, or distribution requires the prior written permission of Bullium Consulting (contact support@bullium.com).

The subtree is also excluded from the published container image (.dockerignore drops appliance), so it never ships inside the Docker artifact.

WARNING

Cloning the repository does not grant any right to reproduce or manufacture the appliance/ design. Only that one directory is affected; every other file in the repository is Apache-2.0.

Functional boundary

Independent of licensing, the tool is organized into two functional layers. Both layers are Apache-2.0 (the proprietary boundary above applies only to appliance/).

Core (standalone)

The core layer is the complete vulnerability scanning toolkit. It runs entirely on its own with no external service, no portal account, and no API key. It produces self-contained HTML reports, JSON session data, and executive summaries locally.

  • Discovery: discover_hosts.sh, discover_dns.sh, discover_whois.sh
  • Enumeration: enum_ports.sh, enum_web.sh, enum_smb.sh, enum_ssh.sh, enum_snmp.sh
  • Assessment: vuln_assess.sh, cve_lookup.sh, classify_severity.sh
  • Reporting: aggregate_results.sh, risk_score.sh, remediation_playbook.sh, remediation_tracker.sh, generate_report.sh, report_template.sh, executive_summary.sh, compliance_mapper.sh, network_topology.sh
  • Post-scan tools: scan_diff.sh, alert_notifier.sh, remediation_update.sh, scheduled_scan.sh, scan_reminder.sh, synthetic_collection.sh
  • Daemon: netvuln_daemon.sh, netvuln_daemon_ctl.sh
  • Libraries: lib/netvuln_common.sh, lib/exec_template.sh, lib/plugin_loader.sh
  • Python orchestrator: the netvuln/ package (CLI, pipeline runner, native scoring, upload/diff)
  • CLI entry points: vulnscan_menu.sh, vulnscan_cli.sh, vulnscan_recon.sh

Portal integration (optional)

The portal integration layer connects the tool to the Bullium Consulting collection portal for centralized session management, trend tracking, shareable report links, and team collaboration. These scripts are Apache-2.0, but they are marked with a # Portal Integration header comment so they can be omitted from stripped, standalone distributions. The portal service itself (the separate bullium-site application) is a proprietary hosted product and is not part of this repository.

  • push_session.sh: push scan results to the portal with shareable report link generation
  • upload_session.sh: standalone CLI uploader for session data
  • submit_session.sh: shared multipart upload library used by both push and upload
  • refresh_reports.sh: bulk re-upload reports after template changes
  • api_debug.sh: portal API debug tool
  • e2e_smoke_test.sh: portal endpoint validation
  • lib/command_handler.sh: C2 command handler for remote agent management (see Command and Control)

Activating portal features

Portal features are activated by setting CONSULTATION_API_URL and NV_API_KEY (or the legacy CONSULTATION_API_KEY) in report_config.conf. Without these variables, the tool operates entirely in standalone mode. See License Provisioning for key setup and tier details, and Session Management for the upload workflow.

Apache-2.0 licensed (appliance subtree proprietary)