Lucene search

K
securityvulnsSecurityvulnsSECURITYVULNS:DOC:23726
HistoryApr 30, 2010 - 12:00 a.m.

vBulletin - Insecure Custom BBCode Tags

2010-04-3000:00:00
vulners.com
52

vBulletin - Insecure Custom BBCode Tags

Versions Affected: 3.8.4 PL2 (Most likely all versions)

Info:
Content publishing, search, security, and more—vBulletin has it all. Whether
it’s available features, support, or ease-of-use, vBulletin offers the most for
your money. Learn more about what makes vBulletin the choice for people
who are serious about creating thriving online communities.

External Links:
http://www.vbulletin.com/

-:: The Advisory ::-

A vulnerability exists within vBulletin which makes an attacker able to inject
code such as HTML or Javascript via custom BBCode Tags IF they follow certain
conditions which are described below.

Requirements:

  • User-input must be located inside a variable in a HTML-tag.
  • Apostrophes or nothing must be used for encapsulation.

Insecure Implementations:

  • Example 1 (src is insecure)
    <img src='{param}' style='border-width:5px;border-color:red;border-style:outset;' />

  • Example 2 (href is insecure)
    <a href={option} style=border-width:5px;border-color:red;border-style:outset;>{param}</a>

Exploitation of Above Implementations:

  • Example 1 (PoC)
    [BadTag]x:x' onerror=alert(0) foo='[/BadTag]

  • Example 2 (PoC)
    [BadTag2=fail onmouseover=alert(0)]Link[/BadTag2]

-:: Solution ::-

Sanitize BBCode with htmlentities($var, ENT_QUOTES); or htmlspecialchars($var); in the PHP files.
(Jelsoft should fix this, however I may provide a patch if they don't.)

Alternatively don't use BBCode with apostrophes where user-input is inside a variable.

Examples of "Secure Implementation":
<img src="{param}" style='border-width:5px;border-color:red;border-style:outset;' />
[ + ] Note that src's value is encapsulated with quotes.

<a href="{option}" style=border-width:5px;border-color:red;border-style:outset; />{param}</a>
[ + ] Note that href's value is encapsulated with quotes.

Disclosure Information:

  • Vulnerability found the 29th April 2010
  • Vendor and Buqtraq (SecurityFocus) was contacted the 29th April
  • Disclosed on InterN0T the 29th April

Reference:
http://forum.intern0t.net/intern0t-advisories/2528-vbulletin-3-8-4-pl2-insecure-custom-bbcode.html

All of the best,
MaXe