CVE-2026-27206 (GCVE-0-2026-27206)
Vulnerability from cvelistv5 – Published: 2026-02-21 07:01 – Updated: 2026-02-24 18:57
VLAI?
Title
Zumba Json Serializer has a potential PHP Object Injection via Unrestricted @type in unserialize()
Summary
Zumba Json Serializer is a library to serialize PHP variables in JSON format. In versions 3.2.2 and below, the library allows deserialization of PHP objects from JSON using a special @type field. The deserializer instantiates any class specified in the @type field without restriction. When processing untrusted JSON input, this behavior may allow an attacker to instantiate arbitrary classes available in the application. If a vulnerable application passes attacker-controlled JSON into JsonSerializer::unserialize() and contains classes with dangerous magic methods (such as __wakeup() or __destruct()), this may lead to PHP Object Injection and potentially Remote Code Execution (RCE), depending on available gadget chains in the application or its dependencies. This behavior is similar in risk profile to PHP's native unserialize() when used without the allowed_classes restriction. Applications are impacted only if untrusted or attacker-controlled JSON is passed into JsonSerializer::unserialize() and the application or its dependencies contain classes that can be leveraged as a gadget chain. This issue has been fixed in version 3.2.3. If an immediate upgrade isn't feasible, mitigate the vulnerability by never deserializing untrusted JSON with JsonSerializer::unserialize(), validating and sanitizing all JSON input before deserialization, and disabling @type-based object instantiation wherever possible.
Severity ?
8.1 (High)
CWE
- CWE-502 - Deserialization of Untrusted Data
Assigner
References
| URL | Tags | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| zumba | json-serializer |
Affected:
< 3.2.3
|
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-27206",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-02-24T18:56:54.179563Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-02-24T18:57:10.054Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "json-serializer",
"vendor": "zumba",
"versions": [
{
"status": "affected",
"version": "\u003c 3.2.3"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Zumba Json Serializer is a library to serialize PHP variables in JSON format. In versions 3.2.2 and below, the library allows deserialization of PHP objects from JSON using a special @type field. The deserializer instantiates any class specified in the @type field without restriction. When processing untrusted JSON input, this behavior may allow an attacker to instantiate arbitrary classes available in the application. If a vulnerable application passes attacker-controlled JSON into JsonSerializer::unserialize() and contains classes with dangerous magic methods (such as __wakeup() or __destruct()), this may lead to PHP Object Injection and potentially Remote Code Execution (RCE), depending on available gadget chains in the application or its dependencies. This behavior is similar in risk profile to PHP\u0027s native unserialize() when used without the allowed_classes restriction. Applications are impacted only if untrusted or attacker-controlled JSON is passed into JsonSerializer::unserialize() and the application or its dependencies contain classes that can be leveraged as a gadget chain. This issue has been fixed in version 3.2.3. If an immediate upgrade isn\u0027t feasible, mitigate the vulnerability by never deserializing untrusted JSON with JsonSerializer::unserialize(), validating and sanitizing all JSON input before deserialization, and disabling @type-based object instantiation wherever possible."
}
],
"metrics": [
{
"cvssV3_1": {
"attackComplexity": "HIGH",
"attackVector": "NETWORK",
"availabilityImpact": "HIGH",
"baseScore": 8.1,
"baseSeverity": "HIGH",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-502",
"description": "CWE-502: Deserialization of Untrusted Data",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-02-21T07:01:00.843Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/zumba/json-serializer/security/advisories/GHSA-v7m3-fpcr-h7m2",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/zumba/json-serializer/security/advisories/GHSA-v7m3-fpcr-h7m2"
},
{
"name": "https://github.com/zumba/json-serializer/commit/bf26227879adefce75eb9651040d8982be97b881",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/zumba/json-serializer/commit/bf26227879adefce75eb9651040d8982be97b881"
},
{
"name": "https://github.com/zumba/json-serializer/releases/tag/3.2.3",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/zumba/json-serializer/releases/tag/3.2.3"
}
],
"source": {
"advisory": "GHSA-v7m3-fpcr-h7m2",
"discovery": "UNKNOWN"
},
"title": "Zumba Json Serializer has a potential PHP Object Injection via Unrestricted @type in unserialize()"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-27206",
"datePublished": "2026-02-21T07:01:00.843Z",
"dateReserved": "2026-02-18T19:47:02.156Z",
"dateUpdated": "2026-02-24T18:57:10.054Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"nvd": "{\"cve\":{\"id\":\"CVE-2026-27206\",\"sourceIdentifier\":\"security-advisories@github.com\",\"published\":\"2026-02-21T07:16:11.753\",\"lastModified\":\"2026-02-23T18:13:53.397\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"Zumba Json Serializer is a library to serialize PHP variables in JSON format. In versions 3.2.2 and below, the library allows deserialization of PHP objects from JSON using a special @type field. The deserializer instantiates any class specified in the @type field without restriction. When processing untrusted JSON input, this behavior may allow an attacker to instantiate arbitrary classes available in the application. If a vulnerable application passes attacker-controlled JSON into JsonSerializer::unserialize() and contains classes with dangerous magic methods (such as __wakeup() or __destruct()), this may lead to PHP Object Injection and potentially Remote Code Execution (RCE), depending on available gadget chains in the application or its dependencies. This behavior is similar in risk profile to PHP\u0027s native unserialize() when used without the allowed_classes restriction. Applications are impacted only if untrusted or attacker-controlled JSON is passed into JsonSerializer::unserialize() and the application or its dependencies contain classes that can be leveraged as a gadget chain. This issue has been fixed in version 3.2.3. If an immediate upgrade isn\u0027t feasible, mitigate the vulnerability by never deserializing untrusted JSON with JsonSerializer::unserialize(), validating and sanitizing all JSON input before deserialization, and disabling @type-based object instantiation wherever possible.\"},{\"lang\":\"es\",\"value\":\"Zumba Json Serializer es una biblioteca para serializar variables de PHP en formato JSON. En las versiones 3.2.2 e inferiores, la biblioteca permite la deserializaci\u00f3n de objetos PHP desde JSON utilizando un campo especial @type. El deserializador instancia cualquier clase especificada en el campo @type sin restricciones. Al procesar entrada JSON no confiable, este comportamiento puede permitir a un atacante instanciar clases arbitrarias disponibles en la aplicaci\u00f3n. Si una aplicaci\u00f3n vulnerable pasa JSON controlado por el atacante a JsonSerializer::unserialize() y contiene clases con m\u00e9todos m\u00e1gicos peligrosos (como __wakeup() o __destruct()), esto puede llevar a la inyecci\u00f3n de objetos PHP y, potencialmente, a la ejecuci\u00f3n remota de c\u00f3digo (RCE), dependiendo de las cadenas de gadgets disponibles en la aplicaci\u00f3n o sus dependencias. Este comportamiento es similar en perfil de riesgo al unserialize() nativo de PHP cuando se usa sin la restricci\u00f3n allowed_classes. Las aplicaciones se ven afectadas solo si se pasa JSON no confiable o controlado por el atacante a JsonSerializer::unserialize() y la aplicaci\u00f3n o sus dependencias contienen clases que pueden ser aprovechadas como una cadena de gadgets. Este problema ha sido solucionado en la versi\u00f3n 3.2.3. Si una actualizaci\u00f3n inmediata no es factible, mitigue la vulnerabilidad al nunca deserializar JSON no confiable con JsonSerializer::unserialize(), validando y saneando toda la entrada JSON antes de la deserializaci\u00f3n, y deshabilitando la instanciaci\u00f3n de objetos basada en @type siempre que sea posible.\"}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":8.1,\"baseSeverity\":\"HIGH\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"HIGH\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":2.2,\"impactScore\":5.9}]},\"weaknesses\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-502\"}]}],\"references\":[{\"url\":\"https://github.com/zumba/json-serializer/commit/bf26227879adefce75eb9651040d8982be97b881\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/zumba/json-serializer/releases/tag/3.2.3\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/zumba/json-serializer/security/advisories/GHSA-v7m3-fpcr-h7m2\",\"source\":\"security-advisories@github.com\"}]}}",
"vulnrichment": {
"containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-27206\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"total\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-02-24T18:56:54.179563Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-02-24T18:57:02.736Z\"}}], \"cna\": {\"title\": \"Zumba Json Serializer has a potential PHP Object Injection via Unrestricted @type in unserialize()\", \"source\": {\"advisory\": \"GHSA-v7m3-fpcr-h7m2\", \"discovery\": \"UNKNOWN\"}, \"metrics\": [{\"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 8.1, \"attackVector\": \"NETWORK\", \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H\", \"integrityImpact\": \"HIGH\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"HIGH\", \"availabilityImpact\": \"HIGH\", \"privilegesRequired\": \"NONE\", \"confidentialityImpact\": \"HIGH\"}}], \"affected\": [{\"vendor\": \"zumba\", \"product\": \"json-serializer\", \"versions\": [{\"status\": \"affected\", \"version\": \"\u003c 3.2.3\"}]}], \"references\": [{\"url\": \"https://github.com/zumba/json-serializer/security/advisories/GHSA-v7m3-fpcr-h7m2\", \"name\": \"https://github.com/zumba/json-serializer/security/advisories/GHSA-v7m3-fpcr-h7m2\", \"tags\": [\"x_refsource_CONFIRM\"]}, {\"url\": \"https://github.com/zumba/json-serializer/commit/bf26227879adefce75eb9651040d8982be97b881\", \"name\": \"https://github.com/zumba/json-serializer/commit/bf26227879adefce75eb9651040d8982be97b881\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/zumba/json-serializer/releases/tag/3.2.3\", \"name\": \"https://github.com/zumba/json-serializer/releases/tag/3.2.3\", \"tags\": [\"x_refsource_MISC\"]}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"Zumba Json Serializer is a library to serialize PHP variables in JSON format. In versions 3.2.2 and below, the library allows deserialization of PHP objects from JSON using a special @type field. The deserializer instantiates any class specified in the @type field without restriction. When processing untrusted JSON input, this behavior may allow an attacker to instantiate arbitrary classes available in the application. If a vulnerable application passes attacker-controlled JSON into JsonSerializer::unserialize() and contains classes with dangerous magic methods (such as __wakeup() or __destruct()), this may lead to PHP Object Injection and potentially Remote Code Execution (RCE), depending on available gadget chains in the application or its dependencies. This behavior is similar in risk profile to PHP\u0027s native unserialize() when used without the allowed_classes restriction. Applications are impacted only if untrusted or attacker-controlled JSON is passed into JsonSerializer::unserialize() and the application or its dependencies contain classes that can be leveraged as a gadget chain. This issue has been fixed in version 3.2.3. If an immediate upgrade isn\u0027t feasible, mitigate the vulnerability by never deserializing untrusted JSON with JsonSerializer::unserialize(), validating and sanitizing all JSON input before deserialization, and disabling @type-based object instantiation wherever possible.\"}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-502\", \"description\": \"CWE-502: Deserialization of Untrusted Data\"}]}], \"providerMetadata\": {\"orgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"shortName\": \"GitHub_M\", \"dateUpdated\": \"2026-02-21T07:01:00.843Z\"}}}",
"cveMetadata": "{\"cveId\": \"CVE-2026-27206\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-02-24T18:57:10.054Z\", \"dateReserved\": \"2026-02-18T19:47:02.156Z\", \"assignerOrgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"datePublished\": \"2026-02-21T07:01:00.843Z\", \"assignerShortName\": \"GitHub_M\"}",
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
}
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…