Unsafe deserialization in Yii 2
Impact
Remote code execution in case application calls unserialize() on user input containing specially crafted string.
Patches
2.0.38
Workarounds
Add the following to BatchQueryResult.php:
public function __sleep()
{
throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
}
public function __wakeup()
{
throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
}
For more information
If you have any questions or comments about this advisory, contact us through security form.
Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| Composer package | yiisoft/yii2 | < 2.0.38 | 2.0.38 |
References
- https://github.com/yiisoft/yii2/security/advisories/GHSA-699q-wcff-g9mj
- https://nvd.nist.gov/vuln/detail/CVE-2020-15148
- https://github.com/yiisoft/yii2/commit/9abccb96d7c5ddb569f92d1a748f50ee9b3e2b99
- https://github.com/FriendsOfPHP/security-advisories/blob/master/yiisoft/yii2/CVE-2020-15148.yaml
- https://www.yiiframework.com/news/303/yii-2-0-38
- CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:H/A:H- Weakness (CWE)
CWE-502- Platform
- Composer
- Package
yiisoft/yii2- Disclosed
- 15.09.2020
- Updated
- 11.10.2026 10:22
Sources and licenses
OSV / GitHub Advisory Database - GHSA-699q-wcff-g9mj - CC BY 4.0
Vulnerability history: yiisoft/yii2
All published vulnerabilities of this package (Composer package), newest first. Shows whether this is a one-off slip or a package that needs watching.
- Total entries
- 12
- First → latest
- 09.2020 05.2026
- Without a fix
- 0
- Exploited in attacks
- 1
Severity breakdown
- Critical 2
- High 5
- Medium 5
Disclosures per year
- 2020: 1
- 2021: 0
- 2022: 6
- 2023: 1
- 2024: 2
- 2025: 1
- 2026: 1
-
Unsafe deserialization in Yii 2 this entry
Know which vulnerabilities affect your application
With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.