← Back to Feed CACHED · 2026-09-06 07:33:17 · CACHE_KEY CVE-2026-86090
CVE-2026-86090 · CWE-862 · Disclosed 2026-09-04

ntopng before 6.7.260717 fails to perform authorization checks in the delete endpoints and recipients REST…

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

Like a night-shift janitor unplugging the security cameras — annoying, recoverable, but only if someone notices

CVE-2026-86090 is a missing-authorization flaw in ntopng's REST v2 API, specifically in the POST /lua/rest/v2/delete/endpoints.lua and POST /lua/rest/v2/delete/recipients.lua handlers. Any authenticated user — even one with the lowest privilege tier — can call these endpoints to irreversibly delete all configured notification endpoints and recipients. The result: ntopng continues monitoring traffic, but every alert it would normally fire goes nowhere. All versions before 6.7.260717 are affected.

The vendor scored this HIGH at 7.1, and on paper the CVSS vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H) is fair *if* you treat ntopng as internet-facing and as the sole alerting system. In practice, neither is usually true. ntopng is overwhelmingly deployed on internal management VLANs, requires valid credentials to reach the API, delivers no code execution or data exfiltration, and sits alongside EDR, SIEM, and IDS/IPS in any mature enterprise stack. The real-world severity is closer to MEDIUM once you factor in attacker position, recoverability (re-creating notification configs is manual but straightforward), and the limited blast radius of silencing one supplementary monitor.

"Auth-required alert-silencing bug in a supplementary monitor — disruptive, not catastrophic."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Obtain low-privilege ntopng credentials

The attacker needs a valid, authenticated session on the ntopng web UI. This could come from credential stuffing, phishing an operator, or reusing credentials found elsewhere on the internal network. ntopng supports local accounts and LDAP; either path yields a session cookie sufficient for REST API calls.
Conditions required:
  • Valid ntopng user account (any role)
  • Network access to ntopng web interface (default port 3000)
Where this breaks in practice:
  • ntopng is almost never exposed to the internet; it runs on an internal management VLAN or localhost
  • User population is small — typically only NOC/SOC staff have accounts
  • MFA is not natively supported but reverse-proxy MFA would block this
Detection/coverage: Failed login attempts visible in ntopng logs; brute-force detectable by SIEM correlation on auth events.
STEP 02

Call delete endpoints REST v2 handler

The attacker issues POST /lua/rest/v2/delete/endpoints.lua with the appropriate JSON body listing all endpoint IDs. No admin role check is performed on this handler. The request deletes every configured notification endpoint (email, Slack, webhook, syslog forward, etc.).
Conditions required:
  • Authenticated session from Step 1
  • Knowledge of endpoint IDs (enumerable via GET endpoints list, also likely unprotected)
Where this breaks in practice:
  • Attacker must know or enumerate endpoint IDs first
  • A WAF or API gateway with method/path allowlisting would block non-admin DELETE-semantics calls
Detection/coverage: ntopng access logs will show the POST; a custom SIEM rule on /rest/v2/delete/ paths would catch this.
STEP 03

Call delete recipients REST v2 handler

The attacker issues POST /lua/rest/v2/delete/recipients.lua to remove all recipient configurations. With both endpoints and recipients deleted, ntopng's alerting pipeline is completely severed — alerts still generate internally but no delivery channel exists.
Conditions required:
  • Authenticated session
  • Endpoints already deleted or recipients targeted independently
Where this breaks in practice:
  • Same friction as Step 2
  • Deletion is logged in ntopng's internal event system if audit logging is enabled
Detection/coverage: Same detection as Step 2.
STEP 04

Conduct follow-on attack under cover of silence

With ntopng alerts silenced, the attacker (or a collaborating actor) conducts lateral movement, data exfiltration, or other network-layer activity that ntopng would normally flag. The value of this step depends entirely on whether ntopng is the *sole* source of network-layer alerting — in most enterprises, it is not.
Conditions required:
  • ntopng is the primary or sole network alerting system
  • No overlapping detection from IDS/IPS, EDR, or SIEM
Where this breaks in practice:
  • Enterprises with defense-in-depth have multiple overlapping detection layers
  • EDR and SIEM continue to operate independently of ntopng
  • Network IDS (Suricata, Zeek) provides parallel visibility
Detection/coverage: EDR, SIEM, and standalone IDS remain fully operational and would detect follow-on activity independently.
03 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationNo known exploitation in the wild. Not listed on CISA KEV. No campaign reports as of 2026-09-06.
Proof-of-ConceptNo public PoC found on GitHub or exploit-db. Exploitation is trivial — a single authenticated curl POST — so weaponization is near-zero effort.
EPSS Score0.00249 (bottom quartile) — very low predicted exploitation probability.
KEV StatusNot listed. No CISA KEV entry as of 2026-09-06.
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H — network-reachable but requires authentication. No confidentiality impact; integrity is low (config deletion); availability is high (alert pipeline destroyed).
Affected VersionsAll ntopng versions before 6.7.260717 (Community, Professional, and Enterprise editions).
Fixed Version6.7.260717 — patch commit 7d830f3 adds admin-role checks to the two Lua handlers.
Scanning/Exposure DataNo specific Shodan/Censys ntopng exposure census found. ntopng defaults to port 3000 and is overwhelmingly deployed on internal/management networks. Internet-facing instances are rare.
Disclosure Date2026-09-04 — disclosed via GitHub Security Advisory GHSA-m22w-f647-vx88.
ReporterGeorge Chen — credited in the GHSA advisory.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to MEDIUM (5.5/10)

The single most decisive downgrade factor is that exploitation requires authenticated access to an application that is overwhelmingly deployed on internal management networks with a small user population, compounding two independent friction layers before any impact is reached. The impact itself — silencing one supplementary monitoring tool's alert delivery — is operationally disruptive but recoverable, with no code execution, no data breach, and no lateral-movement enablement.

HIGH Vulnerability mechanics and affected versions
HIGH Exploitability assessment (trivial once authenticated)
MEDIUM Installed-base share and typical deployment posture (based on product documentation, not census data)

Why this verdict

  • Authentication barrier: PR:L means a valid ntopng account is required. ntopng user populations are small (NOC/SOC staff); this is not a self-registration SaaS app. Credential acquisition is a prerequisite that gates the entire chain.
  • Internal-only exposure: ntopng is a network traffic analyzer that binds to port 3000 on management interfaces. Virtually no enterprise exposes it to the internet. The attacker must already be on the internal network or VPN — meaning this is a post-initial-access bug, not an entry point.
  • No code execution or data breach: The impact ceiling is deletion of notification configs. There is zero confidentiality impact (C:N), no shell, no privilege escalation on the host. The CVSS Availability:High rating reflects alerting disruption, not service destruction — ntopng itself keeps running.
  • Recoverable impact: Deleted notification endpoints and recipients can be manually re-created by an admin. There is no persistent backdoor, no data corruption, no cryptographic material compromise.
  • Role multiplier: ntopng occupies a *supplementary network visibility* role, not a primary SIEM/detection-plane role. In the high-value-role catalog, the detection plane entry names Splunk, Elastic SIEM, Sentinel, and QRadar — ntopng is a traffic analyzer that may feed these systems but is not itself the authoritative alert/detection platform. Even if ntopng's alerts are silenced, EDR, IDS/IPS, and SIEM continue independently. The blast radius is limited to one monitoring tool's notification pipeline, not the enterprise detection stack. This does NOT trigger the detection-plane floor.

Why not higher?

To warrant HIGH, we would need either unauthenticated access, code execution, or a scenario where ntopng is the sole detection system *and* internet-facing. None of these apply. The authenticated-only, internal-network, config-deletion-only profile places this firmly below the HIGH threshold. No KEV listing, no active exploitation, and an EPSS in the bottom quartile further confirm that real-world risk does not justify HIGH.

Why not lower?

Despite the friction, the exploitation is trivially easy once authenticated (a single POST request), the impact is operationally meaningful (complete alert silencing), and ntopng *is* part of the security monitoring stack even if supplementary. A disgruntled or compromised low-privilege operator could weaponize this in seconds. LOW would understate the operational disruption potential.

05 · Compensating Control

What to do — in priority order.

  1. Restrict REST v2 delete paths at the reverse proxy / API gateway — Add an ACL or WAF rule that blocks POST requests to /lua/rest/v2/delete/endpoints.lua and /lua/rest/v2/delete/recipients.lua for all sessions except those from designated admin IPs. This is the fastest compensating control and should be deployed within the MEDIUM remediation window.
  2. Enable ntopng access logging and SIEM ingestion — Ensure ntopng's HTTP access logs are forwarded to your SIEM. Create a detection rule for any POST to /rest/v2/delete/ paths. This provides after-the-fact detection if the path-block isn't feasible.
  3. Reduce ntopng user population and enforce least privilege — Audit ntopng local and LDAP-linked accounts. Remove any accounts that don't require interactive access. Where possible, restrict non-admin users to read-only interfaces.
  4. Place ntopng behind MFA-enforced reverse proxy — ntopng doesn't natively support MFA. Fronting it with an SSO/MFA reverse proxy (e.g., Authelia, Keycloak, Azure AD App Proxy) raises the credential-acquisition bar significantly.
What doesn't work
  • Network segmentation alone — if the attacker already has internal access and valid ntopng credentials, VLAN isolation of the monitoring network doesn't prevent API calls from an authorized user session.
  • ntopng's built-in user roles — the entire bug is that the delete handlers *ignore* user roles, so configuring users as non-admin within ntopng provides zero protection until you patch.
06 · Verification

Crowdsourced verification payload.

Run this on the ntopng host or any machine that can reach the ntopng web UI. Requires curl and jq. Example: bash check_cve_2026_86090.sh https://ntopng.internal:3000 admin your_password. No root required — it only reads the version endpoint.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check_cve_2026_86090.sh — Detect ntopng versions vulnerable to CVE-2026-86090
# Usage: bash check_cve_2026_86090.sh <NTOPNG_BASE_URL> <USERNAME> <PASSWORD>
# Exit codes: 1=VULNERABLE, 0=PATCHED, 2=UNKNOWN

set -euo pipefail

BASE_URL="${1:?Usage: $0 <base_url> <user> <pass>}"
USER="${2:?}"
PASS="${3:?}"

# Authenticate and grab session cookie
COOKIE_JAR=$(mktemp)
trap "rm -f $COOKIE_JAR" EXIT

curl -sk -c "$COOKIE_JAR" -d "username=${USER}&password=${PASS}" \
  "${BASE_URL}/authorize.html" -o /dev/null

# Fetch ntopng version via REST API
VERSION_JSON=$(curl -sk -b "$COOKIE_JAR" "${BASE_URL}/lua/rest/v2/get/ntopng/info.lua" 2>/dev/null || true)

if [ -z "$VERSION_JSON" ]; then
  echo "UNKNOWN — could not retrieve version from ${BASE_URL}"
  exit 2
fi

VERSION=$(echo "$VERSION_JSON" | jq -r '.rsp.version // empty' 2>/dev/null || true)

if [ -z "$VERSION" ]; then
  # Fallback: try parsing from the login page
  VERSION=$(curl -sk "${BASE_URL}" | grep -oP 'v\.\K[0-9]+\.[0-9]+\.[0-9]+' | head -1 || true)
fi

if [ -z "$VERSION" ]; then
  echo "UNKNOWN — could not parse ntopng version"
  exit 2
fi

echo "Detected ntopng version: ${VERSION}"

# Fixed version: 6.7.260717
# Compare: major.minor.patch
IFS='.' read -r MAJ MIN PATCH <<< "$VERSION"

FIX_MAJ=6
FIX_MIN=7
FIX_PATCH=260717

if [ "$MAJ" -gt "$FIX_MAJ" ] 2>/dev/null; then
  echo "PATCHED — version ${VERSION} is above the fix."
  exit 0
elif [ "$MAJ" -eq "$FIX_MAJ" ] && [ "$MIN" -gt "$FIX_MIN" ] 2>/dev/null; then
  echo "PATCHED — version ${VERSION} is above the fix."
  exit 0
elif [ "$MAJ" -eq "$FIX_MAJ" ] && [ "$MIN" -eq "$FIX_MIN" ] && [ "$PATCH" -ge "$FIX_PATCH" ] 2>/dev/null; then
  echo "PATCHED — version ${VERSION} includes the fix (>= 6.7.260717)."
  exit 0
else
  echo "VULNERABLE — version ${VERSION} is below the fixed version 6.7.260717."
  exit 1
fi
07 · Bottom Line

If you remember one thing.

TL;DR
This is a MEDIUM (5.5) finding per the noisgate reassessment. There is no noisgate mitigation SLA for MEDIUM — go straight to the 365-day noisgate remediation SLA and schedule the ntopng upgrade to 6.7.260717+ within your normal patch cycle. That said, given the trivial exploitability once authenticated and the operational nuisance of silent alert pipelines, pragmatically aim to patch within 90 days if ntopng is part of your active SOC workflow. In the interim, restrict the REST v2 delete paths at your reverse proxy or API gateway, audit ntopng accounts to remove unnecessary users, and ensure ntopng access logs are flowing into your SIEM so you'd spot the POST if someone tries it. No emergency weekend patch session required.

Sources

  1. THREATINT CVE-2026-86090 Detail
  2. OffSeq Threat Radar — CVE-2026-86090
  3. VulDB — CVE-2026-86090
  4. TheHackerWire — CVE-2026-86090
  5. GitHub — ntopng repository
  6. ntop.org — Official Site
  7. GitHub Patch Commit 7d830f3
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.