Someone left a skeleton key under the doormat, but the door is inside a locked house that almost nobody lives in
CVE-2026-82533 is an authentication bypass in DeepSeek Harness, a Python client library (pip install deepseek-harness) for DeepSeek V4-Pro/V4-Flash models. Versions before 0.1.2-alpha.1 expose a local HTTP control-plane API that validates the client-supplied Host header instead of the actual TCP connection origin (CWE-807). An attacker who can trick a user into visiting a malicious page while the harness is running locally can spoof the Host header via DNS rebinding or similar browser-mediated attacks, bypassing authentication entirely. This grants privileged command invocation, policy escalation to unrestricted execution, access to stored conversation histories, and full agent control. The fix is in commit 3e24087.
The vendor rates this CRITICAL at 9.6 — and the auth bypass mechanism is genuinely poor engineering. But the severity label wildly overstates the real-world risk. This is an alpha-stage developer tool with ~15,000 total PyPI downloads, listening on localhost only, requiring user interaction (the victim must click a link while the harness process is active). The blast radius caps at a single developer's AI agent session and chat history. There is no lateral movement, no credential harvesting, no domain-wide impact. The CVSS vector's S:C (Changed scope) is defensible in theory — the attacker crosses from browser context to local agent — but the practical population at risk is vanishingly small. This is a textbook case of CVSS inflation on a niche tool.
4 steps from start to impact.
Victim runs DeepSeek Harness locally
- DeepSeek Harness < 0.1.2-alpha.1 installed and running
- Local HTTP control-plane API is listening
- Only ~15K total PyPI installs; active concurrent instances are a tiny fraction of that
- Alpha-stage software — few production or persistent deployments
- Process must be running at the moment of attack
Attacker delivers malicious page to victim's browser
- Victim visits attacker-controlled or compromised web page
- Victim's browser must not block the rebinding or localhost request
- Requires social engineering or watering-hole to get the click
- Modern browsers increasingly restrict localhost access from remote origins
- DNS rebinding requires attacker-controlled DNS infrastructure and timing
Host header spoofing bypasses authentication
Host header value to determine if the request is legitimate, rather than validating the TCP source address. The attacker's rebinding payload sends requests with a trusted Host value (e.g., 127.0.0.1 or localhost), passing the check. No credentials are needed.- API validates Host header only (CWE-807)
- DNS rebinding or CORS misconfiguration allows the spoofed request to land
- Some local firewalls or endpoint agents may block unexpected localhost connections from browser context
Privileged agent control achieved
- Successful Host header bypass from step 3
- Blast radius is a single user's AI agent session and chat logs
- No pivot to network, AD, or other infrastructure
- Data value depends entirely on what the developer discussed with the model
The supporting signals.
| In-the-Wild Exploitation | No known exploitation. Not listed in CISA KEV. No campaigns or threat actor usage reported as of 2026-09-10. |
|---|---|
| Proof of Concept | None public. No PoC repositories found on GitHub or Exploit-DB. The attack requires DNS rebinding infrastructure, raising the bar for casual reproduction. |
| EPSS | 0.00416 (0.416%) — 35th percentile. Well below the threshold that typically indicates near-term exploitation. |
| KEV Status | Not listed. No CISA KEV entry as of 2026-09-10. |
| CVSS Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H — Vendor score 9.6. The AV:N is technically accurate (browser-mediated) but misleading since the target API is localhost-only. UI:R correctly reflects required user interaction. |
| Affected Versions | DeepSeek Harness < 0.1.2-alpha.1 (all prior alpha releases) |
| Fixed Version | 0.1.2-alpha.1 (commit 3e24087) |
| Installed Base | ~15,000 total PyPI downloads per pepy.tech. Version 0.2.0 accounts for 78% of installs. Extremely niche; concurrent running instances likely number in the low hundreds at most. |
| Disclosure Date | 2026-09-08 — 2 days ago |
| Reporter / Advisory | GHSA-8m2g-8cgm-3vcp. Maintainer: Henry Zhang (CyberWizard). No credited external researcher. |
noisgate verdict.
The single most decisive factor is the vanishingly small installed base and localhost-only attack surface — ~15K total PyPI downloads of an alpha-stage developer tool, requiring the victim to be actively running the process and to click a malicious link simultaneously. No high-value deployment role applies because DeepSeek Harness is a client-side AI chat wrapper, not infrastructure software.
Why this verdict
- Localhost-only API: The control-plane listens on
127.0.0.1. Remote exploitation requires a browser-mediated pivot (DNS rebinding), adding significant friction and dependency on user interaction. This is not a directly internet-reachable service. - Tiny installed base: ~15,000 total PyPI downloads for an alpha-stage library. The concurrent running population is likely in the low hundreds. Fewer than 0.001% of enterprise hosts will have this installed, let alone running.
- User interaction required: The CVSS vector correctly includes
UI:R. The victim must visit an attacker-controlled page while the harness is actively running — a narrow timing window on a rare application. - Role multiplier: DeepSeek Harness is a Python client library for AI model interaction. It is not deployed in any high-value infrastructure role (not an IdP, hypervisor, CI/CD component, backup agent, kernel-mode agent, network edge, or database). (a) *Low-value role (developer workstation)*: canonical deployment — chain succeeds, blast radius is one user's chat history and local agent session. (b) *Typical role*: same as (a) — there is no server-mode deployment. (c) *High-value role*: no realistic high-value deployment exists. Even if used in a CI/CD pipeline, it wraps AI chat calls and does not manage build artifacts, secrets, or deployment credentials. No floor override applies.
- No exploitation evidence: Zero PoCs, no KEV listing, EPSS at 35th percentile. The DNS rebinding prerequisite raises the bar above opportunistic scanning.
Why not higher?
Upgrading to HIGH would require either a meaningful high-value-role deployment pattern, active exploitation, or a directly internet-reachable attack surface. None of these conditions are met. The localhost-only listener, browser-mediated pivot, user interaction requirement, and ~15K-download alpha tool profile all compound to severely narrow the reachable population and blast radius.
Why not lower?
The underlying bug is a genuine authentication bypass (not just information disclosure), and the impact upon successful exploitation — unrestricted agent control and full conversation history access — is non-trivial for affected users. A developer's conversation history with an AI model could contain proprietary code, internal architecture details, or credentials pasted into prompts. LOW would understate the confidentiality impact for the small population actually at risk.
What to do — in priority order.
- Stop running DeepSeek Harness if below 0.1.2-alpha.1 — The simplest mitigation:
pip install --upgrade deepseek-harness>=0.1.2a1. Since this is a developer tool with no uptime SLA, upgrading or stopping the process eliminates the attack surface entirely. No noisgate mitigation SLA applies for MEDIUM — go straight to the 365-day remediation window, though the trivial fix warrants immediate action. - Bind the control-plane API to a Unix socket instead of TCP if configurable — If the harness supports Unix domain socket configuration, switching from TCP localhost to a socket eliminates the DNS rebinding vector entirely since browsers cannot target Unix sockets.
- Use browser DNS rebinding protections — Ensure developer workstations use DNS resolvers that enforce minimum TTLs and block rebinding patterns (e.g., Cloudflare Gateway, NextDNS, or enterprise DNS with rebinding protection enabled).
- WAF / reverse proxy in front of the API — the API listens on localhost and is not behind any network infrastructure; a WAF cannot intercept loopback traffic.
- Network segmentation / firewall rules — the attack originates from the victim's own browser on the same host; network-level controls between hosts are irrelevant to a localhost-to-localhost attack path.
Crowdsourced verification payload.
Run this on any developer workstation where DeepSeek Harness may be installed. No elevated privileges required. Invoke with: bash check_cve_2026_82533.sh
#!/usr/bin/env bash
# CVE-2026-82533 checker for DeepSeek Harness
# Checks installed version against the fixed version 0.1.2-alpha.1
# Exit codes: 0 = PATCHED, 1 = VULNERABLE, 2 = UNKNOWN
set -euo pipefail
PKG="deepseek-harness"
FIXED="0.1.2a1" # PEP 440 normalized form of 0.1.2-alpha.1
# Check if package is installed
if ! pip show "$PKG" &>/dev/null; then
echo "UNKNOWN — $PKG is not installed on this system."
exit 2
fi
INSTALLED=$(pip show "$PKG" 2>/dev/null | grep -i '^Version:' | awk '{print $2}')
if [ -z "$INSTALLED" ]; then
echo "UNKNOWN — could not determine installed version of $PKG."
exit 2
fi
# Use Python to compare PEP 440 versions reliably
RESULT=$(python3 -c "
from packaging.version import Version
import sys
try:
installed = Version('$INSTALLED')
fixed = Version('$FIXED')
if installed >= fixed:
print('PATCHED')
else:
print('VULNERABLE')
except Exception as e:
print(f'UNKNOWN — version parse error: {e}')
sys.exit(2)
")
echo "$RESULT — $PKG version $INSTALLED installed (fixed in >= $FIXED)"
case "$RESULT" in
PATCHED) exit 0 ;;
VULNERABLE) exit 1 ;;
*) exit 2 ;;
esacIf you remember one thing.
pip install --upgrade, so there's no reason to wait: have any developers running it upgrade to ≥0.1.2-alpha.1 at their next convenience. Monday morning, send a Slack message to your ML/AI platform channel asking anyone using deepseek-harness to run pip install --upgrade deepseek-harness. Confirm with the verification script. Do not burn a change-control window on this.Sources
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.