Lucene search

K

TWiki 5.1.2 Command Execution

🗓️ 15 Dec 2012 00:00:00Reported by George ClarkType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 48 Views

TWiki 5.1.2 Command Execution advisory, allows arbitrary shell command execution via %MAKETEXT{}% TWiki variable, affecting multiple TWiki releases

Show more
Related
Code
`This security advisory alerts you of a potential security issue with   
TWiki installations:  
The %MAKETEXT{}% TWiki variable allows arbitrary shell command   
execution. The problem is caused by an underlying security issue in   
the Locale::Maketext CPAN module.  
  
* Vulnerable Software Version  
* Attack Vectors  
* Impact  
* Severity Level  
* MITRE Name for this Vulnerability  
* Details  
* Countermeasures  
* Hotfix for TWiki Production Releases 5.1.x  
* Hotfix for older affected TWiki Releases  
* Authors and Credits  
* Action Plan with Timeline  
* External Links  
* Feedback  
  
---++ Vulnerable Software Version  
  
* TWiki-5.1.0 to TWiki-5.1.2 (TWikiRelease05x01x00 to   
TWikiRelease05x01x02)  
* TWiki-5.0.x (TWikiRelease05x00x00 to TWikiRelease05x00x02)  
* TWiki-4.3.x (TWikiRelease04x03x00 to TWikiRelease04x03x02)  
* TWiki-4.2.x (TWikiRelease04x02x00 to TWikiRelease04x02x04)  
* TWiki-4.1.x (TWikiRelease04x01x00 to TWikiRelease04x01x02)  
* TWiki-4.0.x (TWikiRelease04x00x00 to TWikiRelease04x00x05)  
  
---++ Attack Vectors  
  
Editing wiki pages and HTTP POST requests towards a TWiki server with   
enabled localization (typically port 80/TCP). Typically, prior   
authentication is necessary.  
  
---++ Impact  
  
An unauthenticated remote attacker can execute arbitrary shell   
commands as the webserver user, such as user nobody.  
  
---++ Severity Level  
  
The TWiki SecurityTeam triaged this issue as documented in   
TWikiSecurityAlertProcess [1] and assigned the following severity level:  
  
* Severity 1 issue: The web server can be compromised  
  
---++ MITRE Name for this Vulnerability  
  
The Common Vulnerabilities and Exposures project has assigned the name   
CVE-2012-6329 [7] to this vulnerability.  
  
---++ Details  
  
1. Shell Command execution: The %MAKETEXT{}% TWiki variable is used to   
localize user interface content to a language of choice. Using a   
specially crafted MAKETEXT, a malicious user can execute shell   
commands by Perl backtick (``) operators. User input is passed to the   
Perl "eval" command without first being sanitized. The problem is   
caused by an underlying security issue in the Locale::Maketext CPAN   
module. This works only in TWiki sites that have user interface   
localization enabled.  
  
In addition, there are two less severe issues with MAKETEXT:  
  
2. Excessive memory allocation: %MAKETEXT{"This is [_9999999999999999]   
Evil"}% will consume all memory and swap space attempting to   
initialize all missing entries in the parameters array.  
  
3. Crash: %MAKETEXT{"This is [_0] problematic"}% can cause a crash   
under some circumstances.  
  
---++ Countermeasures  
  
* One of:  
* Disable localization by setting configure flag   
{UserInterfaceInternationalisation} to 0.  
* Apply hotfix (see patch below).  
* Upgrade to the latest patched production release TWiki-5.1.3   
(TWikiRelease05x01x03) [2] when available.  
  
* In addition:  
* Install CPAN's Locale::Maketext version 1.23 or newer.  
* Use the {SafeEnvPath} configure setting to restrict the possible   
directories that are searched for executables. By default, this is   
the PATH used by the webserver user. Set {SafeEnvPath} to a list of   
non-writable directories, such as "/bin:/usr/bin".  
  
---++ Hotfix for TWiki Production Release 5.1.x  
  
Affected file: twiki/lib/TWiki.pm  
  
Patch to sanitize MAKETEXT parameters:  
  
=======( CUT 8><--- )===============================================  
--- TWiki.pm (revision 24029)  
+++ TWiki.pm (working copy)  
@@ -4329,8 +4329,23 @@  
  
# unescape parameters and calculate highest parameter number:  
my $max = 0;  
- $str =~ s/~\[(\_(\d+))~\]/ $max = $2 if ($2 > $max); "[$1]"/ge;  
- $str =~ s/~\[(\*,\_(\d+),[^,]+(,([^,]+))?)~\]/ $max = $2 if ($2 >   
$max); "[$1]"/ge;  
+ my $min = 1;  
+ $str =~ s/~\[(\_(\d+))~\]/  
+ $max = $2 if ($2 > $max);  
+ $min = $2 if ($2 < $min);  
+ "[$1]"/ge;  
+ $str =~ s/~\[(\*,\_(\d+),[^,]+(,([^,]+))?)~\]/  
+ $max = $2 if ($2 > $max);  
+ $min = $2 if ($2 < $min);  
+ "[$1]"/ge;  
+  
+ # Item7080: Sanitize MAKETEXT variable:  
+ return "MAKETEXT error: No more than 32 parameters are allowed"   
if( $max > 32 );  
+ return "MAKETEXT error: Parameter 0 is not allowed" if( $min < 1 );  
+ if( $TWiki::cfg{UserInterfaceInternationalisation} ) {  
+ eval { require Locale::Maketext; };  
+ $str =~ s#\\#\\\\#g if( $@ || !$@ &&   
$Locale::Maketext::VERSION < 1.23 );  
+ }  
  
# get the args to be interpolated.  
my $argsStr = $params->{args} || "";  
=======( CUT 8><--- )===============================================  
  
This patch is also available separately [3] in case this gets mangled   
by the e-mail.  
  
On a properly patched system, %MAKETEXT{" [_99] "}% should return this   
error: "MAKETEXT error: No more than 32 parameters are allowed"  
  
---++ Hotfix for older affected TWiki Releases  
  
Apply above patch (line numbers may vary).  
  
---++ Authors and Credits  
  
* Credit to TWiki:Main.GeorgeClark for disclosing the issue to the [email protected]   
mailing list, and for providing a proposed fix.  
* TWiki:Main.PeterThoeny for creating the fix, patch and advisory.  
  
---++ Action Plan with Timeline  
  
* 2012-12-10: User discloses issue to TWikiSecurityMailingList [4],   
George Clark, Foswiki  
* 2012-12-10: Developer verifies issue, Peter Thoeny  
* 2012-12-10: Developer fixes code, Peter Thoeny  
* 2012-12-10: Security team creates advisory with hotfix, Peter Thoeny  
* 2012-12-11: Developer verifies patch, Hideyo Imazu  
* 2012-12-12: Send alert to TWikiAnnounceMailingList [5] and   
TWikiDevMailingList [6], Peter Thoeny  
* 2012-12-14: Publish advisory in Codev web and update all related   
topics, Peter Thoeny  
* 2012-12-14: Issue a public security advisory to full-   
disclosure[at]lists.grok.org.uk, cert[at]cert.org,   
vuln[at]secunia.com, bugs[at]securitytracker.com, Peter Thoeny  
  
---++ External Links  
  
[1]: http://twiki.org/cgi-bin/view/Codev/TWikiSecurityAlertProcess  
[2]: http://twiki.org/cgi-bin/view/Codev/TWikiRelease05x01x03  
[3]: http://twiki.org/cgi-bin/view/Codev/SecurityAlert-CVE-2012-6329  
[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-2012-6329 - CVE   
on MITRE.org  
  
---++ Feedback  
  
Please provide feedback at the security alert topic,  
http://twiki.org/cgi-bin/view/Codev/SecurityAlert-CVE-2012-6329  
  
-- Main.PeterThoeny - 2012-12-14  
  
--   
* Peter Thoeny - peter09[at]thoeny.org  
* http://TWiki.org - is your team already TWiki enabled?  
* Knowledge cannot be managed, it can be discovered and shared  
* This e-mail is: (_) private (x) ask first (_) public  
  
  
`

Transform Your Security Services

Elevate your offerings with Vulners' advanced Vulnerability Intelligence. Contact us for a demo and discover the difference comprehensive, actionable intelligence can make in your security strategy.

Book a live demo