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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CWE-697 (不充分的比较) — Vulnerability Class 73

73 vulnerabilities classified as CWE-697 (不充分的比较). AI Chinese analysis included.

CWE-697 represents a logical flaw where software performs an inaccurate evaluation between two entities within a security-critical context. This weakness typically manifests when a developer checks only a single factor, ignores necessary multiple factors, or evaluates the wrong attribute entirely, leading to flawed decision-making processes. Attackers exploit these errors by crafting inputs that bypass intended security controls, such as authentication checks or authorization boundaries, effectively gaining unauthorized access or executing privileged actions. To prevent this, developers must rigorously validate all relevant security parameters during comparison operations. Implementing comprehensive unit tests that cover edge cases and employing static analysis tools can help identify logical inconsistencies. Furthermore, adhering to secure coding standards that mandate explicit, multi-factor verification ensures that comparisons accurately reflect the intended security policy, thereby closing potential exploitation vectors.

MITRE CWE Description
The product compares two entities in a security-relevant context, but the comparison is incorrect. This Pillar covers several possibilities: the comparison checks one factor incorrectly; the comparison should consider multiple factors, but it does not check at least one of those factors at all; the comparison checks the wrong factor.
Common Consequences (1)
Other Varies by Context
When the comparison is incorrect, it may lead to resultant weaknesses.
Examples (2)
Consider an application in which Truck objects are defined to be the same if they have the same make, the same model, and were manufactured in the same year.
public class Truck { private String make; private String model; private int year; public boolean equals(Object o) { if (o == null) return false; if (o == this) return true; if (!(o instanceof Truck)) return false; Truck t = (Truck) o; return (this.make.equals(t.getMake()) && this.model.equals(t.getModel())); } }
Bad · Java
This example defines a fixed username and password. The AuthenticateUser() function is intended to accept a username and a password from an untrusted user, and check to ensure that it matches the username and password. If the username and password match, AuthenticateUser() is intended to indicate that authentication succeeded.
/* Ignore CWE-259 (hard-coded password) and CWE-309 (use of password system for authentication) for this example. */ char *username = "admin"; char *pass = "password"; int AuthenticateUser(char *inUser, char *inPass) { if (strncmp(username, inUser, strlen(inUser))) { logEvent("Auth failure of username using strlen of inUser"); return(AUTH_FAIL); } if (! strncmp(pass, inPass, strlen(inPass))) { logEvent("Auth success of password using strlen of inUser"); return(AUTH_SUCCESS); } else { logEvent("Auth fail of password using sizeof"); return(AUTH_FAIL); } } int main (int argc, char **argv) { int a
Bad · C
p pa pas pass
Attack
CVE ID Title CVSS Severity Published
CVE-2026-108969 itsmeravitejak Online-Examination-System Session session.php checkLogin comparison — Online-Examination-System 7.3 High 2026-10-13
CVE-2026-106252 Chrome < 155.0.8059.39 字体比较漏洞导致远程代码执行 — Chrome - - 2026-10-06
CVE-2026-71892 CMS key-transport recipient key-size validation never runs for RFC 9709 HKDF-derived keys — BC-JAVA 6.9 Medium 2026-10-03
CVE-2026-101913 ip-address: Address6.isLinkLocal() recognizes fe80::/64 rather than fe80::/10, allowing SSRF and trust-boundary bypass to on-link hosts — ip-address 6.3 Medium 2026-09-28
CVE-2026-101912 ip-address: isInSubnet() and isHostInSubnet() compare addresses of different families as if they shared an address space, allowing an allowlist check to admit an address outside its range — ip-address 6.3 Medium 2026-09-28
CVE-2026-85292 InvoicePlane: Loose Type Comparison in Core Authentication Check (Defense-in-Depth) — InvoicePlane 4.8 Medium 2026-09-25
CVE-2026-93957 olivier-ls PHP-FTS Filter Matching SearchEngine.php matchesSingleFilter comparison — PHP-FTS 4.3 Medium 2026-09-20
CVE-2026-71855 Suricata flow: IPv4/IPv6 hash collision can reuse wrong flow state — suricata 5.9 Medium 2026-09-18
CVE-2026-57222 Suricata ippair: hash collision can cause incorrect state reuse across IPv4 and IPv6 — suricata 5.3 Medium 2026-09-18
CVE-2026-61795 Capsule: hostnameRegexHandler.OnUpdate validates stale (old) Tenant regex, allowing invalid AllowedHostnames regex to bypass webhook validation — capsule 6.8 Medium 2026-09-18
CVE-2026-61672 Capsule: Tenant owner bypasses Capsule's forbidden namespace/service/node label and annotation enforcement — capsule 7.1 High 2026-09-18
CVE-2026-20333 Cisco Secure Adaptive Security Appliance Software, Secure Firewall Threat Defense Software and Secure Firewall Management Center Software Hardening Release - Incorrect Comparison Vulnerabilities — Cisco Secure Firewall Adaptive Security Appliance (ASA) Software 8.8 High 2026-09-16
CVE-2026-91997 evolution-api through 2.3.7 Prometheus Metrics IP Allowlist Bypass — evolution-api 5.3 Medium 2026-09-15
CVE-2026-56101 OpenBSD ieee80211_crypto_tkip.c TKIP MIC Countermeasure Logic Inversion DoS — OpenBSD 5.3 Medium 2026-09-08
CVE-2026-73309 XenForo < 2.3.13 Authentication Bypass via OAuth2 Token Endpoint — XenForo 7.4 High 2026-09-08
CVE-2026-80227 SQL string_trim removes only spaces, diverging from in-memory trimming in AshSql — ash_sql 2.1 Low 2026-08-30
CVE-2026-73258 Mongoose: Multipart boundary/header scan logic error in mg_http_next_multipart — mongoose 6.5 Medium 2026-08-20
CVE-2026-75110 MemOS Authentication Bypass via Unset INTERNAL_SERVICE_SECRET — MemOS 9.8 Critical 2026-08-17
CVE-2026-50029 js-toml has silent type confusion via falsy-primitive duplicate-key bypass — js-toml 5.3 Medium 2026-08-14
CVE-2026-67207 Wolf CMS 0.8.3.1 Authorization Bypass via BackupRestoreController — wolfcms 8.8 High 2026-07-30
CVE-2026-48032 Hulumi: IAM-role policy checks bypassed when the role trusts multiple OIDC providers — hulumi 8.3 High 2026-07-24
CVE-2026-65903 DOMPurify before 3.4.0 ADD_TAGS Function Bypasses FORBID_TAGS — DOMPurify 6.1 Medium 2026-07-23
CVE-2026-22660 FlaskBB Logic Flaw Authorization Group Deletion via Bulk AJAX Endpoint — flaskbb 7.2 High 2026-07-10
CVE-2026-14686 HdrHistogram Range Check DoubleHistogram.java org.HdrHistogram.DoubleHistogram.recordValue comparison — HdrHistogram 3.3 Low 2026-07-05
CVE-2026-10097 ML-KEM-1024 x64 AVX2 incomplete cipher text comparison enables IND-CCA2 break and static private-key recovery — wolfSSL - - 2026-06-25
CVE-2026-9369 NousResearch hermes-agent CLI web-dashboard web_server.py _discover_dashboard_plugins comparison — hermes-agent 5.3 Medium 2026-05-24
CVE-2026-35040 fast-jwt: Stateful RegExp (/g or /y) causes non-deterministic allowed-claim validation (logical DoS) — fast-jwt 5.3 Medium 2026-04-09
CVE-2026-34574 Parse Server: Session field immutability bypass via falsy-value guard — parse-server 7.1AI High AI 2026-03-31
CVE-2026-34210 mppx has Stripe charge credential replay via missing idempotency check — mppx 7.5 - 2026-03-31
CVE-2026-32322 soroban-sdk: `Fr` scalar field equality comparison bypasses modular reduction — rs-soroban-sdk 5.3 Medium 2026-03-12

Vulnerabilities classified as CWE-697 (不充分的比较) represent 73 CVEs. The CWE taxonomy describes the weakness; review individual CVEs for product-specific impact.