lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Message-Id: <82DA0419-8079-400D-9E7F-A32A873D4758@thoeny.org>
Date: Thu, 18 Dec 2014 08:06:35 -0800
From: Peter Thoeny <peter09@...eny.org>
To: "fulldisclosure@...lists.org" <fulldisclosure@...lists.org>,
	"cert@...t.org Center" <cert@...t.org>,
	"vuln@...unia.com" <vuln@...unia.com>,
	"bugs@...uritytracker.com" <bugs@...uritytracker.com>,
	"submissions@...ketstormsecurity.org" <submissions@...ketstormsecurity.org>
Cc: TWiki security - to alert TWiki Security Team
	<twiki-security@...ts.sourceforge.net>
Subject: [FD] TWiki Security Alert CVE-2014-9325: XSS Vulnerability with
	QUERYSTRING and QUERYPARAMSTRING Variables

This is an advisory for TWiki Administrators: The TWiki Variables QUERYSTRING and QUERYPARAMSTRING may expose a cross-site scripting vulnerability.

TWiki ( http://twiki.org ) is an Open Source Enterprise Wiki and Web Application Platform used by millions of people.

   * Vulnerable Software Version
   * Attack Vectors
   * Impact
   * Severity Level
   * MITRE Name for this Vulnerability
   * Details
   * Countermeasures
   * Hotfix for TWiki Production Release
   * Verify Hotfix
   * Authors and Credits
   * Action Plan with Timeline
   * External Links
   * Feedback

---++ Vulnerable Software Version

   * TWiki-6.0.1 [2]

---++ Attack Vectors

Attack can be done by viewing wiki pages or by logging in by issuing HTTP GET requests towards the TWiki server (usually port 80/TCP).

---++ Impact

Specially crafted parameters open up XSS (Cross-Site Scripting) attacks.

---++ Severity Level

The TWiki SecurityTeam triaged this issue as documented in TWikiSecurityAlertProcess and assigned the following severity level:

   * Severity 3 issue: TWiki content or browser is compromised. 

---++ MITRE Name for this Vulnerability

The Common Vulnerabilities and Exposures project has assigned the name CVE-2014-9325 [7] to this vulnerability. 

---++ Details

A malicious person can use specially crafted URL parameters to TWiki scripts that execute arbitrary JavaScript code in the browser. Examples:

Specially crafted parameter to the view script of TWiki:

GET /do/view/Main/TWikiPreferences?'"--></style></script><script>alert('CVE-2014-9325 vulnerable')</script>

TWiki decodes the URL parameters and pops up a !JavaScript alert box showing "CVE-2014-9325 vulnerable!"

---++ Countermeasures

   * Apply hotfix (see patch below).
   * Use the web server software to restrict access to the web pages served by TWiki.

---++ Hotfix for TWiki Production Release

No TWiki patch release will be done to address this issue. Instead, apply the patches to the two files below.

---+++ Patch lib/TWiki.pm

Affected file: =twiki/lib/TWiki.pm=

=======( 8>< CUT )===============================================
--- TWiki.pm   (revision 28488)
+++ TWiki.pm   (working copy)
@@ -4803,7 +4803,10 @@
 
 sub QUERYSTRING {
     my $this = shift;
-    return $this->{request}->queryString();
+    my $qs = $this->{request}->queryString();
+    # Item7595: Sanitize QUERYSTRING
+    $qs =~ s/(['\/<>])/'%'.sprintf('%02x', ord($1))/ge;
+    return $qs;
 }
 
 sub QUERYPARAMS {
=======( 8>< CUT )===============================================

The patch might be managed in the e-mail. Get this patch from http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item7595 [8]

---+++ Patch lib/TWiki/UI/View.pm

Affected file: =twiki/lib/TWiki/UI/View.pm=

=======( 8>< CUT )===============================================
--- TWiki/UI/View.pm   (revision 28488)
+++ TWiki/UI/View.pm   (working copy)
@@ -349,8 +349,14 @@
       next if ($name eq 'topic');
       push @qparams, $name => $query->param($name);
     }
-    $tmpl =~ s/%QUERYPARAMSTRING%/TWiki::_make_params(1,@qparams)/geo;
 
+    if ( $tmpl =~ /%QUERYPARAMSTRING%/ ) {
+        my $qs = TWiki::_make_params( 1, @qparams );
+        # Item7595: Sanitize QUERYPARAMSTRING
+        $qs =~ s/(['\/<>])/'%'.sprintf('%02x', ord($1))/ge;
+        $tmpl =~ s/%QUERYPARAMSTRING%/$qs/go;
+    }
+
     # extract header and footer from the template, if there is a
     # %TEXT% tag marking the split point. The topic text is inserted
     # in place of the %TEXT% tag. The text before this tag is inserted
=======( 8>< CUT )===============================================

__Notes:__

   * Learn how to apply patches: http://twiki.org/cgi-bin/view/Codev/HowToApplyPatch
   * This issue is tracked at: http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item7595

---++ Verify Hotfix

To verify the patch add the following parameter to any TWiki topic:

?'"--></style></script><script>alert('CVE-2014-9325 vulnerable')</script>

The site is vulnerable if a dialog box is shown with text "CVE-2014-9325 vulnerable!" 

---++ Authors and Credits

   * Credit to Robert Abela ( robert[at]netsparker.com) and Onur Yilmaz (onur[at]netsparker.com) for disclosing the issue to thetwiki-security@...ts.sourceforge.net mailing list.
   * Peter Thoeny for verifying the issue, creating a fix, and creating the patch and advisory.

---++ Action Plan with Timeline

   * 2014-12-09 - Robert Abela of Netsparker (https://www.netsparker.com/) discloses issue to TWikiSecurityMailingList
   * 2014-12-09 - developer verifies issue - Peter Thoeny
   * 2014-12-09 - developer fixes code - Peter Thoeny
   * 2014-12-15 - security team creates advisory with hotfix - Peter Thoeny
   * 2014-12-16 - send alert to TWikiAnnounceMailingList [5] and TWikiDevMailingList [6] - Peter Thoeny
   * 2014-12-18 - publish advisory in Codev web and update all related topics - Peter Thoeny
   * 2014-12-18 - issue a public security advisory to fulldisclosure[at]seclists.org, cert[at]cert.org, vuln[at]secunia.com, bugs[at]securitytracker.com, submissions[at]packetstormsecurity.org - Peter Thoeny

---++ External Links

[1]: http://twiki.org/cgi-bin/view/Codev/TWikiSecurityAlertProcess
[2]: http://twiki.org/cgi-bin/view/Codev/TWikiRelease06x00x01
[3]: http://twiki.org/cgi-bin/view/Codev/SecurityAlert-CVE-2014-9325 (will be created on 2014-12-18)
[4]: http://twiki.org/cgi-bin/view/Codev/TWikiSecurityMailingList
[5]: http://twiki.org/cgi-bin/view/Codev/TWikiAnnounceMailingList
[6]: http://twiki.org/cgi-bin/view/Codev/TWikiDevMailingList
[7]: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9325 - CVE on MITRE.org
[8]: http://develop.twiki.org/~twiki4/cgi-bin/view/Bugs/Item7595

---++ Feedback

Please provide feedback at the security alert topic, http://twiki.org/cgi-bin/view/Codev/SecurityAlert-CVE-2014-9325

-- Peter Thoeny - 2014-12-18


--
> Peter Thoeny     - Peter09[at]Thoeny.org
> http://bit.ly/MrTWiki - consulting on enterprise collaboration
> http://TWiki.org - is your team already TWiki enabled?
> Knowledge cannot be managed, it can be discovered and shared
> This e-mail is:   (_) private    (_) ask first    (x) public


_______________________________________________
Sent through the Full Disclosure mailing list
http://nmap.org/mailman/listinfo/fulldisclosure
Web Archives & RSS: http://seclists.org/fulldisclosure/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ