CloudreveApplication

CVE-2026-25726

CRITICAL · 9.8 CVSS v3.1 Published 2026-04-03
Fix available
A fix is available. Upgrade to 4.13.0 or later.
See remediation →
100/100
Remediation priority · Urgent
Remotely reachable No privileges Zero-click

Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.

NVD · unedited
Cloudreve is a self-hosted file management and sharing system. Prior to version 4.13.0, the application uses the weak pseudo-random number generator math/rand seeded with time.Now().UnixNano() to generate critical security secrets, including the secret_key, and hash_id_salt. These secrets are generated upon first startup and persisted in the database. An attacker can exploit this by obtaining the administrator's account creation time (via public API endpoints) to narrow the search window for the PRNG seed, and use known hashid to validate the seed. By brute-forcing the seed (demonstrated to take <3 hours on general consumer PC), an attacker can predict the secret_key. This allows them to forge valid JSON Web Tokens (JWTs) for any user, including administrators, leading to full account takeover and privilege escalation. This issue has been patched in version 4.13.0.

Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.

dbcve analysis · high confidence

Cloudreve versions prior to 4.13.0 use the weak math/rand PRNG seeded with time.Now().UnixNano() to generate critical secrets (secret_key, hash_id_salt) at first startup. Attackers can obtain the admin account creation time via public API, then brute-force the PRNG seed (taking <3 hours) to predict secret_key and forge valid JWTs for full account takeover.

MitigationUpgrade to Cloudreve version 4.13.0 or later, which replaces the weak PRNG with crypto/rand. After upgrading, rotate all generated secrets (secret_key, hash_id_salt) and investigate for any signs of prior compromise.

Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.

Affected products & versions What the vendor confirmedThe version ranges the vendor confirmed as vulnerable. If your version sits inside a range here, treat yourself as exposed until you have upgraded.

NVD · CPE data
CloudreveApplication
Affected:< 4.13.0

CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.

From the vector
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.

dbcve checks

Work through these to decide whether this CVE applies to you.

  1. Identify Cloudreve version
    Locate the Cloudreve binary or container image and determine its version using 'cloudreve --version', checking the Docker image tag, or examining the conf.ini file for a version field
    Affected if The version is below 4.13.0 or cannot be determined (indicating it may be an older installation)
  2. Locate the configuration database
    Find the Cloudreve database file (typically SQLite named 'cloudreve.db' or similar in the data directory, or a MySQL/PostgreSQL database if configured). Consult conf.ini for the database connection string.
    Affected if A database exists and contains Cloudreve installation data
  3. Check for secret_key in database
    Query the database for the secret_key value. In SQLite: 'SELECT value FROM configs WHERE name="secret_key";' or equivalent table. This value is generated at first startup.
    Affected if A secret_key value exists in the database, indicating the application has been initialized
  4. Check for hash_id_salt in database
    Query the database for the hash_id_salt value. In SQLite: 'SELECT value FROM configs WHERE name="hash_id_salt";' or equivalent table. This is also generated at first startup using the same weak PRNG.
    Affected if A hash_id_salt value exists in the database, confirming both critical secrets were generated at initialization
  5. Verify deployment timeline
    Check the admin account creation timestamp via database query (e.g., 'SELECT created_at FROM users WHERE id=1;' for the initial admin). Compare this timestamp against the date version 4.13.0 was released.
    Affected if The admin account was created before upgrading to version 4.13.0, indicating the secrets may have been generated using the vulnerable PRNG

If the installed version is below 4.13.0 or unknown, and the database contains secret_key and hash_id_salt values generated during initialization, the deployment is likely affected by this vulnerability.

Generated from the published advisory. Verify against your own configuration.

Check your environment

Paste your version and any relevant configuration and it will be compared against the affected criteria above. Do not include secrets or credentials.

AI-assisted, checked against the advisory. Informational, not a guarantee.

Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.

dbcve · scoped
Upgrade available Upgrade to 4.13.0 or later
Fixed in 4.13.0
Interim mitigation

Upgrade to Cloudreve version 4.13.0 or later, which replaces the weak PRNG with crypto/rand. After upgrading, rotate all generated secrets (secret_key, hash_id_salt) and investigate for any signs of prior compromise.

Recommended fix High confidence

4.13.0 or later

  1. Upgrade Cloudreve to version 4.13.0 or later to obtain the fixed crypto implementation
  2. After upgrading, regenerate the secret_key and hash_id_salt by clearing the stored values in the database so new secure values are generated on next startup
  3. Review all user sessions and consider invalidating existing JWTs to force re-authentication
  4. Audit administrator accounts for any unauthorized access that may have occurred prior to the upgrade
Caveat Ensure any custom integrations relying on the previous secret_key format are updated after the rotation; review application logs for any suspicious activity around the upgrade period

Generated from the published advisory — verify against the referenced sources before acting.

Fix this in Cloudreve Scoped from the published advisory
  • Consultation3.0 h
  • Implementation2.0 h
  • Testing3.0 h
  • Review / QA2.0 h
10.0 hours of engineering $1,770
Get the upgrade done

An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $2,832.

Scan for this in your stack

Free · runs locally
dbcve dependency scanner

Check whether your project pulls in CVE-2026-25726 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.

References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.

Primary sources

Practitioner notes

Contributed

Peer-ranked notes from engineers who’ve handled CVE-2026-25726 in production — separate from our analysis above.

No notes yet

Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.

What this is

A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.

What belongs here
  • Verified mitigations, workarounds, and config changes
  • Version or environment caveats, and links to real fixes
  • No weaponised exploit code, or anything meant to cause harm
  • No spam, self-promotion, credentials, or personal data