Skip to main content

Nextcloud Contacts CVE-2025-66554

| EUVDEUVD-2025-201461 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2025-12-05 security-advisories@github.com
5.4
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privileged Nextcloud user
  2. Delivery
    Inject CSS-loading markup into contact organisation/title field
  3. Exploit
    Victim opens the shared/viewed contact
  4. Execution
    Malicious external CSS loads in victim session
  5. Impact
    UI defacement and limited CSS-based data leakage

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A03:2021 - Injection
ASVS 5.0
V5 - Validation, Sanitization and Encoding Input validation, output encoding, parameterized queries
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated account on the target Nextcloud instance (PR:L) because the attacker must edit a contact's own organisation or title field, and requires a victim to view that contact entry (UI:R) for the injected CSS to render. Exploitation is further LIMITED to loading additional CSS files only - JavaScript and other active-content options are blocked by the Nextcloud Server content security policy, so no arbitrary script execution is possible. Affected deployments are Contacts app versions prior to 5.5.4, 6.0.6, and 7.2.5; patched instances escape these fields and are not exploitable.

Impact

This is a genuinely low-to-moderate priority issue despite being a stored injection flaw. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N, base 5.4) tells a consistent, self-limiting story: network-reachable but requiring an authenticated low-privileged account (PR:L), victim interaction to view the malicious contact (UI:R), and only Low confidentiality/integrity impact. Critically, the description confirms the attack is constrained to loading additional CSS files - JavaScript and other dangerous sinks were already blocked by the Nextcloud Server content security policy - so this is effectively CSS injection rather than full script execution, which caps real-world impact (UI defacement, limited CSS-based data inference) well below a typical XSS. Corroborating signals align: EPSS is 0.02% (5th percentile), i.e. negligible predicted exploitation, and the vulnerability is NOT on CISA KEV. The one elevating signal is a publicly available proof-of-concept (a GitHub gist), but POC availability is distinct from active exploitation and the low EPSS plus absent KEV status indicate no evidence of in-the-wild use. Net: a legitimate finding worth patching on normal cadence, not an emergency - the CSP mitigation is the key reason this did not become a critical XSS.

Exploit ScenarioDerived

An attacker with a valid, low-privileged account on a shared Nextcloud instance edits the organisation or title field of a contact entry, injecting markup that causes the Contacts app to load an attacker-controlled external CSS file. When another user opens or views that contact, the malicious CSS renders in their session, enabling UI manipulation/defacement and limited CSS-based data exfiltration; JavaScript is blocked by the server CSP. A public proof-of-concept exists (GitHub gist), lowering the bar to reproduce.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – Oct 15, 2026

Stored CSS injection in the Nextcloud Contacts app (versions prior to 5.5.4, 6.0.6, and 7.2.5) allows an authenticated user to place crafted markup in a contact's organisation or title field that is rendered unescaped when another user views that contact, enabling limited page defacement and CSS-based information leakage. Because the Nextcloud Server content security policy blocks JavaScript and other active content, the impact is confined to loading attacker-supplied stylesheets rather than arbitrary script execution, and exploitation requires the attacker to hold a valid account and the victim to open the affected contact entry. Publicly available exploit code exists, but the EPSS score is only 0.02% (5th percentile) and there is no evidence of confirmed active exploitation.

Earlier versions of this analysis (1)
v1 Mar 15, 2026 - 17:08 CVSS 3.5

RemediationAI

Upgrade the Nextcloud Contacts app to version 5.5.4, 6.0.6, or 7.2.5 (or later in the corresponding branch), which is the verified vendor-released patch that escapes the organisation and title fields; administrators should update through the Nextcloud app store or the official release artefacts and then confirm the running app version matches or exceeds these builds. If immediate upgrading is not possible, the practical exposure is intrinsically limited because Nextcloud Server's content security policy already blocks JavaScript and other active content, but operators can further reduce risk by restricting which accounts or groups are permitted to create and edit contacts, by reviewing recently modified contact entries for suspicious organisation or title values, and by treating any unexpected third-party CSS loaded into the Contacts UI as an indicator of abuse - each of these controls carries the trade-off of reduced collaboration flexibility or added administrative overhead. Detailed technical context and the upstream fix are available in the advisory at https://github.com/nextcloud/security-advisories/security/advisories/GHSA-9v78-cpfc-v6h2 and the patch commit at https://github.com/nextcloud/contacts/commit/d954d098978dde1f121600e8b994e02f293c68b1, referenced by pull request https://github.com/nextcloud/contacts/pull/4619.

Affected VersionsENISA

security-advisories < 5.5.4
security-advisories 6.0.0-alpha1, < 6.0.6
security-advisories 7.0.0-alpha.1, < 7.2.5

Affected Packages

euvd security_advisories fix: 5.5.4
euvd security_advisories_6_0_0_alpha1 fix: 6.0.6
euvd security_advisories_7_0_0_alpha_1 fix: 7.2.5

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 3 packages in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is tracked as CWE-79 (improper neutralisation of input during web page generation) because the Contacts app rendered user-controlled contact fields directly into the DOM without output encoding. In practice the practical consequence is CSS injection rather than classic script XSS: the Nextcloud Server's Content Security Policy and HTML sanitisation already block JavaScript and similar active-content vectors, so the residual attack surface is the ability to inject additional CSS files via the organisation and title fields. The upstream fix, commit d954d098978dde1f121600e8b994e02f293c68b1 (pull request #4619), adds lodash's fp/escape helper and wraps the title and organization values in both src/components/ContactDetails.vue and src/views/ReadOnlyContactDetails.vue at render time, escaping the injected markup before it reaches the page. The CPE data confirms the affected component is the Nextcloud Contacts app itself (cpe:2.3:a:nextcloud:contacts), not the Nextcloud Server core, which is what supplies the CSP mitigation. The CVSS vector CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N reflects a network-reachable, low-complexity issue requiring an authenticated account (PR:L) plus victim interaction (UI:R), with scope change and only low confidentiality and integrity impact and no availability impact.

Know when Contacts gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

NVD PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

Authenticated user injects stored content (PR:L) that executes in a viewing victim's context (UI:R, S:C); CSP limits payload to CSS so impact is only C:L/I:L, A:N.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

6
Severity Changed
Oct 15, 2026 - 21:25 NVD
LOW MEDIUM
CVSS changed
Oct 15, 2026 - 21:25 NVD
3.5 (LOW) 5.4 (MEDIUM)
Patch released
Mar 15, 2026 - 17:08 nvd
Patch available
PoC Detected
Dec 09, 2025 - 17:01 vuln.today
Public exploit code
CVE Published
Dec 05, 2025 - 18:15 nvd
MEDIUM 5.4
CVE Published
Dec 05, 2025 - 18:15 nvd
LOW 3.5

DescriptionNVD

Contacts app for Nextcloud easily syncs contacts from various devices with your Nextcloud and allows editing. Prior to 5.5.4, 6.0.6, and 7.2.5, a malicious user was able to modify their organisation and title field to load additional CSS files. Javascript and other options were correctly blocked by the content security policy of the Nextcloud Server code. This vulnerability is fixed in 5.5.4, 6.0.6, and 7.2.5.

Executive ViewAI

Why It Matters

CVE-2025-66554 is a low-severity vulnerability involving cross-site scripting (CVSS 3.5). The limited severity suggests constrained impact, typically requiring specific conditions or local access for exploitation. A patch is available and can be applied during standard maintenance windows.

Business Impact: Low
Compensating Controls

Apply vendor patch during routine maintenance. Standard cross-site scripting mitigations apply if patching is delayed.

Threat Intelligence Overview

EPSS Score
0.0%
Top 95% exploitable
Prevalence
Medium
Common bundled app of the widely self-hosted Nextcloud platform, not universal
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Low

Priority Score

47
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy