🚨 Security release
This release fixes several vulnerabilities that were all responsibly reported to us in June 2023:
- Insufficient Session Expiration after a password change (high severity, CVSS score 7.3)
- Field injection in the KirbyData text storage handler (high severity, CVSS score 7.1)
- XML External Entity (XXE) vulnerability in the XML data handler (medium severity, CVSS score 6.8)
- Cross-site scripting (XSS) from MIME type auto-detection of uploaded files (medium severity, CVSS score 5.7)
- Denial of service from unlimited password lengths (medium severity, CVSS score 5.3)
Thanks to Shankar Acharya (@5hank4r), Alexandre Zanni (@noraj) at ACCEIS and Patrick Falb (@dapatrese) at FORMER 03 for responsibly reporting the identified issues.
Updated default .htaccess
We have updated the .htaccess
that ships with our kits to the new version 2023-07-22
, which adds protection against browser MIME type detection from malicious file uploads for files that have already been copied to the media
folder. We recommend to update your sites’ .htaccess
or server configuration with the new changes if you might have potential attackers in your group of authenticated Panel users or if your sites allow file uploads by visitors and the file extensions of uploaded files are not limited to a fixed safe list.
You can find the changes to the .htaccess
in this commit and read more about the added rules in the security guide.
Thanks to Shankar Acharya (@5hank4r) for making us aware of this potential attack vector.
Frame-blocking in the Panel
The Panel now sends the Content-Security-Policy: frame-ancestors 'none'
header to increase the protection against clickjacking attacks. The session cookie was already set to SameSite
before, so this is an additional layer of protection.
Thanks to Shankar Acharya (@5hank4r) for suggesting this security enhancement.
Security-related breaking changes
- All users are logged out from their sessions after updating to this patch release.
- The
Xml
data handler (e.g.Data::decode($string, 'xml')
) and theXml::parse()
method no longer process XML external entities. - The Panel can no longer be embedded in HTML frames.