CVE-2025-61906
Executive Summary
CVE-2025-61906 describes a race condition in the Opencast video editor that can lead to unintentional publication of media. The vulnerability occurs when a user with write access to an event clicks "Save & Publish" and then subsequently clicks "Save" before the first action completes. This race condition can cause the system to publish the video without the user's explicit confirmation, potentially exposing internal media. The risk is considered low because it requires specific user actions and write privileges. The issue is fixed in Opencast versions 17.8 and 18.2.
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
Opencast is a Java-based open-source platform. The vulnerability is in the application logic, not in a third-party package. However, organizations should verify the integrity of their Opencast installation and ensure they are using official releases from the Opencast project.
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (NVD) / Adjusted Score: 2.6 (Low)
- Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:N/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: High (write access to an event)
- User Interaction: Required (user must click "Save & Publish" then "Save")
- Scope: Unchanged
- Confidentiality Impact: Low (potential exposure of internal media)
- Integrity Impact: None
- Availability Impact: None
Threat Level: Low. Exploitation requires authenticated access with write privileges and specific user actions. The impact is limited to potential unauthorized publication of media.
Deep Dive & Mechanics
The vulnerability is a race condition in the Opencast editor's save/publish workflow. The editor provides two primary actions: "Save" (saves draft) and "Save & Publish" (saves and publishes the video). The race condition occurs when a user clicks "Save & Publish" and then quickly clicks "Save" before the first action completes. Due to asynchronous processing, the second "Save" action may override the first, causing the video to be published without the user's explicit intent.
Root Cause: The editor does not properly synchronize or debounce the "Save" and "Save & Publish" actions. When both are triggered in rapid succession, the system may process the "Save" action after the "Save & Publish" has already initiated publication, resulting in the video being published.
Attack Scenario:
- Attacker gains write access to an event (e.g., through compromised credentials or insider threat).
- Attacker opens the editor for a video they do not want to publish.
- Attacker clicks "Save & Publish" and then immediately clicks "Save".
- The race condition causes the video to be published, exposing internal media.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
// Vulnerable: No debouncing or state management
editor.on('saveAndPublish', function() {
publishVideo();
saveDraft();
});
editor.on('save', function() {
saveDraft();
});
Patched Code (Conceptual):
// Patched: Debouncing and state management
let isPublishing = false;
editor.on('saveAndPublish', function() {
if (isPublishing) return;
isPublishing = true;
publishVideo().then(() => {
saveDraft();
isPublishing = false;
});
});
editor.on('save', function() {
if (isPublishing) return;
saveDraft();
});
The patched code introduces a flag (isPublishing) that prevents the "Save" action from executing while a "Save & Publish" is in progress. This eliminates the race condition.
Exploitation & Lab Setup
Red Team
Prerequisites:
- Valid user account with write access to an event.
- Access to the Opencast editor interface.
Exploitation Steps:
- Log in to Opencast with a user that has write access.
- Navigate to an event and open the editor.
- Click "Save & Publish" and immediately click "Save" (within milliseconds).
- Verify that the video is published by checking the event's publication status.
Note: No public exploit code is available. This is a manual exploitation scenario.
Blue Team
Detection:
- Monitor for rapid successive clicks on "Save" and "Save & Publish" buttons in editor logs.
- Alert on any publication events that occur without a corresponding "Save & Publish" action in the audit log.
Mitigation:
- Apply the patch by upgrading to Opencast 17.8 or 18.2.
- Implement input validation and debouncing on the client side.
- Add server-side checks to ensure publication only occurs when explicitly requested.
Indicators of Compromise (IOCs)
- Log Entries: Rapid succession of "save" and "saveAndPublish" events in editor logs.
- Audit Logs: Publication events without a preceding "Save & Publish" action.
- Network Traffic: Unusual patterns of API calls to the editor endpoint.
Detection Engineering
YARA Rule
rule CVE_2025_61906_Opencast_RaceCondition {
meta:
description = "Detects potential exploitation of CVE-2025-61906 in Opencast editor logs"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-61906"
strings:
$save = "save" nocase
$saveAndPublish = "saveAndPublish" nocase
$publish = "publish" nocase
condition:
all of ($save, $saveAndPublish, $publish) and #save > 1
}
Sigma Rule
title: CVE-2025-61906 Opencast Editor Race Condition
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects rapid successive save and publish actions in Opencast editor logs
author: Valters IT
date: 2025-04-10
references:
- https://nvd.nist.gov/vuln/detail/CVE-2025-61906
logsource:
category: application
product: opencast
detection:
selection:
event: "editor_action"
action:
- "save"
- "saveAndPublish"
timeframe: 1s
condition: selection | count() by user > 1
falsepositives:
- Legitimate rapid clicking by users
level: low
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-61906 Opencast Editor Race Condition"; flow:to_server,established; content:"POST"; http_method; content:"/editor/save"; http_uri; pcre:"/saveAndPublish.*save/"; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Upgrade to Opencast 17.8 or 18.2.
- If upgrade is not possible, implement a Web Application Firewall (WAF) rule to block rapid successive requests to the editor endpoint.
- Review user permissions and ensure only trusted users have write access.
Long-term Fixes:
- Apply the official patch from the Opencast project.
- Implement client-side debouncing and server-side state management for editor actions.
- Add audit logging for all publication events.
Workarounds:
- Disable the editor for sensitive events.
- Implement a confirmation dialog for publication actions.
Valters IT
DevSecOps & Cyber Threat Intelligence
Report generated for CVE-2025-61906