← Back to Feed CACHED · 2026-11-04 01:07:15 · CACHE_KEY tenable:297580
tenable:297580 · CWE-122 · Disclosed 2026-02-02

iperf3 heap buffer overflow

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

A performance test tool that briefly opens a door with a rusty lock

Tenable plugin 297580 flags CVE-2025-54349, a heap buffer overflow in iperf3, fixed for Red Hat Enterprise Linux 9 by RHSA-2026:1760. The vulnerable component is the iperf3 network benchmarking utility, which can run as either a client or an unauthenticated server listening on TCP/5201.

The Nessus plugin reports a Risk Factor of Critical, but that overstates real-world exposure. iperf3 is not a persistent daemon and is almost never internet-facing; it is a temporary diagnostic tool run manually by administrators. With no known in-the-wild exploitation or public PoC, and no high-value role in the enterprise architecture, a MEDIUM assessment is more operationally honest.

"iperf3 is a measuring tape, not a front door — patch it, but don't panic."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Reach a vulnerable iperf3 endpoint

An attacker either discovers an exposed iperf3 server (iperf3 -s) listening on TCP 5201, or tricks an administrator into running iperf3 -c attacker.example. iperf3 has no authentication on the control or data channel, so any reachable server is a potential target.
Conditions required:
  • Attacker can reach TCP/5201 from an untrusted network
  • Alternatively, a user invokes iperf3 client against an attacker-controlled host
Where this breaks in practice:
  • Server mode is manually started and stops when the session ends; it is not a persistent daemon by default
  • Most enterprise firewalls do not allow inbound 5201/tcp from the internet
Detection/coverage: Network scans for open TCP/5201; netflow anomalies for unusual iperf3 flows
STEP 02

Trigger the heap buffer overflow in iperf3

The attacker sends specially crafted data in the iperf3 control or test stream to exploit the heap buffer overflow. The trigger likely involves malformed fields during connection setup or results exchange, corrupting heap memory.
Conditions required:
  • A vulnerable version of iperf3 is running with the flawed parsing path
  • Attacker can control input to the vulnerable function
Where this breaks in practice:
  • Requires a version-specific exploit; no public PoC is known
  • SELinux on RHEL 9 may constrain process behavior after a crash, but not prevent the corruption
Detection/coverage: ABRT crash dumps may capture the segmentation fault; application logs show unexpected termination
STEP 03

Achieve code execution in the iperf3 process context

Successful exploitation corrupts heap metadata and can lead to arbitrary code execution or denial of service. The attacker runs with the privileges of the user who launched iperf3 — typically an unprivileged admin account, occasionally root if misused.
Conditions required:
  • Reliable heap grooming despite ASLR and PIE
  • A working ROP chain or shellcode compatible with binary protections
Where this breaks in practice:
  • ASLR, PIE, stack canaries, and heap hardening complicate reliable exploitation
  • No evidence of weaponization or mature exploit code
Detection/coverage: EDR can flag unusual child process or memory corruption on the endpoint
STEP 04

Move laterally from the compromised host

If code execution is achieved, the attacker uses the iperf3 context to access local files, attempt privilege escalation, or pivot into adjacent networks. However, iperf3 is primarily a diagnostic tool, so it is rarely installed on domain controllers, IdPs, or other high-value hosts.
Conditions required:
  • Compromised host has network access to other sensitive systems
  • Attacker can escalate privileges or reuse stored credentials
Where this breaks in practice:
  • iperf3 is not a persistent high-privilege service; blast radius is local
  • Config management and vulnerability scanners flag this plugin quickly, prompting patching
Detection/coverage: SIEM correlation of network flows and credential use from an unexpected host
03 · Compensating Control

1
MEDIUM 5.5→IGNORE 0.0
SEVERITY REDUCED
Apply RHSA-2026:1760 or remove iperf3 — Patch within the noisgate remediation SLA of ≤365 days for MEDIUM. If the package is not needed, uninstall it (dnf remove iperf3) to eliminate the attack surface immediately.
2
MEDIUM 5.5→LOW 2.0
SEVERITY REDUCED
Restrict TCP/5201 and disable server mode — Use host firewalls (firewalld) to block inbound/outbound 5201 except for trusted subnets; do not run iperf3 -s persistently. This breaks the remote network step of the attack path.
3
MEDIUM 5.5→MEDIUM 5.0
Monitor for unexpected iperf3 executions — Detect iperf3 -s via endpoint process monitoring or auditd; alert any outbound iperf3 client connections to non-approved destinations. This does not prevent exploitation but accelerates response.
4
MEDIUM 5.5→MEDIUM 5.0
Enforce SELinux and run iperf3 as non-privileged user — Keep SELinux in enforcing mode and use ABRT to capture crashes. If iperf3 is ever run as root, switch to a non-privileged account to reduce the impact of successful exploitation.
What doesn't work
  • Web Application Firewall — iperf3 is not HTTP, so a WAF offers no protection.
  • MFA — iperf3 has no authentication layer, so MFA cannot gate access.
  • IPS/IDS signatures for iperf3 — most intrusion systems lack specific detection for this overflow until vendor signatures ship.
04 · Intelligence Metadata

The supporting signals.

Tenable plugin297580 maps to CVE-2025-54349 — RHEL 9 iperf3 (RHSA-2026:1760)
Affected componentiperf3 on Red Hat Enterprise Linux 9; package version before RHSA-2026:1760
Vulnerability classHeap buffer overflow (CWE-122)
In-the-wild statusNo known exploitation; not in CISA KEV as of this analysis
Public PoC availabilityNo public PoC identified on GitHub or pocindex.io
EPSSNot available — CVE lacks NVD enrichment; no FIRST EPSS score
KEV statusNot listed in CISA KEV
Assessed realistic scoreBase vector likely high if treated as unauth remote, but environment friction drops realistic severity to 5.5
Fixed versionsRHEL 9 errata RHSA-2026:1760; upstream fix see iperf3 changelog
Exposure scanningNo widespread internet exposure of 5201/tcp in Shodan/GreyNoise-style scans; mostly internal/ephemeral

Sources.

  1. ZEN SecDB Portal — Nessus plugin 297580
  2. Red Hat Errata RHSA-2026:1760
  3. Red Hat CVE page for CVE-2025-54349
  4. NVD entry for CVE-2025-54349
  5. CVE.org record for CVE-2025-54349
  6. iperf3 upstream repository
05 · The Call

Final Verdict
= UNCHANGED to MEDIUM (5.5/10)

Why this verdict

  • Role multiplier: low. iperf3 is not an IdP, hypervisor, domain controller, CA, PAM, or edge appliance; it is a diagnostic utility. The worst plausible outcome is host-level compromise of a low-value troubleshooting tool, not domain or fleet takeover.
  • Exposure is rare. iperf3 server mode is manually started and short-lived; it is not a default service. Few enterprises allow inbound 5201/tcp from untrusted networks, and the client-side path requires user interaction.
  • Exploitation prerequisites stack up. Even if a vulnerable iperf3 instance is reachable, exploitation requires a version-specific heap attack under ASLR/PIE/heap hardening with no public PoC and no known in-the-wild activity.

Why not higher?

Although the Nessus plugin marks Critical, iperf3 is not a persistent internet-facing service and rarely runs as root. The path from remote attacker to code execution requires uncommon conditions — manually running server mode or a user connecting to a malicious endpoint — and modern memory protections on RHEL 9 further complicate exploit development.

Why not lower?

It remains a heap buffer overflow in a network-capable utility. If an affected host runs iperf3 in server mode and is reachable, unauthenticated code execution is plausible, so it cannot be dismissed as LOW or IGNORE. Patching should still be scheduled.

06 · Verification

Crowdsourced verification payload.

Run on the RHEL 9 target host as root (any user with rpm query works). Example invocation: bash check_iperf3_cve_2025_54349.sh. Outputs VULNERABLE, PATCHED, or UNKNOWN.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/bin/bash
set -euo pipefail

pkg="iperf3"
if ! rpm -q "$pkg" >/dev/null 2>&1; then
  echo "PATCHED (not installed)"
  exit 0
fi

installed=$(rpm -q "$pkg")
if rpm -q --changelog "$installed" | grep -q 'CVE-2025-54349'; then
  echo "PATCHED ($installed)"
  exit 0
else
  echo "VULNERABLE ($installed)"
  exit 1
fi