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]
Message-ID: <CAJeQoQeFD7Cb9sLhudcrJZG_r=mXhFJX925mTjW42_TqTcGz2w@mail.gmail.com>
Date: Tue, 16 Jul 2024 15:58:58 +0200
From: Egidio Romano <n0b0d13s@...il.com>
To: fulldisclosure@...lists.org
Subject: [FD] [KIS-2024-06] XenForo <= 2.2.15 (Template System) Remote Code
 Execution Vulnerability

-----------------------------------------------------------------------
XenForo <= 2.2.15 (Template System) Remote Code Execution Vulnerability
-----------------------------------------------------------------------


[-] Software Link:

https://xenforo.com


[-] Affected Versions:

Version 2.2.15 and prior versions.


[-] Vulnerability Description:

XenForo implements a template system which gives complete control over
the layout of XenForo pages. Through these templates, it might be
possible to call certain "callback methods", however there is a sort
of "sandbox" which allows to solely call read-only methods: a method
is to be considered read-only when it begins with one of the allowed
prefixes, such as "get" or "filter". Malicious users might be able to
bypass this "sandbox" by abusing the getRepository() method from the
XF\Mvc\Entity\Manager class in order to get an instance object of the
XF\Util\Arr class, and from there they can abuse its filterRecursive()
static method in order to execute arbitrary callbacks or functions
(internally, this method calls the array_filter() PHP function with an
attacker-controlled "callback" parameter). As such, this can be
exploited to e.g. execute arbitrary OS commands by using a payload
like the following within a template, which will try to execute the
passthru() PHP function passing to it the string "whoami" as argument,
potentially resulting in the execution of the "whoami" command on the
web server:

{{ $xf.app.em.getRepository('XF\Util\Arr').filterRecursive(['whoami'],'passthru')
}}

Successful exploitation of this vulnerability requires an account with
permissions to administer styles or widgets.


[-] Solution:

Update to a fixed version or apply the vendor patches.


[-] Disclosure Timeline:

[22/02/2024] - Vulnerability details sent to SSD Secure Disclosure
[05/06/2024] - Vendor released patches and fixed versions
[14/06/2024] - CVE identifier requested
[16/06/2024] - CVE identifier assigned
[16/07/2024] - Coordinated public disclosure


[-] CVE Reference:

The Common Vulnerabilities and Exposures project (cve.mitre.org) has
assigned the name CVE-2024-38458 to this vulnerability.


[-] Credits:

Vulnerability discovered by Egidio Romano.


[-] Other References:

https://xenforo.com/community/threads/222133
https://ssd-disclosure.com/ssd-advisory-xenforo-rce-via-csrf/


[-] Original Advisory:

http://karmainsecurity.com/KIS-2024-06
_______________________________________________
Sent through the Full Disclosure mailing list
https://nmap.org/mailman/listinfo/fulldisclosure
Web Archives & RSS: https://seclists.org/fulldisclosure/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ