Skip to content

White-Labeling

NetVuln reports support config-driven branding, so you can match the visual identity of each generated HTML report to the client engagement. This feature shipped in v2.14.0.

Overview

White-labeling works through CSS custom property overrides injected into the report HTML at generation time. The rt_brand_overrides() function in scripts/report_template.sh reads branding variables from the config file and emits a <style> block that overrides the default theme. The subtitle and footer are substituted into their own report sections.

This approach is portal-transparent: the branding is embedded directly in the HTML report file, so it persists through portal upload, download, and sharing with no server-side processing.

Configuration Variables

Add any of these to your engagement config file (~/netvuln-tool/configs/<client>.conf). All are optional and can be used independently. The full config reference is in Report Configuration.

VariableDescriptionExample
REPORT_PRIMARY_COLORAccent color used for banner borders, highlights, and header accents#2c5aa0
REPORT_HEADER_BGHeader banner background color#ffffff
REPORT_HEADER_TEXTHeader banner text color#1a1a1a
REPORT_SUBTITLESubtitle under the main report titlePrepared for Acme Corp
REPORT_FOOTER_TEXTFooter text at the bottom of report pagesAcme Corp Security Assessment
REPORT_FOOTER_URLFooter link URLhttps://acme-corp.example.com
REPORT_FOOTER_EMAILFooter contact emailsecurity@acme.example.com

Usage

Set the branding variables in your config file and run the scan as usual:

bash
# In ~/netvuln-tool/configs/acme_corp.conf:
# REPORT_PRIMARY_COLOR="#2c5aa0"
# REPORT_HEADER_BG="#ffffff"
# REPORT_HEADER_TEXT="#1a1a1a"
# REPORT_SUBTITLE="Prepared for Acme Corp"
# REPORT_FOOTER_TEXT="Acme Corp Quarterly Security Assessment"
# REPORT_FOOTER_URL="https://acme-corp.example.com"
# REPORT_FOOTER_EMAIL="security@acme.example.com"

./scripts/vulnscan_recon.sh -t 192.168.1.0/24 --full -R report.html \
    -c ~/netvuln-tool/configs/acme_corp.conf

The generated report uses the specified accent color for its theme and displays the custom subtitle and footer.

How It Works

  1. When generate_report.sh assembles the HTML report, it calls rt_brand_overrides() from report_template.sh.
  2. rt_brand_overrides() checks whether any of REPORT_PRIMARY_COLOR, REPORT_HEADER_BG, or REPORT_HEADER_TEXT are set in the sourced config.
  3. If so, it emits a <style> block that redefines the theme's CSS custom properties on :root:
    • REPORT_PRIMARY_COLOR overrides --bc-red and --bc-dark-red (the accent color used across banners, borders, and highlights).
    • REPORT_HEADER_BG overrides --bc-header-bg and is applied to .header-banner.
    • REPORT_HEADER_TEXT overrides --bc-header-text and is applied to the header banner and title text.
  4. REPORT_SUBTITLE, REPORT_FOOTER_TEXT, REPORT_FOOTER_URL, and REPORT_FOOTER_EMAIL are substituted directly into the report's title and footer sections.

Because the overrides use CSS custom properties, the accent color cascades through the entire report theme consistently: banners, severity badges, section headers, and accent borders all pick up the new color.

Default Behavior

If no branding variables are set, the report uses the default NetVuln / Bullium Consulting color scheme. The defaults for the text fields are:

FieldDefault
SubtitleBullium Consulting LLC
Footer textGenerated by netvuln-tool v<version>, Bullium Consulting LLC
Footer emailsupport@bullium.com
Footer URLnone

Each branding variable is independent, so you can set just REPORT_PRIMARY_COLOR without touching the header colors, subtitle, or footer.

TIP

Because branding is baked into the HTML at generation time, existing portal reports are not restyled when you change config values. To restyle previously uploaded sessions, regenerate the report and re-upload with refresh_reports.sh. See Report Template.

Apache-2.0 licensed (appliance subtree proprietary)