Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CWE-308 (使用单一因素认证机制) — Vulnerability Class 12

12 vulnerabilities classified as CWE-308 (使用单一因素认证机制). AI Chinese analysis included.

CWE-308 represents a critical authentication weakness where systems rely on a single credential, such as a password, for access control in contexts demanding higher assurance. Attackers typically exploit this vulnerability by employing brute-force attacks, credential stuffing, or phishing to steal the solitary factor, thereby gaining unauthorized entry without needing to bypass additional security layers. This single point of failure significantly lowers the barrier for malicious actors to compromise user accounts and sensitive data. To mitigate this risk, developers must implement multi-factor authentication (MFA) solutions that require two or more distinct verification methods, such as combining something the user knows with something they have or are. By integrating diverse factors, organizations ensure that compromising one element does not result in total system breach, thereby substantially enhancing overall security posture and resilience against common credential-based attacks.

MITRE CWE Description
The product uses an authentication algorithm that uses a single factor (e.g., a password) in a security context that should require more than one factor.
Common Consequences (1)
Access ControlBypass Protection Mechanism
If the secret in a single-factor authentication scheme gets compromised, full authentication is possible.
Mitigations (1)
Architecture and DesignUse multiple independent authentication schemes, which ensures that -- if one of the methods is compromised -- the system itself is still likely safe from compromise. For this reason, if multiple schemes are possible, they should be implemented and required -- especially if they are easy to use.
Examples (1)
In both of these examples, a user is logged in if their given password matches a stored password:
unsigned char *check_passwd(char *plaintext) { ctext = simple_digest("sha1",plaintext,strlen(plaintext), ... ); //Login if hash matches stored hash if (equal(ctext, secret_password())) { login_user(); } }
Bad · C
String plainText = new String(plainTextIn); MessageDigest encer = MessageDigest.getInstance("SHA"); encer.update(plainTextIn); byte[] digest = password.digest(); //Login if hash matches stored hash if (equal(digest,secret_password())) { login_user(); }
Bad · Java

Vulnerabilities classified as CWE-308 (使用单一因素认证机制) represent 12 CVEs. The CWE taxonomy describes the weakness; review individual CVEs for product-specific impact.