Skip to main content

Network egress

This is every outbound call the vulkro scanner can make. A scan itself makes none, and your code, file paths and findings are never sent.

VULKRO_OFFLINE=1 vulkro scan . # zero outbound calls

Automatic calls​

Two calls run on their own, in the background, and never block or change a scan.

CallWhenDestinationSendsTurn off
HeartbeatAt most once every 6 hours, and at most once an hour after a scanapi.vulkro.com/v1/heartbeatUsage fields only (see Telemetry)VULKRO_NO_HEARTBEAT=1 or VULKRO_OFFLINE=1
Lease refreshWith the heartbeat, on a signed-in machineapp.vulkro.com/api/v1/auth/device/refreshThe device token onlySame as above. The lease then lapses at its signed expiry; a .lic file needs no refresh

Calls you start​

CallTriggerDestinationSends
Sign-invulkro loginapp.vulkro.com/api (VULKRO_ACCOUNT_URL)Sign-in exchange; returns a signed lease
CVE bundlevulkro updatedist.vulkro.com/cve (VULKRO_CDN_BASE_URL)Download only; signature and SHA-256 checked
Version checkvulkro update only (skip with --no-version-check or VULKRO_NO_UPDATE_CHECK=1)dist.vulkro.com/releases/latest.jsonDownload only
Live CVE lookupVULKRO_CVE_LIVE=1 on a scanapi.osv.devName, version and ecosystem of each declared dependency
Secret validationscan --validate-secretsThe provider of each secret found (for example GitHub, Stripe, Slack)The secret, as an authenticated no-op request
Notificationsvulkro notify, scan --post-toYour Slack, Teams, Jira or PagerDuty endpointA scan summary
Rule packsvulkro rules add, rules updatedist.vulkro.com/rules (VULKRO_RULES_REGISTRY_URL)Download only; signature checked
Active probevulkro probe --base-url <url>The URL you giveTest requests (see probe)
AI featuresA cloud AI endpoint you configureYour AI providerThe prompt for that feature
Vulkro Cloudvulkro cloudYour Vulkro Cloud workspaceWhat that command sends
Extension installvulkro install-extensiondist.vulkro.com (VULKRO_VSIX_URL)Download only

The installer (install.sh) downloads the binary and the CVE bundle and sends one anonymous install ping (product, OS, version). Skip the ping with VULKRO_NO_ANALYTICS=1, or everything but the binary with VULKRO_OFFLINE=1.

Every call above is refused or skipped under VULKRO_OFFLINE=1, except a local AI model on 127.0.0.1 or localhost. See Offline mode for each command's behaviour.

Local listeners​

These accept connections on loopback only and send nothing out:

  • vulkro serve: the local console on 127.0.0.1:8723, protected by an access token.
  • vulkro mcp serve: stdio by default; --port binds 127.0.0.1.
  • vulkro lsp: stdio only.

Check it yourself​

# Linux: a network namespace with no interfaces
unshare -rn strace -f -e trace=connect vulkro scan . --offline

# macOS: watch for connect() calls
sudo dtruss -t connect -f vulkro scan . --offline

The scan should finish with no connect() to a non-loopback address. If you see one, report it to support@vulkro.com.