######################################################################
# Exploit Title: Samba.org and OpenLDAP.org Reflected XSS
# Date: 02/04/2015
# Author: Yann CAM @ Synetis - ASafety
# Vendor or Software Link: www.samba.org & www.openldap.org
# Version: /
# Category: Reflected Cross Site Scripting
# Google dork:
# Tested on: Samba.org and OpenLDAP.org main domains
######################################################################

Samba description :
======================================================================
 
Samba is a free software re-implementation of the SMB/CIFS networking protocol, and was originally developed by Andrew Tridgell. Samba provides file and 
print services for various Windows clients and can integrate with a Windows Server domain, either as a Domain Controller (DC) or as a domain member. 
As of version 4, it supports Active Directory and Windows NT domains.
www.samba.org is the main domain of the project.


OpenLDAP description :
======================================================================
 
OpenLDAP is a free, open source implementation of the Lightweight Directory Access Protocol (LDAP) developed by the OpenLDAP Project. It is released under 
its own BSD-style license called the OpenLDAP Public License.
www.openldap.org is the main domain of the project.


JitterBug project description :
======================================================================
 
JitterBug is a web based bug tracking system. It was originally developed by the Andrew Tridgell to handle bug tracking, problem reports and queries from Samba users. It is now available under the GNU General Public License in the hope that it will be useful for other projects.
JitterBug operates by receiving bug reports via email or a web form. Authenticated users can then reply to the message, move it between different categories or add notes to it. In some ways JitterBug is like a communal web based email system. This web page is itself a JitterBug page. You can get an idea of what JitterBug can do by playing with the various links and buttons.

JitterBug was used by many others open-source projects like Gnome, rsync, The Gimp, linux-patches, ProFTPD, Willows, Java Linux, WindowMaker, mod_ssl, GnuCash or OpenLdap.
Only OpenLDAP and Samba use it currently, so they are both impacted by the vulnerability describes here.


RXSS Vulnerability description - PoC :
======================================================================

A reflected XSS is available in the JitterBug bug tracking project provided on the samba.org and openldap.org websites.
Through this vulnerability, an attacker could tamper with page rendering, redirect victims to fake Samba/OpenLDAP portals, or capture Samba's (OpenLDAP) users credentials such cookies. 
It's also possible to forge a fake page with this XSS to provide a backdoored version of softwares to users.
This reflected XSS is on GET "id" variable and is not properly sanitized before being used to his page.

Tested on Firefox 35.0.
 
PoC:
 
http://www.samba.org/cgi-bin/jitterbug/CVS?id=1337</TITLE><img src=x onerror="alert(/Reflected XSS - Yann CAM @ASAfety/)" /><TITLE>;selectid=1337
http://www.openldap.org/its/index.cgi/Documentation?id=1337</TITLE><img src=x onerror="alert(/Reflected XSS - Yann CAM @ASAfety/)" /><TITLE>;selectid=1337


JitterBug future :
======================================================================

As indicated by Samba :

	The JitterBug project is no longer being actively maintained.

	Jitterbug has known unfixed security vulnerabilities. Unless you know exactly what you are doing, you should not use it any more.

	If you wish to take over as the maintainer then please contact Andrew Tridgell at jitterbug@tridgell.net

A possible patch is to sanitize each call of the jitterbug.c file :

	void print_title(char *fmt, ...)

Which injects GET vars directly in HTML source generated :

	print_title('%s - %s/%s', lp_title(), directory, cgi_variable('id'));
	
In the cgi.c file, there is a potential function to escape all dangerous chars :

	char *urlquote(char *s)


Screenshots :
======================================================================

- http://www.asafety.fr/data/20141126-RXSS_openldap.org_synetis_001.png
- http://www.asafety.fr/data/20141126-RXSS_openldap.org_synetis_002.png
- http://www.asafety.fr/data/20141126-RXSS_samba.org_synetis_001.png
- http://www.asafety.fr/data/20141126-RXSS_samba.org_synetis_002.png


Solution:
======================================================================

Fixed by OpenLDAP team (no details)
JitterBug is no longer maintained on Samba website.

Thanks to both team, Samba and OpenLDAP, for their kindness and responsiveness.
 
 
Additional resources :
======================================================================
 
- https://www.samba.org/jitterbug/
- http://www.openldap.org/its/index.cgi/Web?id=7988
- https://bugzilla.samba.org/show_bug.cgi?id=10967
- http://www.asafety.fr/vuln-exploit-poc/contribution-reflected-xss-vulnerabilites-dans-samba-org-et-openldap-org
- http://www.synetis.com

 
Report timeline :
======================================================================
 
2014-11-26 : Samba ticket created to alert team with details and PoC.
2014-11-26 : OpenLDAP ticket created to alert team with details and PoC.
2014-11-26 : OpenLDAP fix the vulnerability.
2014-11-27 : Samba response with additional questions.
2015-03-30 : New comment to get a status
2015-03-30 : JitterBug on Samba.org website is disabled and the project is no more longer maintained.
2015-04-02 : Public advisory

Credits :
======================================================================
 
    88888888
   88      888                                         88    88
  888       88                                         88
  788           Z88      88  88.888888     8888888   888888  88    8888888.
   888888.       88     88   888    Z88   88     88    88    88   88     88
       8888888    88    88   88      88  88       88   88    88   888
            888   88   88    88      88  88888888888   88    88     888888
  88         88    88  8.    88      88  88            88    88          888
  888       ,88     8I88     88      88   88      88   88    88  .88     .88
   ?8888888888.     888      88      88    88888888    8888  88   =88888888
       888.          88
                    88    www.synetis.com
                 8888  Consulting firm in management and information security
 
Yann CAM - Security Consultant @ Synetis | ASafety

--
SYNETIS | ASafety
CONTACT: www.synetis.com | www.asafety.fr