[VulnWatch] R7-0031: JFreeChart Image Map Cross-Site Scripting Vulnerabilities



_______________________________________________________________________
Rapid7 Security Advisory
Visit http://www.rapid7.com/ to download NeXpose,
SC Magazine Winner of Best Vulnerability Management product.
_______________________________________________________________________

Rapid7 Advisory R7-0031
JFreeChart Image Map Cross-Site Scripting Vulnerabilities

Published: Dec 06, 2007
Revision: 1.0
http://www.rapid7.com/advisories/R7-0031.jsp

1. Affected system(s):

KNOWN VULNERABLE:
o JFreeChart 1.0.8

KNOWN FIXED:
o JFreeChart 1.0.8 branch "jfreechart-1.0.8-security"

2. Summary

JFreeChart is a popular Java-based chart library used to generate
charts and graphs of data. The library includes support for
generating HTML image maps, which allow for enhanced interaction of
the chart via hyperlinks bound to shapes specified by coordinates.

Multiple cross-site scripting vulnerabilities exist within the
image map support functionality of JFreeChart which may allow an
attacker to inject arbitrary HTML or JavaScript into any product
or website which uses the library.

3. Vendor status and information

JFreeChart Project
http://sourceforge.net/projects/jfreechart/

The JFreeChart project was notified of this vulnerability on
November 28th, 2007 via their online bug tracking system. The
vulnerability was fixed on December 6th 2007 with a commit
to their SVN repository.

4. Solution

Upgrade to JFreeChart SVN repository revision 682
using branch "jfreechart-1.0.8-security".

See http://jfreechart.svn.sourceforge.net/viewvc/jfreechart/
for details.

5. Detailed analysis

JFreeChart fails to properly escape the following properties of the
generated image map:

o The chart name.
o The chart tool tip text.
o The href attribute for a chart area.
o The shape attribute for a chart area.
o The coords attribute for a chart area.

It is possible to inject custom HTML code into the code generated by
the JFreeChart library. If a web server uses this library to generate
charts from user-supplied data, an attacker could cause other users of
the same website or application to execute arbitrary JavaScript code
when viewing a page containing a chart.

6. Credit

Discovered by Chad Loder of Rapid7.

7. Contact Information

Rapid7, LLC
Email: advisory@xxxxxxxxxx
Web: http://www.rapid7.com
Phone: +1 (617) 247-1717

8. Disclaimer and Copyright

Rapid7, LLC is not responsible for the misuse of the information
provided in our security advisories. These advisories are a service
to the professional security community. There are NO WARRANTIES with
regard to this information. Any application or distribution of this
information constitutes acceptance AS IS, at the user's own risk.
This information is subject to change without notice.

This advisory Copyright (C) 2007 Rapid7, LLC. Permission is hereby
granted to redistribute this advisory, providing that no changes are
made and that the copyright notices and disclaimers remain intact.



Relevant Pages

  • [Full-disclosure] R7-0031: JFreeChart Image Map Cross-Site Scripting Vulnerabilities
    ... Rapid7 Security Advisory ... SC Magazine Winner of Best Vulnerability Management product. ... JFreeChart Image Map Cross-Site Scripting Vulnerabilities ... the chart via hyperlinks bound to shapes specified by coordinates. ...
    (Full-Disclosure)
  • R7-0031: JFreeChart Image Map Cross-Site Scripting Vulnerabilities
    ... Rapid7 Security Advisory ... SC Magazine Winner of Best Vulnerability Management product. ... JFreeChart Image Map Cross-Site Scripting Vulnerabilities ... the chart via hyperlinks bound to shapes specified by coordinates. ...
    (Bugtraq)
  • Re: JFreeChart in JavaApplet?
    ... I'm using jFreeChart to generate a chart and I'd like to put this ... static private JFreeChart createChart{ ... public static void main{ ...
    (comp.lang.java.programmer)
  • Re: JFreeChart in JavaApplet?
    ... JPanels in NetBeans cannot be edited. ... I'm using jFreeChart to generate a chart and I'd like to put this ... NewJFrame and then the jFreeChart ...
    (comp.lang.java.programmer)
  • Re: jFreeChart in Applet window with NetBeans
    ... using a class called RandomWalk which opens a jFreeChart. ... public void init() { ... private void jButton1ActionPerformed(java.awt.event.ActionEvent ... Creates a chart. ...
    (comp.lang.java.programmer)