GitHub Advisoryadvisory · npm
GHSA-j827-6rgf-9629 Layui has DOM Clobbering gadgets that leads to Cross-site Scripting
MEDIUM
Official page ↗
- Aliases
- CVE-2024-47075
- Ecosystem
- npm
- Packages
- layui
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:H
- Weaknesses
- CWE-79
- Reviewed
- 2024-09-26
Affected packages
• npm layui: < 2.9.17 → fixed in 2.9.17
Description
Summary
A DOM Clobbering vulnerability has been discovered in `layui` that can lead to Cross-site Scripting (XSS) on web pages where attacker-controlled HTML elements (e.g., `img` tags with unsanitized `name` attributes) are present.
It's worth noting that we’ve identifed similar issues in other popular client-side libraries like Webpack (CVE-2024-43788) and Vite (CVE-2024-45812), which might serve as valuable references.
Backgrounds
DOM Clobbering is a type of code-reuse attack where the attacker first embeds a piece of non-script, seemingly benign HTML markups in the webpage (e.g. through a post or comment) and leverages the gadgets (pieces of js code snippet) living in the existing libraries to transform it into executable code.
Impact
This vulnerability can lead to cross-site scripting (XSS) on websites that uses `layui` library and allow users to inject certain scriptless HTML tags with improperly sanitized `name` or `id` attributes.
Patch
This problem has been patched in Layui 2.9.17. You can find the official fix announcement at:
https://layui.dev/notes/share/security-currentscript.html
Related
Alias · CVE (1)
- CVE-2024-47075 LayUI is a native minimalist modular Web UI component library. vulnerability
Weakness · CWE (1)
- CWE-79 Improper Neutralization of Input During Web Page Generation weakness
References
- https://github.com/layui/layui/security/advisories/GHSA-j827-6rgf-9629 web
- https://nvd.nist.gov/vuln/detail/CVE-2024-47075 advisory
- https://github.com/layui/layui/commit/f756b41d63bf3d488a2cb042918638c9851bf2b0 web
- https://github.com/layui/layui package
- https://layui.dev/notes/share/security-currentscript.html web