Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCollect multiple dmString::random outputs
-
ExploitInfer weak PRNG internal state
-
ExecutionPredict future random values
-
ImpactCompromise guessable tokens/identifiers
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Cryptographic PRNG selection
|
| Exploitation Conditions | Exploitation requires that dmString::random output be used in a security-sensitive context (e.g., session tokens, password-reset tokens, CSRF nonces, or unique identifiers) AND that the attacker can observe enough generated values to infer the PRNG state. Limiting factors: the CVSS AC:H rating and the vendor's statement that exploitability is 'difficult' indicate significant practical hurdles; impact is confined to low confidentiality (predictable values) with no integrity or availability effect. Because Diem uses a rolling release, no fixed version exists to validate against, and there is no evidence the weak randomness is used in a high-value flow by default. |
| Impact | This is a low-priority issue despite being remotely reachable. The CVSS 4.0 vector (AV:N/AC:H/AT:N/PR:N/UI:N) scores only 2.9, driven by high attack complexity (AC:H) and a single low-confidentiality impact (VC:L) with no integrity or availability effect. The CWE-338 weakness means dmString::random relies on a cryptographically weak PRNG, so the realistic payoff is predicting or recovering 'random' values (e.g., tokens, identifiers) rather than direct code execution or data compromise. Signals are consistent and modest: publicly available exploit code exists (CVLDB-referenced GitHub issue), but there is no CISA KEV listing and no EPSS score was provided, so there is no evidence of active or widespread exploitation - the E:P (Proof-of-Concept) threat metric in the input aligns with 'POC exists, not weaponized.' The vendor's own framing ('exploitability is difficult,' 'high complexity') matches the AC:H rating. Net assessment: a genuine but minor cryptographic weakness in an obscure product; not an urgent patch priority. Note: no EPSS value was supplied in the input, so probabilistic exploitation likelihood could not be cross-checked. |
| Exploit ScenarioDerived | A remote attacker who can observe multiple values produced by dmString::random (such as session identifiers, reset tokens, or nonces) collects samples and uses the known weak PRNG algorithm to reconstruct its internal state and predict future outputs. A proof-of-concept is publicly available via the project's GitHub issue tracker, but the attack is rated high-complexity and requires favorable conditions to be practical. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
Cryptographically weak pseudo-random number generation in the PHP CMS Diem's dmString::random() helper can produce predictable values that may undermine tokens or identifiers derived from it. All rolling-release versions through commit 116974edfb9a5b8bd69cb13586dc62bcdbb485ad are affected; the flaw is remotely reachable by unauthenticated attackers but rated high complexity (CVSS 2.9), with impact limited to low confidentiality. Publicly available exploit code exists, and the vendor has not responded or released a fixed version.
RemediationAI
No vendor-released patch identified at time of analysis; the maintainers were notified via issue 458 but have not responded. Because the affected helper is in core code, the most direct mitigation is to replace dmString::random() with a CSPRNG (random_bytes()/random_int()) in a local patch or fork, but this carries a maintenance burden and may conflict with future rolling-release updates. Auditing the codebase for uses of dmString::random() in session tokens, password-reset tokens, CSRF nonces, and unique identifiers and replacing those call sites first reduces exposure with minimal side effects. If a local patch is not feasible, avoid deploying features that expose generated values to untrusted users and treat any token produced by this helper as non-security-sensitive. Monitor https://github.com/diem-project/diem/issues/458 and https://vuldb.com/vuln/421689 for an upstream fix; there is no configuration toggle to switch the PRNG.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause class is CWE-338, Use of Cryptographically Weak Pseudo-Random Number Generator. Diem's dmString::random() function in dmCorePlugin/lib/basic/dmString.php is reported to generate values with insufficient entropy; in PHP this commonly stems from use of rand()/mt_rand() or a homegrown generator rather than a CSPRNG such as random_bytes() or random_int(). Output from non-cryptographic PRNGs can become predictable once enough values are observed, so session tokens, password-reset tokens, CSRF nonces, or unique identifiers built from this helper could be guessable. Diem is a Symfony-based PHP content management framework distributed via a rolling release; CPE cpe:2.3:a:diem-project:diem:*:*:*:*:*:*:*:* marks all versions as potentially affected, and no fixed commit has been published. Exploitation requires that the generated value be used in a security-sensitive context and be observable by the attacker, which is why the assessed vector is AC:H with only low confidentiality impact and no integrity or availability effect.
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:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P
Weak PRNG is remotely reachable without auth (AV:N/PR:N) but needs multiple-sample state inference (AC:H); only predictability of 'random' values leaks, so C:L and I/A:N.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
3DescriptionCVE.org
A vulnerability was identified in diem-project diem up to 116974edfb9a5b8bd69cb13586dc62bcdbb485ad. This vulnerability affects the function dmString::random of the file dmCorePlugin/lib/basic/dmString.php. Such manipulation leads to cryptographically weak prng. The attack may be performed from remote. A high complexity level is associated with this attack. It is stated that the exploitability is difficult. The exploit is publicly available and might be used. This product utilizes a rolling release system for continuous delivery, and as such, version information for affected or updated releases is not disclosed. 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.
Related Vulnerabilities in diem-project diem XSS and Auth Flaws
View all 6Insecure direct object reference (IDOR) in the dmWidget component of diem-project/diem (versions through 5.1.3) allows u
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
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
Weak SHA1-based password hashing in the Diem PHP framework's PluginDmUser handler (lib/model/doctrine/PluginDmUser.class
EUVD-2026-104044
GHSA-4wx9-wcq2-pggj
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB