Backend Cross Site Scripting (XSS) in Serendipity (S9Y) 1.2.1, CVE-2008-0124

References

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-0124
https://blog.s9y.org/archives/191-Serendipity-1.3-beta1-released.html
https://blog.hboeck.de/archives/591-Cross-Site-Scripting-XSS-in-the-backend-and-in-the-installer.html/591-Cross-Site-Scripting-XSS-in-the-backend-and-in-the-installer.php

Description

Serendipity (S9Y) is a popular blogging system.
If used in a multiuser environment, one user can inject javascript code into certain fields in the backend to steal the cookies and hijack the accounts of other users.

Serendipity has the trustxss plugin to prevent XSS between users on multiuser setups, but that doesn't catch these issues.

In the »Personal Settings«-Dialogue, the »Real name« field can be filled with javascript, which appears on newly written articles. The »Username« field can also contain javascript, but there's no attack vector, as this field is only shown to the user itself.

Beside, the media library accepts uploads from any file format, including htm, html and js, which obviously also leads to xss.

Workaround/Fix

If you have a multiuser-blog and don't trust all users, you need to install the trustxss plugin and should immediately upgrade to 1.3-beta1.
If you're using a single-user blog, you are not affected.

Disclosure Timeline

2008-02-01 Vendor contacted
2008-02-01 Vendor fixed svn
2007-02-25 Vendor released 1.3-beta1

CVE Information

The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2008-0124 to this issue. This is a candidate for inclusion in the CVE list (http://cve.mitre.org/), which standardizes names for security problems.

Credits and copyright

This vulnerability was discovered by Hanno Boeck of schokokeks.org webhosting. It's licensed under the creative commons attribution license.

Hanno Boeck, 2008-02-26, https://hboeck.de