CWE-499
Serializable Class Containing Sensitive Data
The code contains a class with sensitive data, but the class does not explicitly deny serialization. The data can be accessed by serializing the class through another class.
CVE-2024-5657 (GCVE-0-2024-5657)
Vulnerability from cvelistv5
Published
2024-06-06 10:29
Modified
2025-09-03 07:13
Severity ?
VLAI Severity ?
EPSS score ?
CWE
- CWE-499 - Serializable Class Containing Sensitive Data
Summary
The CraftCMS plugin Two-Factor Authentication in versions 3.3.1, 3.3.2 and 3.3.3 discloses the password hash of the currently authenticated user after submitting a valid TOTP.
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Born05 | CraftCMS Plugin - Two-Factor Authentication |
Version: 3.3.1 < |
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2024-5657",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2024-06-06T15:45:33.517016Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2024-06-06T15:45:58.497Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
},
{
"providerMetadata": {
"dateUpdated": "2024-08-01T21:18:06.699Z",
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE"
},
"references": [
{
"tags": [
"third-party-advisory",
"x_transferred"
],
"url": "https://github.com/sbaresearch/advisories/tree/public/2024/SBA-ADV-20240202-01_CraftCMS_Plugin_Two-Factor_Authentication_Password_Hash_Disclosure"
},
{
"tags": [
"product",
"x_transferred"
],
"url": "https://plugins.craftcms.com/two-factor-authentication?craft4"
},
{
"tags": [
"release-notes",
"x_transferred"
],
"url": "https://github.com/born05/craft-twofactorauthentication/releases/tag/3.3.4"
},
{
"tags": [
"x_transferred"
],
"url": "http://www.openwall.com/lists/oss-security/2024/06/06/1"
}
],
"title": "CVE Program Container"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "CraftCMS Plugin - Two-Factor Authentication",
"repo": "https://github.com/born05/craft-twofactorauthentication",
"vendor": "Born05",
"versions": [
{
"lessThanOrEqual": "3.3.3",
"status": "affected",
"version": "3.3.1",
"versionType": "custom"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "finder",
"value": "Fabian Funder (SBA Research)"
},
{
"lang": "en",
"type": "finder",
"value": "Jakob Pachmann (SBA Research)"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cdiv\u003e\u003cdiv\u003eThe CraftCMS plugin Two-Factor Authentication in versions 3.3.1, 3.3.2 and 3.3.3 discloses the password hash of the currently authenticated user after submitting a valid TOTP.\u003c/div\u003e\u003c/div\u003e"
}
],
"value": "The CraftCMS plugin Two-Factor Authentication in versions 3.3.1, 3.3.2 and 3.3.3 discloses the password hash of the currently authenticated user after submitting a valid TOTP."
}
],
"metrics": [
{
"cvssV3_1": {
"attackComplexity": "HIGH",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 3.7,
"baseSeverity": "LOW",
"confidentialityImpact": "LOW",
"integrityImpact": "NONE",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N",
"version": "3.1"
},
"format": "CVSS",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-499",
"description": "CWE-499 Serializable Class Containing Sensitive Data",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2025-09-03T07:13:32.028Z",
"orgId": "1e3a9e0f-5156-4bf8-b8a3-cc311bfc0f4a",
"shortName": "sba-research"
},
"references": [
{
"tags": [
"third-party-advisory"
],
"url": "https://github.com/sbaresearch/advisories/tree/public/2024/SBA-ADV-20240202-01_CraftCMS_Plugin_Two-Factor_Authentication_Password_Hash_Disclosure"
},
{
"tags": [
"product"
],
"url": "https://plugins.craftcms.com/two-factor-authentication?craft4"
},
{
"tags": [
"release-notes"
],
"url": "https://github.com/born05/craft-twofactorauthentication/releases/tag/3.3.4"
},
{
"url": "http://www.openwall.com/lists/oss-security/2024/06/06/1"
}
],
"solutions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "Update to version 3.3.4 or later."
}
],
"value": "Update to version 3.3.4 or later."
}
],
"source": {
"discovery": "UNKNOWN"
},
"title": "CraftCMS Plugin - Two-Factor Authentication - Password Hash Disclosure",
"x_generator": {
"engine": "Vulnogram 0.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "1e3a9e0f-5156-4bf8-b8a3-cc311bfc0f4a",
"assignerShortName": "sba-research",
"cveId": "CVE-2024-5657",
"datePublished": "2024-06-06T10:29:40.393Z",
"dateReserved": "2024-06-05T16:36:00.302Z",
"dateUpdated": "2025-09-03T07:13:32.028Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.1"
}
Mitigation
Phase: Implementation
Description:
- In Java, explicitly define final writeObject() to prevent serialization. This is the recommended solution. Define the writeObject() function to throw an exception explicitly denying serialization.
Mitigation
Phase: Implementation
Description:
- Make sure to prevent serialization of your objects.
No CAPEC attack patterns related to this CWE.