Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege user
-
DeliverySubmit nested POST array to LDAP/person import
-
ExploitBypass paramsFilter() non-recursive filter
-
ExecutionPersist unsanitized script in profile
-
ImpactVictim views profile and executes script
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
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 | The attacker must hold an authenticated account with access to the LDAP/person import feature of Agora Project and must submit the payload specifically as a two-dimensional (nested) POST array, because the flaw is that paramsFilter() does not recurse into nested arrays - a flat parameter would be sanitized. Exploitation is further limited by requiring a second user to subsequently view the poisoned user profile for the script to execute (passive user interaction), and it affects only deployments running a version before 26.10.0. There is no server-side code execution or data impact; impact is confined to the victim's browser context. |
| Impact | This is a moderate, not a priority-one, issue. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P) and the resulting 5.1 base score are internally consistent with the description: a network-reachable but authenticated (PR:L) stored XSS that requires a victim to passively view (UI:P) a poisoned profile. The vector correctly sets vulnerable-system impact to none (VC:N/VI:N/VA:N) and places the only impact on the subsequent system - the victim's browser session - at SC:L/SI:L, which matches a reflected-into-browser script with no direct server compromise. No KEV listing and no public proof-of-concept were provided, so exploitation status is 'no public exploit identified at time of analysis'; EPSS was not supplied. There are no conflicting signals here - all sources agree this is a credentialed, interaction-dependent XSS against a niche collaboration product. The main caveat is that real-world risk depends on how many low-privileged accounts can reach the LDAP/person import flow, which the data does not quantify. |
| Exploit ScenarioDerived | An authenticated low-privilege user abuses the LDAP/person import flow to submit a malicious value inside a two-dimensional (nested) POST array, which slips past the paramsFilter() sanitizer because that filter does not recurse into nested arrays. The unneutralized markup is stored in a user profile; when another user (including an administrator) later views that profile, the injected script executes in their browser. No public exploit code was identified, and the attack requires the victim to view the affected page. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Stored cross-site scripting in Omnispace Agora Project before 26.10.0 allows an authenticated user who can reach the LDAP/person import feature to persist unsanitized markup into a user profile, which then executes in the browser of any other user who views that profile. The bypass works because the paramsFilter() request-parameter sanitizer handles only flat parameters and does not recurse into two-dimensional (nested) POST arrays, so a payload submitted in that shape survives filtering and is stored verbatim; a flat parameter with the same content would have been neutralized. Exploitation requires an authenticated account with import access plus a second user viewing the poisoned profile (passive user interaction, CVSS 3.1 PR:L/UI:R, scope changed), impact is confined to the victim's browser context with no server-side code execution or data loss, and no public exploit code has been identified at time of analysis.
RemediationAI
Vendor-released patch: upgrade to Agora Project 26.10.0, which is the first version in which the paramsFilter() nested-array bypass is addressed; the fix is published at https://github.com/xech/agora-project/releases/tag/26.10 and the corresponding advisory is https://www.vulncheck.com/advisories/omnispace-agora-project-stored-xss-via-nested-post-array-bypass. Where an immediate upgrade is not possible, the most effective compensating control is to remove the attack surface: restrict or temporarily disable the LDAP/person import feature and limit it to a minimal set of trusted administrator accounts, accepting that this blocks a legitimate bulk-provisioning workflow but eliminates the injection vector entirely. As a shorter-term layer, reject or flatten multi-dimensional POST arrays at the reverse proxy or WAF (blocking requests whose parameters are nested arrays rather than scalars) and apply server-side validation that force-casts or rejects non-scalar values on profile fields; these controls are signature-based and can be evaded by parameter-name or encoding variation, so they should be considered a stopgap only. Deploying a restrictive Content-Security-Policy that disallows inline script reduces the probability that any surviving stored markup executes, at the cost of requiring testing against Agora's own front-end assets, and auditing/cleaning existing user profile records for injected markup is advisable since patched code does not remove already-persisted payloads.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package 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 a classic stored (persistent) cross-site scripting issue, CWE-79, rooted in incomplete input neutralization rather than in an encoding or output-context error alone. Agora Project's paramsFilter() routine is intended to sanitize inbound request parameters, but its recursion logic stops at the top level: it iterates the request array's first dimension and does not walk into nested structures. The LDAP/person import flow accepts and processes two-dimensional POST arrays, so an attacker can place payload markup in the inner array, where paramsFilter() never inspects it. The unfiltered value is written into a user profile record and rendered later without appropriate output encoding to other users, which is what elevates a self-only injection into a cross-user attack. The assessed CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) confirms the network-reachable, low-privilege prerequisite and the changed scope that results from script executing in the security context of other users' sessions, while capping confidentiality and integrity impact at Low and availability at None - consistent with browser-context compromise rather than backend takeover. The upstream release 26.10.0 (tagged 26.10 on GitHub) is the version boundary at which the sanitizer behavior is corrected.
Know when the next one hits your stack
- 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Authenticated submission sets PR:L; victim must view the profile so UI:R; script executing in another user's browser crosses a security boundary giving S:C with C:L/I:L and no availability impact.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
1DescriptionCVE.org
Omnispace Agora Project before 26.10.0 contains a stored cross-site scripting vulnerability that allows authenticated attackers to persist unneutralized markup by submitting malicious values as two-dimensional POST arrays through the LDAP/person import flow, bypassing the paramsFilter() request parameter filter which failed to recurse into nested arrays. Attackers can inject arbitrary script code into a user profile that is later rendered to other users, resulting in execution of malicious scripts in victims' browsers.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
EUVD-2026-100476
GHSA-rfhc-h8r6-5jmp
NVD
CVE.org
EPSS
Exploit-DB