CWE™ | Compliance | Fluid Attacks Help

CWE™

logo

Summary

Common Weakness Enumeration is a community-developed list of software and hardware weakness types. It serves as a common language, a measuring stick for security tools, and as a baseline for weakness identification, mitigation and prevention efforts.

- Version used: CWE™ List 4.13
- Last official version: CWE™ List 4.13

Definitions

Definition Requirements
5. Data transmission without encryption 336. Disable insecure TLS versions
6. Misconfiguration - Insufficient session-ID length 030. Avoid object reutilization
032. Avoid session ID leakages
11. Creating debug binary 078. Disable debugging events
13. Misconfiguration - Password in configuration file 026. Encrypt client-side session information
185. Encrypt sensitive information
15. External control of system or configuration setting 062. Define standard configurations
320. Avoid client-side control enforcement
20. Improper input validation 173. Discard unsafe inputs
22. Improper limitation of a pathname to a restricted directory ("path traversal") 037. Parameters without sensitive data
173. Discard unsafe inputs
320. Avoid client-side control enforcement
342. Validate request parameters
23. Relative path traversal 037. Parameters without sensitive data
36. Absolute path traversal 037. Parameters without sensitive data
173. Discard unsafe inputs
320. Avoid client-side control enforcement
343. Respect the Do Not Track header
73. External control of file name or path 037. Parameters without sensitive data
320. Avoid client-side control enforcement
381. Use of absolute paths
74. Improper neutralization of special elements in output used by a downstream component ("injection") 158. Use a secure programming language
173. Discard unsafe inputs
78. Improper neutralization of special elements used in an OS command ("OS command injection") 173. Discard unsafe inputs
265. Restrict access to critical processes
266. Disable insecure functionalities
79. Improper neutralization of input during web page generation ("cross-site scripting") 029. Cookies with security attributes
173. Discard unsafe inputs
80. Improper neutralization of script-related HTML tags in a web page (basic XSS) 117. Do not interpret HTML code
173. Discard unsafe inputs
89. Improper neutralization of special elements used in an SQL command ("SQL injection") 169. Use parameterized queries
173. Discard unsafe inputs
90. Improper neutralization of special elements used in an LDAP query ('LDAP Injection') 173. Discard unsafe inputs
91. XML injection 173. Discard unsafe inputs
94. Improper control of generation of code ("code injection") 173. Discard unsafe inputs
95. Improper neutralization of directives in dynamically evaluated code ("eval injection") 173. Discard unsafe inputs
321. Avoid deserializing untrusted data
344. Avoid dynamic code execution
98. Improper control of filename for include/require statement in PHP program ("PHP remote file inclusion") 173. Discard unsafe inputs
265. Restrict access to critical processes
266. Disable insecure functionalities
112. Missing XML validation 173. Discard unsafe inputs
114. Process control 266. Disable insecure functionalities
116. Improper encoding or escaping of output 160. Encode system outputs
173. Discard unsafe inputs
348. Use consistent encoding
349. Include HTTP security headers
117. Improper output neutralization for logs 160. Encode system outputs
120. Buffer copy without checking size of input ("classic buffer overflow") 345. Establish protections against overflows
130. Buffer copy without checking size of input ("classic buffer overflow") 169. Use parameterized queries
342. Validate request parameters
134. Use of externally-controlled format string 345. Establish protections against overflows
138. Improper neutralization of special elements 173. Discard unsafe inputs
340. Use octet stream downloads
147. Improper neutralization of input terminators 173. Discard unsafe inputs
150. Improper neutralization of escape, meta, or control sequences 173. Discard unsafe inputs
170. Improper null termination 345. Establish protections against overflows
173. Improper handling of alternate encoding 044. Define an explicit charset
160. Encode system outputs
190. Integer overflow or wraparound 345. Establish protections against overflows
200. Exposure of sensitive information to an unauthorized actor 032. Avoid session ID leakages
119. Hide recipients
181. Transmit data using secure protocols
261. Avoid exposing sensitive information
375. Remove sensitive data from client-side applications
203. Observable discrepancy 225. Proper authentication responses
208. Observable timing discrepancy 368. Use of indistinguishable response time
209. Generation of error message containing sensitive information 077. Avoid disclosing technical information
210. Self-generated error message containing sensitive information 077. Avoid disclosing technical information
078. Disable debugging events
212. Improper removal of sensitive information before storage or transfer 183. Delete sensitive data securely
360. Remove unnecessary sensitive information
219. Storage of file with sensitive data under web root 339. Avoid storing sensitive files in the web root
221. Information loss or omission 075. Record exceptional events in logs
376. Register severity level
223. Omission of security-relevant information 376. Register severity level
226. Sensitive information in resource not removed before reuse 183. Delete sensitive data securely
360. Remove unnecessary sensitive information
233. Improper handling of parameters 342. Validate request parameters
235. Improper handling of extra parameters 342. Validate request parameters
250. Execution with unnecessary privileges 095. Define users with privileges
096. Set user's required privileges
186. Use the principle of least privilege
256. Plaintext storage of a password 127. Store hashed passwords
380. Define a password management tool
257. Storing passwords in a recoverable format 238. Establish safe recovery
259. Use of hard-coded password 156. Source code without sensitive information
172. Encrypt connection strings
263. Password aging with long expiration 130. Limit password lifespan
138. Define lifespan for temporary passwords
367. Proper generation of temporary passwords
266. Incorrect privilege assignment 095. Define users with privileges
267. Privilege defined with unsafe actions 035. Manage privilege modifications
269. Improper privilege management 035. Manage privilege modifications
186. Use the principle of least privilege
272. Least privilege violation 186. Use the principle of least privilege
276. Incorrect default permissions 095. Define users with privileges
096. Set user's required privileges
186. Use the principle of least privilege
341. Use the principle of deny by default
284. Improper access control 176. Restrict system objects
229. Request access credentials
266. Disable insecure functionalities
320. Avoid client-side control enforcement
285. Improper authorization 095. Define users with privileges
177. Avoid caching and temporary files
320. Avoid client-side control enforcement
341. Use the principle of deny by default
287. Improper authentication 122. Validate credential ownership
228. Authenticate using standard protocols
236. Establish authentication time
264. Request authentication
319. Make authentication options equally secure
334. Avoid knowledge-based authentication
362. Assign MFA mechanisms to a single account
290. Authentication bypass by spoofing 173. Discard unsafe inputs
320. Avoid client-side control enforcement
342. Validate request parameters
294. Authentication bypass by capture-replay 030. Avoid object reutilization
335. Define out of band token lifespan
295. Improper certificate validation 089. Limit validity of certificates
091. Use internally signed certificates
093. Use consistent certificates
364. Provide extended validation (EV) certificates
297. Improper validation of certificate with host mismatch 093. Use consistent certificates
373. Use certificate pinning
298. Improper validation of certificate expiration 089. Limit validity of certificates
090. Use valid certificates
364. Provide extended validation (EV) certificates
299. Improper check for certificate revocation 088. Request client certificates
089. Limit validity of certificates
090. Use valid certificates
306. Missing authentication for critical function 229. Request access credentials
264. Request authentication
265. Restrict access to critical processes
319. Make authentication options equally secure
307. Improper restriction of excessive authentication attempts 210. Delete information from mobile devices
237. Ascertain human interaction
327. Set a rate limit
308. Use of single-factor authentication 030. Avoid object reutilization
231. Implement a biometric verification component
311. Missing encryption of sensitive data 172. Encrypt connection strings
181. Transmit data using secure protocols
185. Encrypt sensitive information
319. Cleartext transmission of sensitive information 181. Transmit data using secure protocols
338. Implement perfect forward secrecy
321. Use of hard-coded cryptographic key 145. Protect system cryptographic keys
224. Use secure cryptographic mechanisms
322. Key exchange without entity authentication 145. Protect system cryptographic keys
323. Reusing a nonce, key Pair in encryption 145. Protect system cryptographic keys
324. Use of a key past its expiration date 361. Replace cryptographic keys
326. Inadequate encryption strength 147. Use pre-existent mechanisms
224. Use secure cryptographic mechanisms
346. Use initialization vectors once
327. Use of a broken or risky cryptographic algorithm 147. Use pre-existent mechanisms
224. Use secure cryptographic mechanisms
328. Use of weak hash 150. Set minimum size for hash functions
330. Use of insufficiently random values 223. Uniform distribution in random numbers
331. Insufficient entropy 223. Uniform distribution in random numbers
224. Use secure cryptographic mechanisms
334. Small space of random values 223. Uniform distribution in random numbers
340. Generation of predictable numbers or identifiers 223. Uniform distribution in random numbers
224. Use secure cryptographic mechanisms
345. Insufficient verification of data authenticity 030. Avoid object reutilization
178. Use digital signatures
238. Establish safe recovery
346. Origin validation error 128. Define unique data source
347. Improper verification of cryptographic signature 178. Use digital signatures
350. Reliance on reverse DNS resolution for a security-critical action 062. Define standard configurations
356. Verify sub-domain names
352. Cross-site request forgery (CSRF) 029. Cookies with security attributes
174. Transactions without a distinguishable pattern
353. Missing support for integrity check 178. Use digital signatures
262. Verify third-party components
330. Verify Subresource Integrity
359. Exposure of private personal information to an unauthorized actor 180. Use mock data
184. Obfuscate application data
261. Avoid exposing sensitive information
300. Mask sensitive data
362. Concurrent execution using shared resource with improper synchronization ("race condition") 337. Make critical logic flows thread safe
367. Time-of-check time-of-use (TOCTOU) race condition 337. Make critical logic flows thread safe
353. Schedule firmware updates
377. Insecure temporary file 036. Do not deploy temporary files
177. Avoid caching and temporary files
384. Session fixation 030. Avoid object reutilization
390. Detection of error condition without action 075. Record exceptional events in logs
396. Declaration of catch for generic exception 359. Avoid using generic exceptions
397. Declaration of throws for generic exception 359. Avoid using generic exceptions
400. Uncontrolled resource consumption 072. Set maximum response time
158. Use a secure programming language
164. Use optimized structures
173. Discard unsafe inputs
404. Improper resource shutdown or release 023. Terminate inactive user sessions
167. Close unused resources
409. Improper handling of highly compressed data (data amplification) 039. Define maximum file size
419. Unprotected primary channel 033. Restrict administrative access
434. Unrestricted upload of file with dangerous type 040. Compare file format and extension
444. Inconsistent interpretation of HTTP requests ("HTTP request smuggling") 062. Define standard configurations
173. Discard unsafe inputs
266. Disable insecure functionalities
453. Insecure default variable initialization 161. Define secure default options
456. Missing initialization of a variable 168. Initialize variables explicitly
457. Use of uninitialized variable 168. Initialize variables explicitly
459. Incomplete cleanup 183. Delete sensitive data securely
210. Delete information from mobile devices
474. Use of function with inconsistent implementations 162. Avoid duplicate code
494. Download of code without integrity check 330. Verify Subresource Integrity
497. Exposure of sensitive system information to an unauthorized control sphere 078. Disable debugging events
095. Define users with privileges
502. Deserialization of untrusted data 321. Avoid deserializing untrusted data
507. Trojan horse 155. Application free of malicious code
262. Verify third-party components
509. Replicating malicious code (virus or worm) 041. Scan files for malicious code
118. Inspect attachments
510. Trapdoor 154. Eliminate backdoors
155. Application free of malicious code
511. Logic/Time bomb 155. Application free of malicious code
512. Spyware 273. Define a fixed security suite
521. Weak password requirements 127. Store hashed passwords
129. Validate previous passwords
130. Limit password lifespan
132. Passphrases with at least 4 words
133. Passwords with at least 20 characters
332. Prevent the use of breached passwords
522. Insufficiently protected credentials 132. Passphrases with at least 4 words
133. Passwords with at least 20 characters
134. Store passwords with salt
135. Passwords with random salt
139. Set minimum OTP length
150. Set minimum size for hash functions
523. Unprotected transport of credentials 153. Out of band transactions
181. Transmit data using secure protocols
524. Use of cache containing sensitive information 177. Avoid caching and temporary files
209. Manage passwords in cache
525. Use of web browser cache containing sensitive information 177. Avoid caching and temporary files
349. Include HTTP security headers
526. Cleartext Storage of Sensitive Information in an Environment Variable 185. Encrypt sensitive information
300. Mask sensitive data
532. Insertion of sensitive information into log file 083. Avoid logging sensitive data
539. Use of persistent cookies containing sensitive information 029. Cookies with security attributes
342. Validate request parameters
540. Inclusion of sensitive information in source code 156. Source code without sensitive information
548. Exposure of information through directory listing 176. Restrict system objects
266. Disable insecure functionalities
549. Missing password field masking 300. Mask sensitive data
561. Dead code 162. Avoid duplicate code
598. Use of GET request method with sensitive query strings 169. Use parameterized queries
342. Validate request parameters
601. URL redirection to untrusted site ("open redirect") 324. Control redirects
602. Client-side enforcement of server-side security 266. Disable insecure functionalities
320. Avoid client-side control enforcement
603. Use of client-side authentication 264. Request authentication
611. Improper restriction of XML External Entity reference 157. Use the strict mode
173. Discard unsafe inputs
613. Insufficient session expiration 023. Terminate inactive user sessions
030. Avoid object reutilization
031. Discard user session data
369. Set a maximum lifetime in sessions
614. Sensitive cookie in HTTPS session without 'secure' attribute 029. Cookies with security attributes
615. Inclusion of sensitive information in source code comments 156. Source code without sensitive information
620. Unverified password change 131. Deny multiple password changing attempts
238. Establish safe recovery
301. Notify configuration changes
639. Authorization bypass through user-controlled key 035. Manage privilege modifications
176. Restrict system objects
320. Avoid client-side control enforcement
640. Weak password recovery mechanism for forgotten password 126. Set a password regeneration mechanism
130. Limit password lifespan
131. Deny multiple password changing attempts
132. Passphrases with at least 4 words
133. Passwords with at least 20 characters
139. Set minimum OTP length
238. Establish safe recovery
332. Prevent the use of breached passwords
334. Avoid knowledge-based authentication
367. Proper generation of temporary passwords
642. External control of critical state data 026. Encrypt client-side session information
328. Request MFA for critical systems
643. Improper neutralization of data within XPath expressions ("XPath injection") 173. Discard unsafe inputs
644. Improper neutralization of HTTP headers for scripting syntax 349. Include HTTP security headers
645. Overly restrictive account lockout mechanism 226. Avoid account lockouts
646. Reliance on file name or extension of externally-supplied file 040. Compare file format and extension
042. Validate file format
340. Use octet stream downloads
651. Exposure of WSDL file containing sensitive information 325. Protect WSDL files
693. Protection mechanism failure 266. Disable insecure functionalities
326. Detect rooted devices
351. Assign unique keys to each device
352. Enable trusted execution
354. Prevent firmware downgrades
710. Improper adherence to coding standards 158. Use a secure programming language
366. Associate type to variables
381. Use of absolute paths
732. Incorrect permission assignment for critical resource 186. Use the principle of least privilege
341. Use the principle of deny by default
749. Exposed dangerous method or function 041. Scan files for malicious code
266. Disable insecure functionalities
759. Use of a one-way hash without a salt 134. Store passwords with salt
135. Passwords with random salt
760. Use of a one-way hash with a predictable salt 134. Store passwords with salt
135. Passwords with random salt
770. Allocation of resources without limits or throttling 039. Define maximum file size
072. Set maximum response time
327. Set a rate limit
778. Insufficient logging 075. Record exceptional events in logs
376. Register severity level
779. Logging of excessive data 322. Avoid excessive logging
780. Use of RSA algorithm without OAEP 370. Use OAEP padding with RSA
798. Use of hard-coded credentials 156. Source code without sensitive information
172. Encrypt connection strings
357. Use stateless session tokens
799. Improper control of interaction frequency 237. Ascertain human interaction
327. Set a rate limit
804. Guessable CAPTCHA 237. Ascertain human interaction
830. Inclusion of web functionality from an untrusted source 050. Control calls to interpreted code
353. Schedule firmware updates
838. Inappropriate encoding for output context 348. Use consistent encoding
862. Missing authorization 319. Make authentication options equally secure
915. Improperly controlled modification of dynamically-determined object attributes 342. Validate request parameters
344. Avoid dynamic code execution
916. Use of password hash with insufficient computational effort 127. Store hashed passwords
134. Store passwords with salt
135. Passwords with random salt
333. Store salt values separately
918. Server-side request forgery (SSRF) 173. Discard unsafe inputs
324. Control redirects
922. Insecure storage of sensitive information 329. Keep client-side storage without sensitive data
339. Avoid storing sensitive files in the web root
923. Improper restriction of communication channel to intended endpoints 259. Segment the organization network
273. Define a fixed security suite
1004. Sensitive cookie without 'HttpOnly' flag 029. Cookies with security attributes
1021. Improper restriction of rendered UI layers or frames 340. Use octet stream downloads
349. Include HTTP security headers
1022. Use of web link to untrusted target with window.opener access 324. Control redirects
1041. Use of redundant code 171. Remove commented-out code
1085. Invokable control element with excessive volume of commented-out code 171. Remove commented-out code
1120. Excessive code complexity 379. Keep low McCabe cyclomatic complexity
1121. Excessive McCabe cyclomatic complexity 379. Keep low McCabe cyclomatic complexity
1192. System-on-Chip (SoC) using components without unique identifiers 352. Enable trusted execution
1204. Generation of weak initialization vector (IV) 372. Proper Use of Initialization Vector (IV)
1230. Exposure of sensitive information through metadata 045. Remove metadata when sharing files
1233. Improper hardware lock protection for security sensitive controls 351. Assign unique keys to each device
352. Enable trusted execution
1262. Improper access control for register interface 235. Define credential interface
252. Configure key encryption
1269. Product released in non-release configuration 078. Disable debugging events
154. Eliminate backdoors
159. Obfuscate code
1272. Sensitive information uncleared before debug/power state transition 360. Remove unnecessary sensitive information
1275. Sensitive cookie with improper sameSite attribute 029. Cookies with security attributes
1284. Improper validation of specified quantity in input 173. Discard unsafe inputs
1287. Improper validation of specified type of input 173. Discard unsafe inputs
1295. Debug messages revealing unnecessary information 083. Avoid logging sensitive data
1325. Improperly controlled sequential memory allocation 072. Set maximum response time
158. Use a secure programming language
164. Use optimized structures
173. Discard unsafe inputs
1390. Weak Authentication 228. Authenticate using standard protocols
264. Request authentication
319. Make authentication options equally secure
334. Avoid knowledge-based authentication
362. Assign MFA mechanisms to a single account
1391. Use of Weak Credentials 130. Limit password lifespan
132. Passphrases with at least 4 words
133. Passwords with at least 20 characters
135. Passwords with random salt
139. Set minimum OTP length
332. Prevent the use of breached passwords
1392. Use of Default Credentials 142. Change system default credentials
266. Disable insecure functionalities
1393. Use of Default Password 142. Change system default credentials
266. Disable insecure functionalities
1394. Use of Default Cryptographic Key 142. Change system default credentials
266. Disable insecure functionalities
1395. Dependency on Vulnerable Third-Party Component 262. Verify third-party components
1419. Incorrect Initialization of Resource 366. Associate type to variables
Free trial message
Free trial
Search for vulnerabilities in your apps for free with Fluid Attacks' automated security testing! Start your 21-day free trial and discover the benefits of the Continuous Hacking Essential plan. If you prefer the Advanced plan, which includes the expertise of Fluid Attacks' hacking team, fill out this contact form.