← Back to Feed CACHED · 2026-06-25 03:34:35 · CACHE_KEY tenable:33929
tenable:33929

PCI DSS compliance

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

A report card complaining about your other report cards

Tenable plugin 33929 is *not* a CVE. It's a Nessus Policy Compliance plugin that fires when a host has any finding that constitutes an *automatic failure* under the PCI DSS Approved Scanning Vendors Program Guide v4.0 — for example any CVSS ≥4.0 vuln, unsupported OS, internet-reachable DB, default creds, XSS, SQLi, directory traversal, SSL/TLS below 1.2, or anonymous key exchange. It applies anywhere Nessus is configured to run a PCI ASV-style policy, so 'affected version range' is meaningless — it triggers whenever a *child* finding triggers.

Tenable labels it HIGH because PCI auditors treat an automatic-failure verdict as scan-blocking. But the plugin itself fixes nothing, exploits nothing, and represents zero attacker capability. It is a *meta-finding* — a checkbox that summarizes what your other plugins already told you. Treating it as a HIGH-severity vulnerability inflates your queue, hides the real bugs underneath, and wastes the patch team's attention. The vendor severity reflects *audit risk*, not *security risk* — and noisgate scores security risk.

"This isn't a vulnerability — it's a PCI ASV compliance verdict that aggregates other findings. Fix the underlying CVEs, not this plugin."
02 · The Attack Path

1 steps from start to impact.

STEP 01

There is no attack path against plugin 33929 itself

Plugin 33929 is a Nessus reporting artifact generated locally by the scanner after correlating other plugin results. No attacker traffic ever interacts with it. Any real attack path lives in the *underlying* child findings (the SQLi, the expired TLS, the EOL OS, the default cred) that caused 33929 to trip.
Conditions required:
  • Attacker must instead target the actual child vulnerability cited inside the 33929 output
Where this breaks in practice:
  • The 'finding' has no network protocol, no service, no payload, no CWE — it cannot be weaponized
Detection/coverage: Nessus itself generates this; any ASV-tier scanner (Qualys PCI, Rapid7 InsightVM PCI policy) will produce an equivalent rollup.
03 · Intelligence Metadata

The supporting signals.

Finding typeNessus Policy Compliance plugin — not a CVE, not a vulnerability
Plugin familyPolicy Compliance / PCI DSS
CVE IDNone — this plugin has no CVE because it is not a flaw
CWENot applicable
EPSS / KEVNot applicable — no CVE exists to enumerate
Vendor severityTenable rates HIGH to reflect *PCI audit-blocking* impact, not exploitability
CVSS vectorNone published; plugin has no exploitability metric
Trigger conditionsAny CVSS ≥4.0 child finding, EOL OS, internet-reachable DB, default account, SQLi, XSS, directory traversal, HTTP response splitting, SSL/TLS <1.2, anonymous KEX, or scan interference
Affected scopeAny host scanned with a PCI ASV-aligned policy that has at least one qualifying child finding
Remediation ownerCompliance / GRC team for audit posture; vulnerability mgmt team for underlying CVEs
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to IGNORE (0.0/10)

This plugin is a PCI ASV rollup — it carries zero independent exploitability and only echoes vulnerabilities that other plugins already report. The single decisive factor: there is no underlying flaw to patch; severity belongs to the child findings, not the meta-finding.

HIGH that plugin 33929 has no CVE and no attacker-reachable surface
HIGH that Tenable's HIGH label is an audit-impact rating, not a security risk rating

Why this verdict

  • Not a vulnerability: Plugin 33929 is a *Policy Compliance* roll-up; it has no CVE, no CWE, no CVSS vector, and no protocol-level reachability. Attackers cannot exploit a Nessus reporting artifact.
  • Duplicate signal: Every condition that trips 33929 is already produced by the child plugin that caused it (e.g., a TLS 1.0 plugin, an EOL Windows plugin, a default-cred plugin). Treating both as HIGH double-counts the same risk.
  • Role multiplier — none: The 'component' is a scan policy. There is no high-value-role variant (no DC, no hypervisor, no IdP equivalent) of a Nessus policy plugin. The deployment-role floor does not apply because no deployment role exists.
  • Severity reflects audit risk, not attacker capability: Tenable's HIGH exists so PCI auditors see scan-failing findings. That is a *compliance* signal aimed at QSAs, not a *patch priority* signal aimed at vulnerability managers.

Why not higher?

It cannot be HIGH or above because there is no executable code path, no service, no CVE, and no attacker reachable surface in the plugin itself. Anything an attacker could do is captured by the child finding, which should be scored on its own merits.

Why not lower?

IGNORE *is* the floor. There is no lower bucket in the noisgate scale, and IGNORE is appropriate because the right operational response is to triage the underlying child findings, not to track 33929 as work.

05 · Compensating Control

What to do — in priority order.

  1. Suppress plugin 33929 in vulnerability dashboards — In Tenable Security Center / Tenable.io, exclude plugin family *Policy Compliance* (or specifically plugin 33929) from your VM remediation queue so analysts work the underlying CVEs instead of the meta-finding. No mitigation SLA — this is a dashboard hygiene change, do it next sprint.
  2. Route 33929 output to the GRC / PCI audit workstream — Forward the plugin's child-finding list to whoever owns PCI ASV scan submission. They need the report; the patch team does not need a duplicate HIGH ticket.
  3. Triage the underlying child findings on their own merits — Open the 33929 output, pull each cited plugin ID / CVE, and reassess those individually. The TLS 1.0 finding, the EOL OS, the SQLi — each has its own real noisgate severity.
  4. Tune your PCI ASV scan policy to your cardholder data environment scope — 33929 firing on hosts *outside* CDE scope is pure noise. Restrict the PCI policy to in-scope segments and exclude internal-only assets from ASV-grade evaluation.
What doesn't work
  • 'Patching' plugin 33929 — there is nothing to patch; the plugin re-fires the moment any qualifying child finding exists.
  • WAF / IPS rules — there is no network signature for a Nessus reporting artifact.
  • Adding the plugin to an EDR exclusion list — meaningless; it is a scanner output, not a process.
  • Disputing it with Tenable as a false positive — it is working as designed; dispute the *child* findings via the PCI-ASV Workbench if a compensating control applies.
06 · Verification

Crowdsourced verification payload.

Run this on your Tenable.sc / Nessus Manager API host (or any auditor workstation with curl + API keys) to enumerate which assets currently trip plugin 33929 and which *child* plugin IDs are actually responsible. Requires Tenable API access keys with scan-read scope. Invoke: TSC_URL=https://tsc.example.com TSC_AK=... TSC_SK=... ./check.sh

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# noisgate verifier: tenable:33929 (PCI DSS compliance rollup)
# Lists assets reporting plugin 33929 and surfaces the underlying child plugin IDs.
set -euo pipefail

: "${TSC_URL:?Set TSC_URL to https://<tenable-sc-host>}"
: "${TSC_AK:?Set TSC_AK to your access key}"
: "${TSC_SK:?Set TSC_SK to your secret key}"

AUTH="x-apikey: accesskey=${TSC_AK}; secretkey=${TSC_SK}"
PLUGIN_ID=33929

echo "[*] Querying Tenable.sc for hosts reporting plugin ${PLUGIN_ID}..."
RESP=$(curl -ksS -H "${AUTH}" \
  "${TSC_URL}/rest/analysis" \
  -H 'Content-Type: application/json' \
  -d "{\"type\":\"vuln\",\"query\":{\"tool\":\"listvuln\",\"filters\":[{\"filterName\":\"pluginID\",\"operator\":\"=\",\"value\":\"${PLUGIN_ID}\"}]},\"sourceType\":\"cumulative\"}")

COUNT=$(printf '%s' "$RESP" | grep -o '"ip"' | wc -l | tr -d ' ')

if [ "$COUNT" = "0" ]; then
  echo "[+] PATCHED  -- no hosts currently trip plugin ${PLUGIN_ID}"
  exit 0
fi

echo "[!] VULNERABLE -- ${COUNT} host(s) trip plugin ${PLUGIN_ID}"
echo "[*] Note: this is a *rollup* finding. Real work is in the child plugins it cites."
echo "[*] Pull the per-host plugin output to enumerate the underlying CVEs / plugin IDs:"
echo "     curl -ksS -H \"${AUTH}\" \"${TSC_URL}/rest/analysis\" -d '{...pluginID=${PLUGIN_ID}, tool=vulndetails...}'"
exit 1

# Exit codes: 0 = PATCHED, 1 = VULNERABLE, 2 = UNKNOWN (env / auth failure)
07 · Bottom Line

If you remember one thing.

TL;DR
Stop treating tenable:33929 as a HIGH-severity vulnerability — it isn't one. Monday morning: in Tenable.sc / Tenable.io, exclude plugin 33929 (and ideally the entire *Policy Compliance* family) from the vulnerability remediation dashboard and route its output to the PCI / GRC team where it belongs. Then open each instance, list the *child* plugin IDs cited in the output, and re-triage those on their own merits — that is where actual patch work lives. Per the noisgate mitigation SLA, an IGNORE verdict carries no mitigation deadline; per the noisgate remediation SLA, there is no patch to apply because there is no flaw — close the ticket with the rationale 'meta-finding; tracked via underlying child plugins.'

Sources

  1. Tenable plugin 33929 — PCI DSS compliance
  2. Plugin 33929 changelog
  3. Plugin 33929 dependencies
  4. Tenable blog — PCI-DSS Plugins for Nessus
  5. Tenable Community — purpose of plugin 33929
  6. Tenable Community — solution for plugin 33929
  7. PCI SSC — ASV Program Guide v4.0
  8. Tenable docs — PCI ASV Workbench
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.