VariantDraft

CWE-498Cloneable Class Containing Sensitive Information

Category: data-exposure

Description

The code contains a class with sensitive data, but the class is cloneable. The data can then be accessed by cloning the class. Cloneable classes are effectively open classes, since data cannot be hidden in them. Classes that do not explicitly deny cloning can be cloned by any other class without running the constructor.

Common consequences· 1

  • Access Control — Bypass Protection Mechanism
    A class that can be cloned can be produced without executing the constructor. This is dangerous since the constructor may perform security-related checks. By allowing the object to be cloned, those checks may be bypassed.

Potential mitigations· 1

  • [Implementation]If you do make your classes clonable, ensure that your clone method is final and throw super.clone().

References

  1. https://cwe.mitre.org/data/definitions/498.html

Related by meaning· 6

Nearest entities by semantic similarity across the cs-graph corpus.

CWE
Serializable Class Containing Sensitive Data
CWE
Public cloneable() Method Without Final ('Object Hijack')
CWE
Returning a Mutable Object to an Untrusted Caller
CWE
clone() Method Without super.clone()
CWE
Public Static Field Not Marked Final
CWE
Public Static Final Field References Mutable Object
Sourced from MITRE CWE 4.20. Curated for EU compliance use cases by Adam Lundqvist, Founder at SQUR.