CVE-2024-4990
Yiiframework Yii 2.0.48
Raw vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:HSummary
CVE-2024-4990 is a critical-severity Unsafe Reflection (CWE-470) vulnerability in Yiiframework Yii. Its CVSS base score is 9.1 (Critical).
Operationally, exploitation aligns with the MITRE ATT&CK technique Reflective Code Loading (T1620); ranked in the top 0.4% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.
The strongest mitigations our analysis identified map to SI-10 (Information Input Validation) and AC-3 (Access Enforcement) — see the control section below for these in your framework.
Deeper analysis AI-assisted summary
Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.
CVE-2024-4990 affects yiisoft/yii2 version 2.0.48, a PHP framework, specifically in its base Component class. The vulnerability arises because the `__set()` magic method fails to validate that the value passed to it is a valid Behavior class name or configuration. This flaw enables attackers to instantiate arbitrary classes, supply parameters to their constructors, and invoke setter methods on those classes.
Remote attackers require no privileges or user interaction to exploit this issue over the network with low complexity, as indicated by its CVSS 3.1 score of 9.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H). Exploitation depends on the victim's installed dependencies and can lead to arbitrary code execution, retrieval of sensitive information, or unauthorized access. The issue is classified under CWE-470.
Details on mitigation, including any patches or workarounds, are documented in the advisory at https://huntr.com/bounties/4fbdd965-02b6-42e4-b57b-f98f93415b8f. The vulnerability was published on 2025-03-20.
OWASP Top 10 for Web (2025)
EU & UK References
- 🇪🇺 ENISA EUVD: EUVD-2024-2024
Vulnerability Data
In yiisoft/yii2 version 2.0.48, the base Component class contains a vulnerability where the `__set()` magic method does not validate that the value passed is a valid Behavior class name or configuration. This allows an attacker to instantiate arbitrary classes, passing…
more
parameters to their constructors and invoking setter methods. Depending on the installed dependencies, various types of attacks are possible, including the execution of arbitrary code, retrieval of sensitive information, and unauthorized access.
- CWE(s)
Related Threats
MITRE ATT&CK Enterprise Techniques
CVEs Like This One
Affected Assets
Mitigating Controls
Mitigating Controls (NIST 800-53 r5) AI
Input validation directly stops externally supplied class or method names from selecting improper code via reflection.
Enforces authorization checks on the code or classes ultimately invoked, blocking unauthorized selections even if reflection is used.
Limits privileges of any code reached through unsafe reflection, reducing blast radius without stopping the selection itself.
Mitigating Controls (NIST CSF 2.0) AI
Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.
Secure SDLC practices directly avoid introducing externally controlled class selection via reflection.
Vulnerability identification processes can discover unsafe reflection during code review or scanning.
Preventing execution of unauthorized code can block exploitation of unsafe reflection at runtime.
Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI
Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.
Secure coding standards directly forbid unsafe reflection and require whitelisting or static alternatives.
Security testing can detect and block unsafe reflection patterns before release.
Secure development lifecycle mandates input validation and design reviews that reduce unsafe reflection risks.
Application security requirements can explicitly prohibit or constrain reflection based on untrusted input.
Secure architecture principles discourage dynamic class loading from external data sources.
Access restrictions limit who can supply the malicious input but do not address the reflection flaw itself.