CWE-665: Improper Initialization
ClassLikelihood of exploit: Medium
The product does not initialize or incorrectly initializes a resource, which might leave the resource in an unexpected state when it is accessed or used.
This can have security implications when the associated resource is expected to have certain properties or values, such as a variable that determines whether a user has been authenticated or not.
Consequences
- Confidentiality: Read Memory, Read Application Data
- Access Control: Bypass Protection Mechanism
- Availability: DoS: Crash, Exit, or Restart
How to prevent it
- Requirements: Use a language that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid. For example, in Java, if the programmer does not explicitly initialize a variable, then the code could produce a compile-time error (if the variable is local) or automatically initialize the variable to the default value for the variable's type. In Perl, if explicit initialization is not performed, then a default value of undef is assigned, which is interpreted as 0, false, or an equivalent value depending on the context in which the variable is accessed.
- Architecture and Design: Identify all variables and data stores that receive information from external sources, and apply input validation to make sure that they are only initialized to expected values.
- Implementation: Explicitly initialize all your variables and other data stores, either during declaration or just before the first usage.
- Implementation: Pay close attention to complex conditionals that affect initialization, since some conditions might not perform the initialization.
- Implementation: Avoid race conditions (CWE-362) during initialization routines.
- Build and Compilation: Run or compile your product with settings that generate warnings about uninitialized variables or data.
Recent advisories
- GHSA-cmwh-pvxp-8882 — DOMPurify: Permanent `ALLOWED_ATTR` pollution via `setConfig()` bypassing the hook clone-guard (incomplete fix of the 3.4.7 hook-pollution patch)
- GHSA-2fqr-mr3j-6wp8 — aiohttp: Host-Only Cookies Become Domain Cookies After CookieJar Persistence
- GHSA-7rrj-xr53-82p7 — Tokio reject_remote_clients configuration may get dropped when creating a Windows named pipe
- GHSA-v2cv-wwxq-qq97 — Moby Docker cp broken with debian containers
- CVE-2022-0847 — A flaw was found in the way the "flags" member of the new pipe buffer structure was lacking proper initialization in copy_page_to_iter_pipe and push_pipe…
- GHSA-pw3c-h7wp-cvhx — Improper Initialization in Pillow
- GHSA-9c22-pwxw-p6hx — Improper Initialization in OpenZeppelin
- GHSA-5vp3-v4hc-gx76 — UUPSUpgradeable vulnerability in @openzeppelin/contracts
- GHSA-vvg4-vgrv-xfr7 — Incomplete validation in `tf.raw_ops.CTCLoss`
- GHSA-mq5c-prh3-3f3h — Invalid validation in `QuantizeAndDequantizeV2`
- GHSA-cjc7-49v2-jp64 — Incomplete validation in `SparseAdd`
- GHSA-9rpc-5v9q-5r7f — Incomplete validation in `SparseReshape`
- GHSA-8pmx-p244-g88h — Interpreter crash from `tf.io.decode_raw`
- GHSA-86wf-436m-h424 — Resource Exhaustion Denial of Service in http-proxy-agent
- CVE-2020-27950 — A memory initialization issue was addressed.
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor