CVE-2026-110104
5.9MediumPublished 13 Oct 2026 · NVD status: Received · AI triage by gemini-3.8-flash
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
- Impact
- High impact on confidentiality
- Weakness
- CWE-916
Impact
Attackers can reverse stored password hashes to plaintext using rainbow tables or brute force if they obtain a database leak or backup. This allows credential reuse across accounts.
Root cause
The registration handler computes unsalted MD5 hashes for user passwords before storing them in the database.
Affected systems
Xxyopen novel through 3.5.0
CVSS v3.1 · CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
Fix & remediation
Upgrade to a commit incorporating pull request #53 / commit fa82ce7e426a5b29db469b8f13d2e29fc1260871 or a post-3.5.0 release; as an interim measure, restrict direct access and backup exposures to the database containing the user_info table.
$ git pull origin mainAI-suggested. Run it in staging first and check it against the vendor advisory. Why?
NVD description
Xxyopen novel through 3.5.0 contains a weak password hashing vulnerability that allows attackers to recover plaintext passwords because UserServiceImpl.register() stores unsalted MD5 digests in user_info.password. Attackers who obtain the password column through a database leak or backup exposure can crack hashes with precomputed tables or GPU brute force and reuse credentials.
References
- https://github.com/201206030/novel/blob/v3.5.0/src/main/java/io/github/xxyopen/novel/service/impl/UserServiceImpl.java#L70-L77
- https://github.com/201206030/novel/commit/fa82ce7e426a5b29db469b8f13d2e29fc1260871
- https://github.com/201206030/novel/pull/53
- https://www.vulncheck.com/advisories/novel-through-3.5.0-unsalted-md5-password-storage
- https://github.com/201206030/novel/pull/53