Skip to content

Unauthenticated Arbitrary File Upload → RCE via upload/actions/photo_uploader.php

Critical
MacWarrior published GHSA-p8j6-982r-4phv Oct 20, 2025

Package

ClipbucketV5

Affected versions

<= 5.5.1 - #142

Patched versions

>= 5.5.1 - #143

Description

Summary

ClipBucket versions ≤ 5.5.0 include an unauthenticated arbitrary file upload vulnerability in upload/actions/photo_uploader.php. The upload endpoint permits file uploads without proper authentication or sufficient validation, enabling an attacker to upload a PHP webshell and achieve remote code execution (RCE).

Details

The photo_uploader.php endpoint (plupload handler) does not enforce authentication or properly validate uploaded file types and content. File extension checks and MIME checks can be bypassed, allowing an attacker to submit a malicious PHP payload (for example shell.php) that is stored in a web-accessible directory and then executed by requesting the uploaded file.

Relevant code (example path):
https://github.com/MacWarrior/clipbucket-v5/blob/5.5.0/upload/actions/photo_uploader.php (ClipBucket 5.5.0)

PoC

No authentication required.

Example multipart POST to upload a PHP webshell:

POST /upload/actions/photo_uploader.php HTTP/1.1
Host: victim.example.com
Content-Type: multipart/form-data; boundary=----BOUNDARY

------BOUNDARY
Content-Disposition: form-data; name="Filedata"; filename="shell.php"
Content-Type: application/x-php

------BOUNDARY--
If the upload succeeds and the file is stored under http://victim.example.com/files/photos/shell.php, the attacker can execute commands:
http://victim.example.com/files/photos/shell.php?cmd=id
Expected response: output of id, showing RCE.

Notes:

The exact stored path may vary (e.g., /files/photos/); inspect upload behavior or successful upload response to find the URL.

Bypassing naive extension checks can be done by tampering with multipart filename, content-type headers, or using double extensions if present as the exact exploitation trick is not revealed here for obvious security reasons..

Impact

Vulnerability type: Unauthenticated Arbitrary File Upload (CWE-434) → Remote Code Execution.

Affected versions: ClipBucket ≤ 5.5.0 (confirmed).

Impact: Full server compromise (RCE) via unauthenticated upload and execution of PHP code. High severity.

Remediation

Require authentication and authorization on upload endpoints. Do not allow unauthenticated uploads.

Enforce strict server-side validation: allow a safe list of file types/extensions, verify file contents (magic bytes), and reject suspicious uploads.

Store uploaded files outside the web root or ensure uploaded files are served through a proxy or with sanitized filenames and denied execution permissions (e.g., store outside public_html or set chmod to disallow execution).

If PHP must be stored in web root, ensure the server does not execute user-uploaded files (use separate storage or content-disposition handling).

Add server-side scanning (AV, mime checks) and limit accepted size/types.

References:

https://github.com/MacWarrior/clipbucket-v5/tree/5.5.0

CVE: CVE-2025-55912

Credit: Discovered and reported by Mukundsinh Solanki (r00td3str0y3r) — https://x.com/r00td3str0y3r

Severity

Critical

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

CVE ID

CVE-2025-55912

Weaknesses

Unrestricted Upload of File with Dangerous Type

The product allows the attacker to upload or transfer files of dangerous types that can be automatically processed within the product's environment. Learn more on MITRE.

Credits