A media player echoes your heap back to a stranger's server like an unwitting courier reading aloud from a sealed envelope
CVE-2026-73324 is a heap out-of-bounds read in VLC media player's RealRTSP module (modules/access/rtsp/access.c and modules/access/rtsp/rtsp.c). The RtspReadLine function copies each server response line into a 4,096-byte buffer using strncpy with the full buffer length, which omits the null terminator when the source line fills or exceeds the destination. The rtsp_get function then passes that unterminated buffer to strdup, which measures length past the allocation boundary, copying adjacent heap bytes until it hits an incidental zero byte. Because the over-read data ends up stored as the RTSP Session identifier, VLC dutifully sends those leaked heap bytes back to the malicious server on every subsequent request. Affected versions are 3.0.0 through 3.0.23 — every current official build. No patch exists as of 2026-09-12.
The vendor's MEDIUM / 6.5 score is directionally correct but slightly generous for most enterprise environments. The CVSS vector (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N) correctly reflects the user-interaction requirement and confidentiality-only impact. However, the attack surface is narrowed further by the fact that it requires a user to open a realrtsp:// URI — a legacy protocol almost no enterprise workflow depends on. The leaked data is unstructured heap content, not targeted credential theft. In practice, this is an opportunistic info-disclosure primitive that is hard to weaponize into anything beyond raw memory bytes, making the real-world severity slightly below the vendor's label.
4 steps from start to impact.
Attacker hosts malicious RealRTSP server
- Attacker controls or can stand up an internet-reachable RTSP server
- Enterprise egress firewalls commonly block non-HTTP outbound ports including 554
- Proxy-only environments will not permit direct RTSP connections
Victim opens a realrtsp:// URI
realrtsp:// link — via a phishing email, malicious web page, or a crafted .m3u/.xspf playlist file. VLC must be the handler for the URI scheme. This is the critical user-interaction gate in the chain.- VLC 3.0.0–3.0.23 installed with RealRTSP module enabled (default in official builds)
- User clicks/opens a malicious realrtsp:// URI or playlist containing one
- RealRTSP is a legacy protocol — almost zero legitimate enterprise use cases generate these URIs
- Email gateways strip or sandbox uncommon URI schemes
- Browser URL handlers typically prompt before launching external applications
- Security-aware users are unlikely to click unfamiliar streaming links
VLC connects and receives oversized Session header
RtspReadLine copies the server's response line into a 4,096-byte stack-allocated buffer via strncpy. Because the source line is ≥4,096 bytes, no null terminator is written. The buffer is then passed to strdup in rtsp_get, which reads past the buffer boundary into adjacent heap memory.- Network path exists between victim and attacker's RTSP server
- No network-level inspection truncates or rejects the oversized RTSP response
- ASLR and heap randomization make the content of leaked bytes unpredictable
- Modern allocators (jemalloc, tcmalloc) may place guard pages that cause a crash before significant leakage
Heap bytes exfiltrated as session identifier
- Connection remains open long enough for at least one subsequent RTSP request
- Leaked content is raw heap — the attacker cannot target specific data structures or credentials
- Useful secrets (tokens, passwords) appearing in VLC's heap is coincidental, not guaranteed
- Each connection yields one leak window; repeated exploitation requires repeated user interaction
The supporting signals.
| In-the-Wild Exploitation | None confirmed. Not listed on CISA KEV. No campaigns observed as of 2026-09-12. |
|---|---|
| Proof-of-Concept | No public PoC. VulnCheck notes that "a single playlist entry naming a realrtsp URL is sufficient" to trigger the bug, making PoC development trivial for anyone with the advisory details. |
| EPSS Score | 0.00332 (~0.3 percentile) — extremely low predicted exploitation probability. |
| KEV Status | Not listed. No CISA KEV entry as of 2026-09-12. |
| CVSS Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N (6.5 MEDIUM). CVSS v4: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N (6.9). Key: UI:R (user must click), C:H (confidentiality high), I:N/A:N (no integrity or availability impact). |
| Affected Versions | VLC media player 3.0.0 through 3.0.23 (all current official builds). RealRTSP module is enabled by default. |
| Fixed Version | None available. VLC 3.0.23 remains the latest release. No commit or pre-release fix identified. |
| Scanning / Exposure | VLC is a client-side desktop application — not discoverable via Shodan/Censys. Exposure is measured by install base. VLC has ~3.5 billion cumulative downloads, but enterprise-managed deployments are a fraction of that. |
| Disclosure Date | 2026-09-09 — disclosed publicly 3 days ago. |
| Researcher | Fabian Wahle of Hap Security. Also credited with CVE-2026-56711 (heap OOB write via crafted PNG, CVSS 8.8), disclosed simultaneously. |
noisgate verdict.
The single most decisive factor is the mandatory user interaction with a legacy protocol: exploitation requires a user to actively open a realrtsp:// URI — a near-extinct protocol scheme with effectively zero legitimate enterprise traffic — and the payoff is unstructured heap bytes, not code execution. This narrows the reachable population and caps the blast radius at a single workstation's memory, well below the threshold for HIGH.
Why this verdict
- User-interaction gate on a dead protocol: The attack requires a user to click a
realrtsp://URI. RealRTSP (Real Networks' proprietary RTSP variant) has been functionally obsolete for over a decade. The probability of an enterprise user encountering a legitimate — let alone malicious — realrtsp link in a normal workflow is near zero. - Read-only primitive with uncontrolled output: CWE-125 OOB read yields raw heap bytes. The attacker cannot select which memory regions to read, cannot achieve code execution, and cannot pivot from disclosure to write. Weaponizing random heap content into credential theft requires coincidental heap layout.
- Role multiplier: VLC is a workstation application, not a high-value-role component. VLC does not run on domain controllers, hypervisors, CI/CD servers, backup infrastructure, or network edge appliances in any standard deployment. It runs as a regular-user process on desktops. Blast radius is strictly single-host, single-user — no domain, fleet, or supply-chain escalation path exists. This means no high-value-role floor applies.
- No exploitation evidence or PoC amplifier: EPSS at 0.33%, no KEV listing, no public PoC, no observed campaigns. The trivial PoC bar (just serve a long header) is offset by the low value of the resulting leak.
- Egress filtering friction: Enterprise networks with proxy-only egress or port-restricted firewalls block direct RTSP connections, further reducing the reachable population.
Why not higher?
Upgrading to HIGH would require either a code-execution primitive, active exploitation, or a high-value deployment role. This CVE delivers none of those: it is a read-only heap disclosure on a desktop media player via a legacy protocol, with no PoC in the wild and an EPSS in the bottom 1%. The blast radius is capped at one workstation's heap — there is no lateral movement or privilege escalation path.
Why not lower?
Despite the friction, the vulnerability is real, trivial to trigger once a user clicks the link, and no patch exists. VLC's massive install base means some fraction of enterprise endpoints will have it. The CVSS C:H rating is warranted — the heap leak is genuine and exfiltrated to the attacker. Dropping to LOW would understate the risk for organizations that cannot enforce egress filtering or URI-scheme blocking.
What to do — in priority order.
- Block or unregister the realrtsp:// URI scheme — Remove VLC's handler registration for
realrtsp://on managed endpoints via GPO (Windows) orxdg-mime/ Launch Services (Linux/macOS). This kills the attack chain at step 2 with zero operational impact, since no legitimate workflow uses this scheme. No mitigation SLA applies at MEDIUM — go straight to the 365-day remediation window, but this control is free and should be deployed proactively. - Block outbound RTSP (port 554) at the perimeter — If not already blocked, add an egress firewall rule denying TCP/554 outbound. This prevents VLC from reaching attacker-controlled RTSP servers even if the URI handler fires. Most enterprises already block this; verify your rule set.
- Deploy email gateway rules to strip realrtsp:// URIs — Configure your email security gateway (Proofpoint, Mimecast, Microsoft Defender for O365) to quarantine or defang messages containing
realrtsp://links or.m3u/.xspfattachments referencing them. - Pin VLC version and prepare for rapid update — Use your software management tool (SCCM, Intune, Munki) to inventory all VLC 3.0.x installations. When VideoLAN releases 3.0.24 (or a 4.x build with the fix), push it within the 365-day noisgate remediation SLA.
- Endpoint AV/EDR signature scanning — this is not a malware drop or shellcode execution; it is a protocol-level memory disclosure. No EDR will flag VLC reading its own heap.
- Web proxy URL filtering — proxies inspect HTTP/HTTPS traffic; RTSP uses a different protocol and port. A web proxy will not intercept or block
realrtsp://connections unless it has explicit RTSP protocol support. - ASLR / DEP — these mitigations protect against code execution, not information disclosure. The OOB read succeeds regardless of ASLR state.
Crowdsourced verification payload.
Run on each target host (Linux, macOS, or WSL on Windows) to check the installed VLC version. No special privileges required. Example: bash check_vlc_cve_2026_73324.sh
#!/usr/bin/env bash
# check_vlc_cve_2026_73324.sh
# Checks whether the installed VLC version is vulnerable to CVE-2026-73324
# Affected: VLC 3.0.0 through 3.0.23
# Exit codes: 0 = PATCHED/not installed, 1 = VULNERABLE, 2 = UNKNOWN
set -euo pipefail
get_vlc_version() {
if command -v vlc >/dev/null 2>&1; then
vlc --version 2>/dev/null | head -1 | grep -oP '[0-9]+\.[0-9]+\.[0-9]+' | head -1
elif command -v flatpak >/dev/null 2>&1 && flatpak list 2>/dev/null | grep -qi vlc; then
flatpak run org.videolan.VLC --version 2>/dev/null | head -1 | grep -oP '[0-9]+\.[0-9]+\.[0-9]+' | head -1
elif [ -x "/Applications/VLC.app/Contents/MacOS/VLC" ]; then
/Applications/VLC.app/Contents/MacOS/VLC --version 2>/dev/null | head -1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1
else
echo ""
fi
}
VERSION=$(get_vlc_version)
if [ -z "$VERSION" ]; then
echo "PATCHED — VLC not found on this host."
exit 0
fi
MAJOR=$(echo "$VERSION" | cut -d. -f1)
MINOR=$(echo "$VERSION" | cut -d. -f2)
PATCH=$(echo "$VERSION" | cut -d. -f3)
echo "Detected VLC version: $VERSION"
if [ "$MAJOR" -eq 3 ] && [ "$MINOR" -eq 0 ] && [ "$PATCH" -ge 0 ] && [ "$PATCH" -le 23 ]; then
echo "VULNERABLE — VLC $VERSION is in the affected range (3.0.0–3.0.23) for CVE-2026-73324."
exit 1
elif [ "$MAJOR" -eq 3 ] && [ "$MINOR" -eq 0 ] && [ "$PATCH" -ge 24 ]; then
echo "PATCHED — VLC $VERSION is above 3.0.23."
exit 0
elif [ "$MAJOR" -ge 4 ]; then
echo "UNKNOWN — VLC $VERSION is a 4.x build; verify RealRTSP module status independently."
exit 2
else
echo "PATCHED — VLC $VERSION predates the 3.0.x affected range or is unaffected."
exit 0
fiIf you remember one thing.
realrtsp:// URI scheme on managed endpoints via GPO or MDM this week, and confirm your egress firewall blocks port 554 outbound. These two actions eliminate the attack chain entirely at zero operational cost. Inventory all VLC 3.0.x installs now so you are ready to push 3.0.24 (or newer) the moment VideoLAN ships it. Do not escalate this above your normal patching cadence — there is no active exploitation, no public PoC, and the blast radius is limited to opportunistic heap disclosure on a single workstation.Sources
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.