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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CWE-798 (使用硬编码的凭证) — Vulnerability Class 559

559 vulnerabilities classified as CWE-798 (使用硬编码的凭证). AI Chinese analysis included.

CWE-798 represents a critical security weakness where authentication mechanisms rely on static, embedded credentials rather than dynamic verification. This flaw typically manifests as default administrative accounts with simple, hard-coded passwords or cryptographic keys stored directly within the source code or configuration files. Attackers exploit this vulnerability by scanning for these predictable credentials, gaining immediate, unauthorized access to sensitive systems without needing to bypass complex security controls. To mitigate this risk, developers must eliminate static secrets entirely, implementing robust credential management solutions such as secure vaults, environment variables, or hardware security modules. Additionally, enforcing strong password policies, regular key rotation, and multi-factor authentication ensures that access rights are dynamic and secure, significantly reducing the attack surface against unauthorized entry.

MITRE CWE Description
The product contains hard-coded credentials, such as a password or cryptographic key. There are two main variations: Inbound: the product contains an authentication mechanism that checks the input credentials against a hard-coded set of credentials. In this variant, a default administration account is created, and a simple password is hard-coded into the product and associated with that account. This hard-coded password is the same for each installation of the product, and it usually cannot be changed or disabled by system administrators without manually modifying the program, or otherwise patching the product. It can also be difficult for the administrator to detect. Outbound: the product connects to another system or component, and it contains hard-coded credentials for connecting to that component. This variant applies to front-end systems that authenticate with a back-end service. The back-end service may require a fixed password that can be easily discovered. The programmer may simply hard-code those back-end credentials into the front-end product.
Common Consequences (2)
Access ControlBypass Protection Mechanism
If hard-coded passwords are used, it is almost certain that malicious users will gain access to the account in question. Any user of the product that hard-codes passwords may be able to extract the password. Client-side systems with hard-coded passwords pose even more of a threat, since the extracti…
Integrity, Confidentiality, Availability, Access Control, OtherRead Application Data, Gain Privileges or Assume Identity, Execute Unauthorized Code or Commands, Other
This weakness can lead to the exposure of resources or functionality to unintended actors, possibly providing attackers with sensitive information or even execute arbitrary code. If the password is ever discovered or published (a common occurrence on the Internet), then anybody with knowledge of thi…
Mitigations (5)
Architecture and DesignFor outbound authentication: store passwords, keys, and other credentials outside of the code in a strongly-protected, encrypted configuration file or database that is protected from access by all outsiders, including other local users on the same system. Properly protect the key (CWE-320). If you cannot use encryption to protect the file, then make sure that the permissions are as restrictive as …
Architecture and DesignFor inbound authentication: Rather than hard-code a default username and password, key, or other authentication credentials for first time logins, utilize a "first login" mode that requires the user to enter a unique strong password or key.
Architecture and DesignIf the product must contain hard-coded credentials or they cannot be removed, perform access control checks and limit which entities can access the feature that requires the hard-coded credentials. For example, a feature might only be enabled through the system console instead of through a network connection.
Architecture and DesignFor inbound authentication using passwords: apply strong one-way hashes to passwords and store those hashes in a configuration file or database with appropriate access control. That way, theft of the file/database still requires the attacker to try to crack the password. When handling an incoming password during authentication, take the hash of the password and compare it to the saved hash. Use ra…
Architecture and DesignFor front-end to back-end connections: Three solutions are possible, although none are complete. The first suggestion involves the use of generated passwords or keys that are changed automatically and must be entered at given time intervals by a system administrator. These passwords will be held in memory and only be valid for the time intervals. Next, the passwords or keys should be limited at th…
Examples (2)
The following code uses a hard-coded password to connect to a database:
... DriverManager.getConnection(url, "scott", "tiger"); ...
Bad · Java
javap -c ConnMngr.class 22: ldc #36; //String jdbc:mysql://ixne.com/rxsql 24: ldc #38; //String scott 26: ldc #17; //String tiger
Attack
The following code is an example of an internal hard-coded password in the back-end:
int VerifyAdmin(char *password) { if (strcmp(password, "Mew!")) { printf("Incorrect Password!\n"); return(0) } printf("Entering Diagnostic Mode...\n"); return(1); }
Bad · C
int VerifyAdmin(String password) { if (!password.equals("Mew!")) { return(0) } //Diagnostic Mode return(1); }
Bad · Java
CVE IDTitleCVSSSeverityPublished
CVE-2018-0039 Contrail Service Orchestration: Hardcoded credentials for Grafana service — Contrail Service Orchestration 9.8 -2018-07-11
CVE-2018-0041 Contrail Service Orchestration: Hardcoded credentials for Keystone service. — Contrail Service Orchestration 9.1 -2018-07-11
CVE-2018-10633 Universal Robots Robot Controllers 安全漏洞 — Universal Robots Robot Controller version CB 3.1, SW Version 3.4.5-100 9.8 -2018-07-11
CVE-2018-4846 多款Siemens产品安全漏洞 — RAPIDLab 1200 systems RAPIDPoint 400 systems RAPIDPoint 500 systems RAPIDLab 1200 Series RAPIDPoint 500 systems RAPIDPoint 500 systems RAPIDPoint 500 systems RAPIDPoint 400 systems 8.8 -2018-06-26
CVE-2018-0329 Cisco Wide Area Application Services Software 信任管理问题漏洞 — Cisco Wide Area Application Services unknown 7.5 -2018-06-07
CVE-2018-0222 Cisco Digital Network Architecture Center 安全漏洞 — Cisco Digital Network Architecture Center 9.8 -2018-05-17
CVE-2018-8857 多款Philips Brilliance CT设备安全漏洞 — Brilliance CT Scanners 7.8 -2018-05-04
CVE-2017-9656 Philips DoseWise Portal 安全漏洞 — DoseWise Portal 9.1 -2018-04-24
CVE-2018-0150 Cisco IOS XE Software 安全漏洞 — Cisco IOS XE 9.8 -2018-03-28
CVE-2018-5551 DocuTrac DTISQLInstaller.exe Hard-Coded Credentials — DTISQLInstaller.exe 10.0 -2018-03-19
CVE-2018-0141 Cisco Prime Collaboration Provisioning Software 安全漏洞 — Cisco Prime Collaboration Provisioning 7.8 -2018-03-08
CVE-2017-12350 Cisco Umbrella Insights Virtual Appliances 安全漏洞 — Cisco Umbrella Insights Virtual Appliance 8.2 -2017-11-16
CVE-2017-14027 多款Korenix产品安全漏洞 — Korenix JetNet 9.8 -2017-11-01
CVE-2017-12317 Cisco AMP For Endpoints应用程序安全漏洞 — Cisco AMP for Endpoints 7.8 -2017-10-21
CVE-2017-12709 多款Westermo设备安全漏洞 — Westermo MRD-305-DIN, MRD-315, MRD-355, and MRD-455 6.6 -2017-08-25
CVE-2017-3222 AmosConnect 8 安全漏洞 — AmosConnect 9.8 -2017-07-22
CVE-2014-9198 Schneider Electric ETG3000 FactoryCast HMI Gateway Use of Hard-coded Credentials — ETG3000 FactoryCast HMI Gateway 9.8 -2015-01-27
CVE-2014-2350 Emerson DeltaV Use of Hard-coded Credentials — DeltaV 9.8 -2014-05-22
CVE-2012-6428 Carlo Gavazzi EOS Box Hard-Coded Credentials — EOS-Box 9.8 -2012-12-23

Vulnerabilities classified as CWE-798 (使用硬编码的凭证) represent 559 CVEs. The CWE taxonomy describes the weakness; review individual CVEs for product-specific impact.