2009/12/10 Roberto Suggi Liverani <roberto.su...@security-assessment.com>:
Hi Alan,

Sorry for the delay, very busy days here...

The vulnerability was originally reported in the Sage bugzilla
mailing-list and here you can find the link:

https://www.mozdev.org/bugs/show_bug.cgi?id=20610

and here is the security report detailing the bug:

https://www.mozdev.org/bugs/attachment.cgi?id=5749

I have tried to follow up with the author but still today I haven't got
any response as you can see from the thread.

Recently, we have been contacted by another guy, Dave Schaefer, who
joined the thread above and who is willing to fix the bug. My suggestion
would be to touch base with Dave and then work together to fix the
issue. I am not sure about the author and its current involvement with
the extension code.

Regarding your questions:

Q: Is this a regression of the 2006 vulnerability [4]?

I am not sure about the vulnerability in 2006. What I know is that
according to the Sage author, Peter Andrews, the '2006' bug was fixed
and resolved. That is also reported in this thread:
https://www.mozdev.org/bugs/show_bug.cgi?id=15101
So the current bug is a new bug as far as I can tell you. Also, I can't
access the PoC of the vulnerability in 2006, which should be available here:
https://www.gnucitizen.org/static/blog/2006/09/sage-feed-poc.xml so I am
not sure where the "injection" point was.

The current version of sage fails two of the test cases that were associated 
with the 2006 vulnerability. The fix I prepared for that regression doesn't 
correct these two new test cases however.

Q: Are there more problems I should be aware of besides that?

Potentially, there might be other input-validation issues.

Q: How would you suggest dealing with this?

My suggestion would be to render untrusted content in about:blank
instead of a window with chrome privileges. Second recommendation would
be to filter input based on whitelist and escape output as well. Some
extension developers suggest the use of the
nsIScriptableUnescapeHTML.parseFragment() function to perform input
validation. However, some other developers do not agree with that. I am
not an extension developer, so I am not able to tell you if u can just
rely on that function. Other recommendation would be to have a look to
other RSS readers and see how the handle the feeds, in which location,
and what type of filtering they perform.

Ok, that makes sense. I think for the two stable releases at least that's too 
major a change to be making in a security fix, and a cruder patch might be the 
solution.

I'll have a look now at dropping all HTML from the descriptions/links for the 
released versions and try to incorporate a proper fix for the forth coming 
release.

Alan

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to