Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain stored password hash table
-
DeliveryIdentify unsalted MD5 digests
-
ExploitApply rainbow tables / GPU cracking
-
ExecutionRecover plaintext passwords
-
ImpactReuse for account takeover
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Cryptographic step completeness
|
| Exploitation Conditions | Exploitation is not self-contained: an attacker must FIRST gain access to the stored password hashes (via a separate vulnerability, database compromise, or backup leak), because the flaw is that MD5.getMD5 stores user passwords as unsalted MD5 digests rather than exposing any remotely-triggerable primitive. This is why the CVSS vector uses AC:H (difficult) and PR:L. The limiting factor is high - no impact until the hash store is exfiltrated; on its own the weakness only lowers the cost of cracking already-stolen hashes. No fixed release exists due to the rolling-release model, so remediation requires the operator to change the hashing code (add salt / adopt a strong KDF like bcrypt/argon2). |
| Impact | This is a genuinely low-priority finding, and the signals agree. The CVSS 4.0 base score is 1.3 (Low), with vector AV:N/AC:H/PR:L/UI:N and only VC:L (low confidentiality impact, no integrity or availability). VulDB's exploit-maturity flag is E:P (proof-of-concept) and a POC is referenced via GitHub issue #123, but POC existence is NOT active exploitation - there is no CISA KEV listing and no EPSS score provided. The core issue (CWE-325, unsalted one-way MD5 hashing of user passwords in MD5.getMD5) is a design/crypto-hygiene weakness rather than a directly exploitable primitive: it only has value AFTER an attacker has already obtained the stored password hashes through some other vector, at which point unsalted MD5 makes offline rainbow-table/precomputed-hash cracking trivial. This dependency is exactly why VulDB assigns AC:H ('a high degree of complexity is needed... exploitability is described as difficult'). Note a minor internal tension: the description says 'the attack may be initiated remotely' (AV:N) yet the weakness is not remotely triggerable on its own - AV:N here reflects that the vulnerable web app is network-facing, not that unsalted hashing is a remote exploit. Overall: low real-world risk, defense-in-depth hardening rather than an urgent patch item. |
| Exploit ScenarioDerived | An attacker who has separately obtained the application's user-password table (e.g. via SQL injection, a leaked backup, or the hard-coded DB credentials tracked in sibling CVE-2026-96548) finds passwords stored as unsalted MD5 digests. Because no per-user salt is applied, the attacker runs precomputed rainbow tables or GPU brute-force against the digests and recovers plaintext passwords far faster than salted storage would allow. A proof-of-concept was published in GitHub issue #123, but no active exploitation is reported. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 23, 2026
Unsalted MD5 password hashing in sfturing hosp_order (code through commit 627f426331da8086ce8fff2017d65b1ddef384f8) leaves stored user credentials cheaply crackable if the hash store is ever exposed. The defect is not a remotely reachable primitive: per the assessed vector (CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N) an attacker with low privileges must first obtain the password digests - through a separate vulnerability, a database compromise, or a backup leak - before the missing salt provides any advantage, which is why impact is limited and complexity is high. Publicly available exploit code exists that demonstrates the weak hashing, but there is no confirmed active exploitation (no CISA KEV listing), and the project has not responded to the issue report, so no vendor-released patch is identified at time of analysis.
RemediationAI
No vendor-released patch is identified at time of analysis - the project has not responded to the issue report at https://github.com/sfturing/hosp_order/issues/123 and publishes no versioned releases, so operators must remediate in their own fork. Replace the MD5.getMD5 call path in ssm_pro/src/main/java/cn/sfturing/utils/MD5.java with a salted, memory-hard KDF such as bcrypt (cost 12+), scrypt, or Argon2id, storing the per-user salt and parameters alongside the digest; because existing rows hold unsalted MD5 values, plan a transparent migration that verifies the legacy MD5 value against the supplied password on next successful login and immediately re-hashes it with the new algorithm, understanding that until every account has logged in, legacy hashes remain crackable and must be protected as secrets. Supporting controls, with their trade-offs: restrict database and backup read access to the minimum necessary roles (limits the prerequisite exfiltration step but does not fix the hashing); force credential rotation and reuse checks for all accounts after any suspected dump (disruptive to users but invalidates already-cracked hashes); and add monitoring/alerting on bulk reads of the user table (detective only, easily bypassed by a patient attacker). Because exploitation requires prior access to the hash store, patching the hashing routine plus tightening database and backup access addresses the realistic attack chain; there is no network-level workaround for a storage-layer weakness. Consult https://vuldb.com/vuln/408954/cti and the repository for updates on the unresolved upstream report.
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 affected code is the Java utility class cn.sfturing.utils.MD5 in ssm_pro/src/main/java/cn/sfturing/utils/MD5.java, part of the SSM (Spring + Spring MVC + MyBatis) backend of the hosp_order hospital ordering application. The reported weakness maps to CWE-325 (Missing Cryptographic Step): the password handler applies a single, unsalted MD5 pass over user credentials, so no per-user salt and no work factor are introduced anywhere in the storage path. MD5 is a fast, collision-broken digest designed for integrity checks, not password storage; without a salt, identical passwords yield identical digests, enabling precomputed rainbow-table lookups and cross-account correlation, and GPU-driven brute force makes short or dictionary passwords recoverable in seconds to hours. Because the flaw lives in the hashing routine rather than in an exposed endpoint, the CPE/version data for the project is effectively unresolvable - hosp_order follows a rolling-release model and the advisory lists only the repository commit 627f426331da8086ce8fff2017d65b1ddef384f8 as the affected revision, so no discrete vulnerable or fixed version range can be enumerated.
Know when Java 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:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P
AC:H and PR:L because the flaw only aids cracking of already-obtained hashes (not a standalone remote trigger); C:L for eventual password recovery; no integrity or availability impact.
Primary rating from Vendor (vuldb).
CVSS VectorVendor: vuldb
DescriptionCVE.org
A vulnerability was identified in sfturing hosp_order up to 627f426331da8086ce8fff2017d65b1ddef384f8. The affected element is the function MD5.getMD5 of the file ssm_pro/src/main/java/cn/sfturing/utils/MD5.java of the component User Password Handler. The manipulation leads to one-way hash without salt. The attack may be initiated remotely. A high degree of complexity is needed for the attack. The exploitability is described as difficult. The exploit is publicly available and might be used. This product uses a rolling release model to deliver continuous updates. As a result, specific version information for affected or updated releases is not available. 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.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
EUVD-2026-85626
GHSA-rwxj-v6pm-xj2c
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB