A blank exam paper isn't proof you passed — it's proof the proctor couldn't see your work
Tenable plugin 108714 is not a CVE and not a software flaw. It fires when the scanner detects that something interfered with its PCI DSS ASV scan — an IPS dropping probes, a WAF rate-limiting requests, host-based protection blackholing the scanner IP, a load balancer returning canned responses, or simply too many TCP resets. The plugin flags the scan as unreliable for PCI DSS attestation purposes under PCI DSS requirement 11.3 / ASV Program Guide §7.7. There is no affected version range — it applies to any in-scope cardholder-data-environment (CDE) host where the scanner's traffic was disturbed.
Tenable's HIGH label is calibrated to the PCI auditor, not to a defender's vulnerability backlog. From an ASV's perspective HIGH is correct: a scan with interference cannot be submitted as a passing PCI report, so the QSA will reject the attestation. From a patch-management perspective the label is misleading — there is nothing to patch. The real question is whether your protective controls need a documented scanner allowlist, and whether your CDE segmentation is hiding hosts you legally owe the ASV visibility into.
4 steps from start to impact.
Scanner launches PCI ASV sweep against CDE-scoped IPs
find_service.nbin, OS fingerprinting, banner grabs) before launching the vulnerability checks.- ASV-mode scan policy enabled
- Declared in-scope IPs reachable from the scanner cloud
- Scope document frequently understates real CDE footprint
- Cloud WAF or CDN may be the only reachable layer
nessus-scanner-*.cloud.tenable.com); the ASV cloud IP ranges are published and easy to allowlist.Inline protective control intercepts probes
- Inline control with default-deny or anomaly thresholds
- Scanner source IPs not allowlisted
- Modern WAFs ship with bot signatures that match Nessus User-Agent
- Some controls only rate-limit after N requests, which still corrupts results
Scanner produces incomplete dataset
- Sufficient interference to corrupt KB items used by downstream plugins
- None — once interference exists, plugin 108714 fires deterministically
PCI attestation blocked, not host compromised
- Merchant subject to PCI DSS Level 1-4 ASV scanning obligation
- Re-scans are cheap; this is a paperwork loop, not a breach
The supporting signals.
| Plugin type | Tenable PCI DSS compliance plugin, family Policy Compliance. Not a CVE. |
|---|---|
| CVE / CWE | None — no software defect referenced |
| KEV status | Not applicable — CISA KEV only tracks exploited CVEs |
| EPSS | Not applicable — no CVE means no EPSS score |
| CVSS vector | None published; Tenable assigns a HIGH risk for PCI workflow impact, not exploitability |
| Affected products | Any host scanned with the Tenable PCI ASV policy template where scanner traffic was disturbed |
| Public exploit | N/A — this is a scan-quality flag, not an exploitable condition |
| Researcher / vendor | Tenable internal plugin; aligned to PCI SSC ASV Program Guide v3.1 §7.7 |
| First published | Plugin 108714 added by Tenable circa 2018; updated periodically with PCI ASV guide revisions |
| Real-world exposure | Common — fires routinely on perimeters protected by Cloudflare, Akamai, AWS WAF, or any tuned NGFW IPS until the scanner is allowlisted |
noisgate verdict.
The single decisive factor is that this is not a vulnerability — it is a PCI ASV scan-completeness flag with no attacker, no exploit, and no host impact. Tenable's HIGH rating is correctly calibrated to *PCI submission risk*, but for vulnerability-management triage the real-world severity is MEDIUM: it blocks an attestation deadline, not a kill chain.
Why this verdict
- No vulnerability, no exploit path: there is nothing on the affected host that an attacker can leverage. The finding is a *scanner-side* observation about its own visibility.
- PCI workflow impact is real but bounded: a rejected ASV report blocks compliance attestation, which has commercial consequences (fines, brand penalties) but no security consequence. Cost of remediation is reconfiguration, not patching.
- Role multiplier — CDE-scoped perimeter: the affected component is, by definition, the CDE perimeter; if interference is masking an actual exploitable CVE on a cardholder-data system the blast radius is regulated data exposure. This is what keeps the verdict at MEDIUM rather than LOW — you cannot prove the scan would have come back clean.
- Friction audit: zero exploit prerequisites because there is no exploit. The 'attack' is paperwork rejection, fully reversible by allowlisting the Tenable ASV IP ranges and re-running the scan.
- Installed-base context: this plugin fires on a large share of PCI ASV scans on first run; it is a *configuration hygiene* finding, not a rare critical defect.
Why not higher?
A HIGH verdict would imply real attacker leverage; there is none. Tenable's HIGH rating reflects PCI submission risk under the ASV Program Guide, which is an audit construct, not a security one. Vulnerability-management programs that auto-route HIGH findings to emergency-patch pipelines will burn cycles on a paperwork problem.
Why not lower?
LOW or IGNORE would be wrong because the finding invalidates your compliance posture until resolved, and worse, it can *mask* a genuinely exploitable CVE behind the interference — you don't know what the scanner couldn't see. Until re-scanned cleanly you cannot rule out hidden CRITICAL findings on CDE hosts.
What to do — in priority order.
- Allowlist Tenable ASV scanner source IPs end-to-end — Publish the current Tenable Cloud Sensor / PCI ASV IP ranges (see Tenable docs
tenable.com/scanner-ip-addresses) to every inline control between the internet and the CDE — edge router ACL, WAF allowlist, IPS exception, host firewall, CDN/Cloudflare rule, rate limiter. The MEDIUM verdict carries no noisgate mitigation SLA, but practically complete this within the next PCI scan window so the attestation can re-submit. - Document the allowlist in your PCI scope document — QSAs require evidence that the allowlist exists only for the ASV and does not weaken production protection. Include source IPs, expiry, change-control ticket, and the compensating monitoring control (e.g., SIEM rule alerting on non-Tenable traffic from those ranges).
- Re-run the PCI ASV scan and verify plugin 108714 is silent — Confirm the next scan returns a clean Plugin 108714 status before submitting to the ASV portal. Compare host counts and open-port counts between the interfered and clean scans — large deltas indicate the original scan was hiding real findings.
- Triage any new findings revealed by the clean re-scan — This is where the actual security work hides. Treat the delta between blocked and clean scan as a freshly discovered backlog and reassess each new CVE on its own merits.
- Disabling the IPS/WAF temporarily — removes the interference but creates an unmonitored window and may itself violate PCI 1.x / 6.6 controls.
- Whitelisting at only one layer — if CDN allowlists Tenable but the origin WAF doesn't, the scan still gets corrupted. All inline layers must agree.
- Marking 108714 as 'exception' in Tenable.io — the ASV reviewer will reject; PCI requires resolution, not suppression.
- Patching anything on the target host — there is no defect to patch on the scanned system.
Crowdsourced verification payload.
Run on the auditor / scanner-ops workstation (not the target host) to confirm whether the published Tenable ASV scanner IPs can reach a CDE-scoped target on the expected PCI ports without being rate-limited or filtered. Requires curl, nmap, and outbound network egress. Invoke as ./check_108714.sh <target-host-or-ip>.
#!/usr/bin/env bash
# noisgate verification for Tenable plugin 108714 (PCI DSS Scan Interference)
# Purpose: confirm whether an inline control is dropping/rate-limiting
# scanner-class traffic against a CDE target.
# Exit codes: 0=PATCHED (no interference), 1=VULNERABLE (interference detected), 2=UNKNOWN
set -u
TARGET="${1:-}"
if [ -z "$TARGET" ]; then
echo "usage: $0 <target-host-or-ip>" >&2
exit 2
fi
for bin in curl nmap awk grep; do
command -v "$bin" >/dev/null 2>&1 || { echo "missing dependency: $bin" >&2; exit 2; }
done
PORTS="80,443,8080,8443"
INTERFERENCE=0
REASONS=()
# 1. TCP-connect scan, look for filtered/reset patterns
NMAP_OUT=$(nmap -Pn -sT -p "$PORTS" --reason --max-retries 1 --host-timeout 60s "$TARGET" 2>/dev/null)
echo "$NMAP_OUT" | grep -Eq 'filtered|reset' && {
INTERFERENCE=1
REASONS+=("nmap reports filtered/reset on PCI ports")
}
# 2. Banner / response consistency over 10 rapid HTTPS requests
CODES=()
for i in $(seq 1 10); do
C=$(curl -ksS -o /dev/null -w '%{http_code}' --max-time 5 "https://$TARGET/" 2>/dev/null || echo "000")
CODES+=("$C")
done
UNIQ=$(printf '%s\n' "${CODES[@]}" | sort -u | wc -l)
LAST=${CODES[9]}
FIRST=${CODES[0]}
if [ "$UNIQ" -gt 2 ] || { [ "$FIRST" != "000" ] && [ "$LAST" = "000" ]; }; then
INTERFERENCE=1
REASONS+=("HTTPS response codes drift across rapid requests: ${CODES[*]}")
fi
# 3. Look for WAF / CDN block signatures
BODY=$(curl -ksS --max-time 5 -A "Mozilla/5.0 (compatible; Nessus)" "https://$TARGET/" 2>/dev/null || true)
if echo "$BODY" | grep -Eiq 'cloudflare|akamai|ray id|access denied|request blocked|attention required'; then
INTERFERENCE=1
REASONS+=("WAF / CDN block page returned to scanner-class User-Agent")
fi
if [ "$INTERFERENCE" -eq 1 ]; then
echo "VULNERABLE: scan interference detected against $TARGET"
for r in "${REASONS[@]}"; do echo " - $r"; done
exit 1
fi
echo "PATCHED: no scan interference signature detected against $TARGET"
exit 0
If you remember one thing.
Sources
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.