Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain local access to Diem host/DB
-
ExploitExtract SHA1 password hashes from PluginDmUser
-
ExecutionRun offline cracking against weak hashes
-
ImpactRecover plaintext credentials
Vulnerability Assessment
| Weakness |
CWE
|
| Exploitation Conditions | Exploitation requires that the attacker already possess the stored SHA1 password hashes generated by the PluginDmUser SHA1 Handler - i.e., prior local access to the Diem host or its user database (reflected by AV:L and PR:L). The weakness does not grant any remote or unauthenticated foothold; it only accelerates offline password recovery once hashes are in hand. Limiting factors per the CVSS vector and description: local access only, high attack complexity, low-privilege prerequisite, and impact limited to confidentiality of credentials (no integrity/availability effect). Strong, unique per-user passwords and separate salting reduce practical crackability even with the weak hash. Applies to Diem versions up to and including 5.1.3. |
| Impact | This is a textbook high-CVSS-is-actually-low-risk case - and the CVSS here is not even high. The provided CVSS 4.0 base score is 1.1 (Low), and the vector confirms the weakness is severely constrained: local attack vector (AV:L), high attack complexity (AC:H), requiring low privileges (PR:L), with only low confidentiality impact (VC:L) and no integrity or availability impact. CWE-916 (use of a password hash with insufficient computational effort - here SHA1) is a real cryptographic weakness, but it is not directly exploitable: it only matters once an attacker has ALREADY obtained the stored password hashes, at which point weak hashing makes offline cracking faster. The exploitability signals reinforce low urgency: the input explicitly states 'publicly available exploit code exists' (a POC, reflected by E:P in the 4.0 vector), but there is NO CISA KEV listing and NO EPSS score provided, so there is no evidence of active or likely widespread exploitation. The VulDB submission is tied to a GitHub issue report to which the project has not responded, indicating no patch. Net: this is a code-quality / defense-in-depth hardening item, not an incident-response priority. The signals are internally consistent (local, high-complexity, low-impact, POC-only), so there is no major conflict to flag - the main caveat is that EPSS/KEV data is absent, which is expected for a very recent, low-severity, obscure-product CVE. |
| Exploit ScenarioDerived | An attacker who already has local, low-privileged access to a Diem installation (or a copy of its database/user table, e.g. via a separate SQL injection, backup leak, or insider access) extracts the SHA1 password hashes stored by PluginDmUser. Because SHA1 is fast and uses insufficient computational effort, the attacker then performs offline brute-force or rainbow-table cracking far more cheaply than against a proper adaptive hash (bcrypt/argon2), recovering plaintext passwords. A public POC exists demonstrating the weakness, but the high attack complexity reflects that the hashes must first be obtained through some other means. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 18, 2026
Weak SHA1-based password hashing in the Diem PHP framework's PluginDmUser handler (lib/model/doctrine/PluginDmUser.class.php, versions through 5.1.3) lets anyone who already holds the stored password hashes from a Diem user database recover plaintext credentials offline far faster than a modern key-derivation function would allow. Exploitation is strictly local and high-complexity and presupposes a prior foothold to obtain the hashes, so the weakness yields no remote or unauthenticated path into the application; impact is limited to confidentiality of credentials and any password reuse elsewhere. Publicly available exploit code exists (referenced upstream issue 452), the project was notified but has not responded, and no CISA KEV listing or EPSS score was supplied with the intelligence.
RemediationAI
No vendor-released patch identified at time of analysis: the maintainers were notified via the upstream issue (https://github.com/diem-project/diem/issues/452) and have not responded, so there is no fixed Diem version to cite and upgrading alone will not remediate. The durable fix is to replace the SHA1 handler with a memory-hard KDF - PHP's password_hash() using PASSWORD_BCRYPT or PASSWORD_ARGON2ID with per-user random salts and a cost tuned to roughly 100-250 ms per verification - implemented by overriding or replacing PluginDmUser's hashing methods; the trade-off is a migration: verify legacy SHA1 hashes on next successful login and immediately rehash to the new algorithm, which leaves dormant accounts on SHA1 until they authenticate, so pair it with a forced reset for privileged or stale accounts. Until that migration is complete, treat the Diem user table as a credential store at risk: restrict database and backup file permissions to the application account only, remove Diem dumps from shared or web-accessible paths, rotate any credentials that may have been exposed, and enforce strong, unique passwords (blocking known-breached passwords) so that even fast offline guessing is expensive. Because the required precondition is possession of the hashes, the highest-value control is preventing exfiltration - least-privilege DB accounts, no world-readable backup directories, and monitoring for bulk SELECTs against the user table - rather than any network-level filter.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Diem is a Symfony-based PHP content management framework that ships Doctrine ORM model classes, including lib/model/doctrine/PluginDmUser.class.php, which implements the user entity and its credential handling; the affected component is described as an SHA1 handler where manipulation of the salt/password arguments yields a password hash computed with insufficient computational effort (CWE-916, use of a password hash with insufficient computational effort). SHA-1 is a fast, general-purpose digest: even when a per-user salt is applied, salting only defeats precomputed rainbow tables and does not raise the per-guess cost, so GPU-accelerated offline guessing against SHA-1 digests proceeds at rates orders of magnitude above bcrypt, scrypt or Argon2id. The practical consequence is that any leak of the user table - via SQL injection in another component, a backup exposure, or direct host access - converts into rapid credential recovery, particularly for weak or reused passwords. The CPE cpe:2.3:a:diem-project:diem:*:*:*:*:*:*:*:* carries a wildcard version, while the description and advisory scope the issue to releases up to and including 5.1.3.
Know when Diem gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:H/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P
Attacker needs the hashes first, so AV:L and PR:L with AC:H; impact is limited to eventual credential disclosure (C:L) with no integrity or availability effect.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
2DescriptionCVE.org
A vulnerability has been found in diem-project diem up to 5.1.3. This affects an unknown part of the file lib/model/doctrine/PluginDmUser.class.php of the component SHA1 Handler. Such manipulation of the argument salt/password leads to password hash with insufficient computational effort. The attack needs to be performed locally. The attack requires a high level of complexity. It is indicated that the exploitability is difficult. The exploit has been disclosed to the public and may be used. The project was informed of the problem early through an issue report but has not responded yet.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Insecure direct object reference (IDOR) in the dmWidget component of diem-project/diem (versions through 5.1.3) allows u
Cryptographically weak pseudo-random number generation in the PHP CMS Diem's dmString::random() helper can produce predi
Improper certificate validation in the Google Analytics Client bundled with the Diem PHP framework (dmCorePlugin/lib/ven
An open redirect in the Diem PHP framework's Sign-In component (dmCorePlugin dmUserPlugin) allows remote attackers to re
Default-password exposure in Diem CMS through 5.1.3 allows remote attackers to access unhardened installations whose cre
Unrestricted file upload in diem-project/diem through version 5.1.3 exposes the Widget Editor to remote authenticated at
Cross-site request forgery in diem-project/diem up to version 5.1.3 allows remote attackers to trigger unauthorized cons
Cross-site scripting in the dmWidget link-rendering component of Diem CMS allows authenticated low-privilege users to in
Path traversal in Diem through 5.1.3 lets an authenticated user with high backend privileges abuse the dmCodeEditor acti
OS command injection in the Diem CMS Administrative Console (diem-project/diem ≤ 5.1.3) allows authenticated administrat
Cross-site scripting in the Diem PHP CMS administrative console lets a user who already holds high-privilege console acc
Cross-site scripting in the Diem admin plugin's Version Check Service lets a high-privileged authenticated attacker supp
EUVD-2026-104013
GHSA-83h9-vcq9-fvwv
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB