← Back to Feed CACHED · 2026-10-30 10:06:11 · CACHE_KEY CVE-2026-13639
CVE-2026-13639 · CWE-331 · Disclosed 2026-09-18

Synology DSM login logic insufficient entropy enables arbitrary file read/write and DoS

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

A NAS login whose secret can be guessed like a four-digit PIN

CVE-2026-13639 is an entropy failure in Synology DiskStation Manager login logic before the fixed builds 7.2.1-69057-12, 7.2.2-72806-9, 7.3.2-86009-4, and 7.4-90075. A remote attacker who can reach the DSM web interface can predict or brute-force the weak login token, then use the resulting session to read or write arbitrary files and force a denial-of-service.

Synology's CRITICAL/9.8 rating reflects the direct technical impact of unauthenticated remote file read/write, which is fair for an exposed unit. In practice we downgrade to HIGH: CISA KEV does not list this CVE, EPSS is only 0.00691 (0.69% next-30-day probability), no public PoC is known, and many DSM installations are behind NAT or use QuickConnect only for selective services. However, enterprise Synology units often hold backups or shared data, so exploitation on a high-value backup target would be severe.

"Remote unauthenticated arbitrary file read/write on widely deployed Synology NAS — patch before the PoC exists."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Reach the DSM login portal

Attacker scans for TCP 5000/5001 or enumerates QuickConnect IDs to find an internet-facing DiskStation Manager login page. Synology devices often expose DSM directly for remote access, but many are NATed or only reachable through Synology relay.
Conditions required:
  • Target runs an unpatched DSM build
  • DSM web portal reachable over internet or internal network
Where this breaks in practice:
  • Many units are behind NAT or use QuickConnect relay without a public port
  • Shodan/GreyNoise detection may alert on mass scanning, but targeted scans are easy
Detection/coverage: Shodan and GreyNoise can identify exposed Synology login pages; enable internal monitoring for QuickConnect relay logs.
STEP 02

Predict or brute-force the weak login token

The vulnerable login logic generates a secret with insufficient entropy, allowing an attacker to derive or brute-force a valid login/session token without credentials. This is the core CWE-331 weakness.
Conditions required:
  • Attacker can send repeated requests to the login endpoint
  • No rate-limiting or account lockout on token attempts
Where this breaks in practice:
  • No public exploit code or detailed token-generation analysis yet
  • WAF may flag high-volume token guessing, but a single predicted token may evade volume detection
Detection/coverage: Detection is limited; custom WAF rules for anomalous token patterns may help, but not proven.
STEP 03

Use admin-level session to read or write files

A valid token provides admin-equivalent access to DSM file management APIs, allowing the attacker to read arbitrary files from shared folders or write to system paths such as web root or cron directories.
Conditions required:
  • Session token is accepted and not expired
  • Attacker's token maps to an admin or file-privileged account
Where this breaks in practice:
  • If low-privileged user token is predicted, impact is limited; but C:H/I:H suggests admin-level outcome
  • Some DSM hardening may restrict write paths, but default installs are vulnerable
Detection/coverage: DSM audit logs may show anomalous admin logins or file changes; forward logs to SIEM.
STEP 04

Exfiltrate, tamper, or destroy data and backups

With file write access, attacker drops a webshell, modifies startup scripts, deletes shared folders or snapshots, and causes denial-of-service by filling disk or corrupting the volume.
Conditions required:
  • Write access to system or backup directories
  • No immutable backup or WORM storage protects the data
Where this breaks in practice:
  • Immutable snapshots or off-unit backup copies can limit permanent loss
  • Attacker must locate valuable shares, but DSM structure is well-known
Detection/coverage: File integrity monitoring and backup immutability alerts; endpoint/network DLP may catch mass egress.
03 · Compensating Control

1
HIGH 8.5→IGNORE 0.0
SEVERITY REDUCED
Apply the Synology DSM patch within 30 days (noisgate mitigation SLA for HIGH) and full remediation within 180 days — Upgrade to the fixed builds 7.2.1-69057-12 / 7.2.2-72806-9 / 7.3.2-86009-4 / 7.4-90075 or later. This eliminates the vulnerable token generation entirely.
2
HIGH 8.5→MEDIUM 5.0
SEVERITY REDUCED
Disable internet-facing DSM and QuickConnect or restrict management UI to internal VPN only — Removes the remote unauthenticated attack path; attackers now need LAN or VPN access. For HIGH verdict, deploy as a stopgap within 30 days; if you cannot patch in time, do this first.
3
HIGH 8.5→HIGH 8.0
Enforce MFA for all DSM admin accounts — Adds a second factor even if weak token is guessed, but may be bypassed if the entropy flaw produces a post-MFA session; treat as defense-in-depth only.
4
HIGH 8.5→HIGH 7.5
Enable immutable snapshots and off-unit backup copies — Limits blast radius by preventing permanent data loss; does not stop read/write or DoS but reduces durability impact.
What doesn't work
  • QuickConnect relay does not mitigate; it simply proxies the vulnerable login endpoint.
  • EDR on workstations won't help; DSM runs on the NAS and may not have an endpoint agent.
  • WAF rate limiting alone is unreliable; insufficient entropy may allow a single predicted token rather than a high-volume brute force.
04 · Intelligence Metadata

The supporting signals.

CVE IDCVE-2026-13639
Vendor severity / CVSSCRITICAL 9.8 — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWECWE-331 Insufficient Entropy
Affected versionsDSM before 7.2.1-69057-12, 7.2.2-72806-9, 7.3.2-86009-4, 7.4-90075
Fixed versions7.2.1-69057-12, 7.2.2-72806-9, 7.3.2-86009-4, 7.4-90075
KEV statusNot listed in CISA KEV as of assessment
In-the-wild statusNo known active exploitation or named campaigns
PoC availabilityNo public PoC known as of assessment; check pocindex.io and GitHub
EPSS score0.00691 (0.69% probability next 30 days; low)
Exposure / scanningShodan/Censys historically show tens of thousands of DSM portals; prompt does not provide live GreyNoise data

Sources.

  1. NVD CVE-2026-13639
  2. CVE.org record
  3. Synology Security Advisory
  4. CWE-331 Insufficient Entropy
  5. CISA Known Exploited Vulnerabilities Catalog
  6. FIRST EPSS
  7. pocindex.io search
  8. GitHub repository search
05 · The Call

Final Verdict
↓ DOWNGRADED to HIGH (8.5/10)

Why this verdict

  • Remote unauthenticated impact: Exploitation requires no credentials or user interaction and leads to arbitrary file read/write plus DoS on a NAS/backup device.
  • Role multiplier: Synology DSM is commonly used as SMB/enterprise file and backup storage; a compromised backup target can mean mass data egress or backup destruction, so the floor is HIGH.
  • Friction audit: no KEV, EPSS 0.00691, no public PoC, and many units are not directly internet-exposed; these pull it below CRITICAL.

Why not higher?

Vendor CRITICAL/9.8 assumes all internet-facing DSM units are reachable and exploitable. But EPSS is 0.00691 and CISA KEV does not list the CVE, with no public PoC or active exploitation. QuickConnect and NAT reduce the directly reachable population for many deployments.

Why not lower?

If exploited on an exposed unit, the technical impact is severe: an unauth attacker can read/write arbitrary files on what is often a primary backup or file store. The installed base and high-value role share prevent a MEDIUM or LOW verdict.

06 · Verification

Crowdsourced verification payload.

Run this on the Synology NAS itself via SSH as an admin or a user with read access to /etc.defaults/VERSION. Example: bash /tmp/check_dsm_cve.sh. No special privileges beyond file read.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/bin/bash
# Check Synology DSM version against CVE-2026-13639 fixed versions
set -u
VERSION_FILE="/etc.defaults/VERSION"
if [ ! -f "$VERSION_FILE" ]; then
  echo "UNKNOWN: $VERSION_FILE not found"
  exit 3
fi
prod=$(sed -n 's/^productversion="\([^"]*\)".*/\1/p' "$VERSION_FILE")
build=$(sed -n 's/^buildnumber="\([^"]*\)".*/\1/p' "$VERSION_FILE")
if [ -z "$prod" ] || [ -z "$build" ]; then
  echo "UNKNOWN: could not parse version"
  exit 3
fi
case "$prod" in
  7.2.1) fixed_build="69057-12";;
  7.2.2) fixed_build="72806-9";;
  7.3.2) fixed_build="86009-4";;
  7.4) fixed_build="90075";;
  *) echo "UNKNOWN: unsupported DSM branch ${prod}"; exit 3;;
esac
full="${prod}-${build}"
if [ "$build" = "$fixed_build" ]; then
  echo "PATCHED: ${full}"
  exit 0
fi
lower=$(printf '%s\n%s\n' "$fixed_build" "$build" | sort -V | head -1)
if [ "$lower" = "$fixed_build" ]; then
  echo "PATCHED: ${full} >= ${prod}-${fixed_build}"
  exit 0
else
  echo "VULNERABLE: ${full} < ${prod}-${fixed_build}"
  exit 2
fi