GitHub: https://github.com/rvizx/CVE-2024-42640
Last Commit: October 18th, 2024
CVE-2024-42640
Unauthenticated Remote Code Execution via Angular-Base64-Upload Library
for more details: blog
Introduction
angular-base64-upload
versions prior to v0.1.21 are vulnerable to unauthenticated remote code execution via the angular-base64-upload/demo/server.php
endpoint. Exploiting this vulnerability allows an attacker to upload arbitrary file content to the server, which can subsequently be accessed through the angular-base64-upload/demo/uploads endpoint. This lead to the execution of previously uploaded content and ultimately enable the attacker to achieve code execution on the server.
Usage
git clone https://github.com/rvizx/CVE-2024-42640
cd CVE-2024-42640
python3 exploit.py <target> # this will use a php command shell (web-shell)
python3 exploit.py <target> --rev # this will use a php reverse shell
Note: By default the exploit script will use a php command shell (web-shell) and it provies a terminal like interface to continously execute commands on the target.
Fixing and Verification
In order to fix the security issue,
- Update angular-base64-upload library to a version v0.1.21 or newer.
- Remove the demo folder from angular-base64-upload folder under the dependency installation directory.
The following fix.sh
script developed to fix the security issue using the 2nd option mentioned above,
Usage (Fix & Verification)
git clone https://github.com/rvizx/CVE-2024-42640
cd CVE-2024-42640
chmod +x fix.sh
./fix.sh # example: ./fix.sh /app | tee -a /tmp/verify.log
Note: The `fix.sh` script can be used to fix and verify this security issue. This also includes a potential prior exploitation detection based on the known files. Please note that the vulnerable demo directory will be deleted after identifying the `angular-base64-upload/demo` structure. Make sure to execute the script twice to verify the fixes properly.
Security Issue Details
Exploit Title: Unauthenticated RCE via Angular-Base64-Upload Library
Researcher: Ravindu Wickramasinghe | rvz (@rvizx9)
Severity: Critical - 10.0 (CVSS 4.0)
Vendor Homepage: https://www.npmjs.com/package/angular-base64-upload
Software Link: https://github.com/adonespitogo/angular-base64-upload
Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Vulnerable Versions: < v0.1.21
Fixed Versions: >= v0.1.21
Tested on: Arch Linux
CVE : CVE-2024-42640
NIST: https://nvd.nist.gov/vuln/detail/CVE-2024-42640
Github PoC Exploit Link : https://github.com/rvizx/CVE-2024-42640
Blog Post: https://www.zyenra.com/blog/unauthenticated-rce-in-angular-base64-upload.html