CVE-2025-66511
Executive Summary
CVE-2025-66511 is a vulnerability in the Nextcloud Calendar application (versions prior to 6.0.3) that allows an attacker to compute valid participant tokens for meeting proposals. The tokens are generated using a hash function rather than a cryptographically secure random number generator, making them predictable. This enables an unauthenticated attacker to enumerate valid tokens, request meeting details, and submit dates for meeting proposals without authorization. The vulnerability has a CVSS score of 4.8 (Medium) and is currently unpatched in older versions. No public proof-of-concept (PoC) or exploit code is available at this time.
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
This vulnerability affects the Nextcloud Calendar app, which is distributed as part of the Nextcloud ecosystem. The app is typically installed via the Nextcloud App Store or bundled with Nextcloud server installations. Organizations using Nextcloud should verify their Calendar app version and update to 6.0.3 or later. The vulnerability does not directly impact the core Nextcloud server but affects the Calendar app's functionality.
CVSS Breakdown & Threat Level
- CVSS Score: 4.8 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: Low (meeting details exposed)
- Integrity Impact: Low (attacker can submit dates)
- Availability Impact: None
The threat level is Medium due to the low complexity and no required privileges, but the impact is limited to information disclosure and unauthorized date submission.
Deep Dive & Mechanics
The vulnerability lies in the token generation mechanism for meeting proposals in the Nextcloud Calendar app. When a meeting proposal is created, a participant token is generated to allow external participants to view details and submit their availability. The token is derived using a hash function (likely based on predictable inputs such as the meeting ID, timestamp, or other static data) instead of being generated by a cryptographically secure pseudo-random number generator (CSPRNG).
An attacker can:
- Observe or guess the pattern of token generation.
- Compute valid tokens for existing or future meeting proposals.
- Use these tokens to access meeting details (e.g., title, time, participants) and submit dates, potentially disrupting scheduling.
The vulnerability is fixed in version 6.0.3 by replacing the hash-based token generation with a secure random token generator.
Vulnerable vs. Patched Code
Vulnerable Code (prior to 6.0.3):
// Example of vulnerable token generation
function generateToken($meetingId) {
return hash('sha256', $meetingId . 'secret_salt');
}
Patched Code (6.0.3+):
// Example of patched token generation using CSPRNG
function generateToken() {
return bin2hex(random_bytes(32));
}
The patched version removes the dependency on predictable inputs and uses random_bytes() to generate a cryptographically secure token.
Exploitation & Lab Setup
Red Team
Lab Setup:
- Deploy a Nextcloud instance with Calendar app version < 6.0.3.
- Create a meeting proposal and capture the participant token from the URL (e.g.,
https://nextcloud.example.com/calendar/meeting/123?token=abc123). - Analyze the token pattern by creating multiple proposals and comparing tokens.
Exploitation Steps:
- Enumerate meeting IDs (e.g., sequential integers) and compute tokens using the same hash function.
- For each computed token, send a GET request to the meeting proposal endpoint:
GET /calendar/meeting/{meetingId}?token={computedToken} - If the response contains meeting details, the token is valid.
- Submit dates using a POST request with the valid token:
POST /calendar/meeting/{meetingId}/submit Content-Type: application/json { "token": "{computedToken}", "dates": ["2025-06-01", "2025-06-02"] }
Blue Team
Detection Steps:
- Monitor for unusual patterns in meeting proposal access logs, especially repeated requests with different tokens.
- Check for requests to
/calendar/meeting/*endpoints with varying token values in a short time frame. - Verify that the Calendar app version is 6.0.3 or later.
Mitigation:
- Immediately update to Nextcloud Calendar 6.0.3.
- If update is not possible, disable meeting proposals or restrict access to authenticated users only.
Indicators of Compromise (IOCs)
- Network IOCs:
- Repeated GET requests to
/calendar/meeting/*with different token parameters. - POST requests to
/calendar/meeting/*/submitwith token values that do not match expected patterns.
- Repeated GET requests to
- Log IOCs:
- Log entries showing access to meeting proposals with tokens that are not in the expected format (e.g., short or predictable strings).
- Multiple failed attempts to access meeting proposals with invalid tokens.
- File IOCs:
- Presence of custom scripts or tools that enumerate meeting IDs and compute tokens.
Detection Engineering
YARA Rule
rule Detect_Nextcloud_Calendar_Token_Vuln {
meta:
description = "Detects vulnerable token generation in Nextcloud Calendar < 6.0.3"
author = "Valters IT"
date = "2025-04-01"
hash = "sha256:example"
strings:
$hash_func = /hash\(['"]sha256['"]/
$token_gen = /function generateToken/
condition:
$hash_func and $token_gen
}
Sigma Rule
title: Nextcloud Calendar Token Enumeration Attempt
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects attempts to enumerate meeting proposal tokens in Nextcloud Calendar
author: Valters IT
date: 2025-04-01
logsource:
category: webserver
product: nextcloud
detection:
selection:
cs-method: 'GET'
cs-uri-stem|startswith: '/calendar/meeting/'
cs-uri-query|contains: 'token='
condition: selection
timeframe: 5m
condition: selection | count() > 10
falsepositives:
- Legitimate users accessing multiple meetings
level: medium
Suricata Rule
alert http any any -> any any (msg:"Nextcloud Calendar Token Enumeration Attempt"; flow:to_server; http.method; content:"GET"; http.uri; content:"/calendar/meeting/"; content:"token="; within:100; threshold: type both, track by_src, count 10, seconds 300; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Upgrade the Nextcloud Calendar app to version 6.0.3 or later.
- If upgrade is not possible, disable the meeting proposal feature in the Calendar app settings.
- Restrict access to the Calendar app to authenticated users only.
Long-term Measures:
- Implement regular security audits of third-party apps.
- Use a Web Application Firewall (WAF) to block suspicious token enumeration patterns.
- Monitor logs for unusual access patterns to meeting proposals.
Patch Details:
- The fix is included in Nextcloud Calendar version 6.0.3.
- Update via the Nextcloud App Store or by running
occ app:update calendar.
Valters IT
Securing Digital Frontiers