Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
CVE-2024-32877
Summary
Yii 2 is a PHP application framework. During internal penetration testing of a product based on Yii2, users discovered a Cross-site Scripting (XSS) vulnerability within the framework itself. This issue lies in the mechanism for displaying function argument values in the stack trace. The vulnerability manifests when an argument's value exceeds "32" characters. For convenience, argument values exceeding this limit are truncated and displayed with an added "...". The full argument value becomes visible when hovering over it with the mouse, as it is displayed in the title attribute of a "span" tag. However, the use of a double quote (") allows an attacker to break out of the title attribute's value context and inject their own attributes into the "span" tag, including malicious JavaScript code through event handlers such as "onmousemove". This vulnerability allows an attacker to execute arbitrary JavaScript code in the security context of the victim's site via a specially crafted link. This could lead to the theft of cookies (including "httpOnly" cookies, which are accessible on the page), content substitution, or complete takeover of user accounts. This issue affects yiisoft/yii2 versions 2.0.43 through 2.0.49.3. Users are advised to upgrade. There are no known workarounds for this vulnerability.
- HIGH
- NETWORK
- LOW
- UNCHANGED
- REQUIRED
- NONE
- LOW
- NONE
CWE-79 - Cross Site Scripting
Cross-Site Scripting, commonly referred to as XSS, is the most dominant class of vulnerabilities. It allows an attacker to inject malicious code into a pregnable web application and victimize its users. The exploitation of such a weakness can cause severe issues such as account takeover, and sensitive data exfiltration. Because of the prevalence of XSS vulnerabilities and their high rate of exploitation, it has remained in the OWASP top 10 vulnerabilities for years.
References
Advisory Timeline
- Published