Product details
- Product
- Agora-Project
- Affected versions
- ≤ 26.10.0
- Status
- Partially Fixed (21/29)
Vulnerabilities overview
| CVE | CVSS | Title |
|---|---|---|
| CVE-2026-63146 | 9.3 · Critical | Unauthenticated RCE at installation |
| CVE-2026-63149 | 9.1 · Critical | Predictable Default Password via uniqid() |
| CVE-2026-63158 | 9.1 · Critical | Pass-the-Hash Authentication Bypass via Cookies |
| CVE-2026-63159 | 9.1 · Critical | Predictable Password-Reset Token Account Takeover |
| CVE-2026-63160 | 9.1 · Critical | Insecure Remember-Me Token Storage |
| CVE-2026-63150 | 8.9 · High | No CSRF Protection And Unsecure Cookies Leads To Administrator Creation |
| CVE-2026-63154 | 8.7 · High | SQL Identifier Injection via agoraFields[] |
| CVE-2026-63151 | 8.7 · High | Personal calendars: zero-entropy md5Id share token allows unauthenticated, enumerable read of any user's private calendar |
| CVE-2026-63163 | 8.7 · High | Broken Access Control via MobileFileDownload |
| CVE-2026-63164 | 8.7 · High | IDOR in reloadMailTypeId allows reading and exfiltration of other users' emails |
| CVE-2026-63162 | 8.7 · High | Path Traversal via tmpFolderName Parameter |
| CVE-2026-63152 | 8.6 · High | Second-Order SQL Injection via _idCategoryFilter |
| CVE-2026-63165 | 8.6 · High | SQL Injection via sortEvents Parameter |
| CVE-2026-63161 | 8.6 · High | Session Fixation via Authentication |
| CVE-2026-63153 | 8.6 · High | Broken Access Control via setAffectations() |
| CVE-2026-63174 | 8.6 · High | Broken Access Control via spaceAffectList |
| CVE-2026-63155 | 8.3 · High | Open redirect and reflected XSS via objUrl |
| CVE-2026-63166 | 7.1 · High | Second-order XSS in LDAP import preview |
| CVE-2026-63172 | 7.1 · High | Broken Function-Level Authorization via User-Edit |
| CVE-2026-63167 | 7.0 · High | Second-order SQL injection (ORDER BY) via personsSort |
| CVE-2026-63170 | 6.3 · Medium | Shared-calendar iCal share token: forgeable from a leaked creation minute, and self-disclosed by the feed |
| CVE-2026-63169 | 5.3 · Medium | Stored XSS via Messenger Iframe |
| CVE-2026-63173 | 5.3 · Medium | Stale author access after space revocation via isAutor() |
| CVE-2026-63148 | 5.1 · Medium | Stored XSS via Poll-Response Attachment Filename |
| CVE-2026-63147 | 5.1 · Medium | Stored XSS via Uploaded File Name |
| CVE-2026-63157 | 5.1 · Medium | Stored XSS via Links Module |
| CVE-2026-63168 | 5.1 · Medium | Stored XSS via Nested POST Array Bypass |
| CVE-2026-63156 | 5.1 · Medium | Reflected XSS via visioUrl Parameter |
| CVE-2026-63171 | 5.1 · Medium | Stored XSS via Category Description |
Timeline
- 2026-07-15Responsible-disclosure case opened with VulnCheck; VulnCheck acknowledges receipt.
- 2026-07-16Provisional CVE identifiers assigned to the reported issues.
- 2026-07-20Akailabs confirms to VulnCheck that all versions up to and including 26.6.2 are affected.
- 2026-07-24The Omnispace team acknowledges Akailabs' vulnerability report and plans to address the findings in an upcoming release.
- 2026-08-17Omnispace requests the full report.
- 2026-09-10Omnispace reports that a large batch of issues has been patched ("These fixes address the vulnerabilities ranging from CVE-2026-63146 to CVE-2026-63162.") and that work continues on the remaining findings.
- 2026-09-21A release is published addressing CVE-2026-63146 through CVE-2026-63165.
- 2026-10-06VulnCheck asks whether the patched CVEs can be retested against the fixes.
- 2026-10-09Akailabs sends VulnCheck the results of the retest.
- 2026-10-13VulnCheck validates and publishes the 21 CVEs that are now fixed.
- 2026-10-15Disclosure to ANSSI and Breizh Cyber.
- 2026-10-15Start of the prevention campaign for organizations with an exposed instance.
- 2026-10-25More than 200 organizations have been notified
- 2026-11-10VulnCheck notifies Akailabs of the end of the responsible-disclosure period for the remaining CVEs and awaits publication to release the last 8 ("I just informed the Omnispace team that the embargo period concludes this Friday, Nov 13th.").
Agora Project is an open-source collaborative groupware (shared spaces, calendars, forums, polls, file sharing, messaging, LDAP directory sync). During a security assessment of version 26.5.2, Akailabs identified 29 vulnerabilities, ranging from an unauthenticated remote code execution to a broad set of injection, access-control, authentication and cross-site-scripting issues. Several of them chain together into realistic, high-impact attack paths - from a plain user account to full administrator, or from any member to a complete database compromise.
Beyond identifying the vulnerabilities, Akailabs carried out a reconnaissance effort to map the assets exposing this application on the internet. The goal of that work is to notify the various owners and administrators of affected instances that vulnerabilities have been discovered in the application, so that they can update their instances to a fixed version before an attacker exploits them.
This article summarises the findings, explains each class of issue in plain terms, and walks through the kill-chains that tie them together. It deliberately stays at a conceptual level: the intent is to help defenders understand and prioritise, not to provide turn-key exploits. All testing was performed against a local lab instance. No third-party or production system was touched.
The issues have been reported to the vendor and assigned the CVE identifiers listed below.
Remote code execution
CVE-2026-63146Unauthenticated RCE at installation
- Severity
- 9.3 · Critical
- CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N- CWE
- CWE-94 - Improper Control of Generation of Code ('Code Injection')
Description
While an instance is deployed but not yet configured, the public installation form writes attacker-supplied database settings into config.inc.php as define() statements without escaping. Because that file is included on every request, a value carrying a PHP string-interpolation construct is evaluated as code, giving an unauthenticated attacker command execution as the web user.
Cross-site scripting
CVE-2026-63147Stored XSS via Uploaded File Name
- Severity
- 5.1 · Medium
- CVSS
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- CWE
- CWE-79 - Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
- CWE-116 - Improper Encoding or Escaping of Output
Description
The $_FILES superglobal never passes through the framework's central input filter, so an uploaded attachment's filename reaches storage and two HTML rendering sinks completely unescaped. Any user who can attach a file plants persistent JavaScript that runs for every later reader of that object.
CVE-2026-63148Stored XSS via Poll-Response Attachment Filename
- Severity
- 5.1 · Medium
- CVSS
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- CWE
- CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Description
The same $_FILES filter gap applies to poll-response file attachments with a non-image extension: the raw filename is stored and rendered unescaped in the dashboard poll view, producing persistent, zero-click XSS on the space home page for every member who loads it.
CVE-2026-63155Open redirect and reflected XSS via objUrl
- Severity
- 8.3 · High
- CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:L/VA:N/SC:H/SI:L/SA:N- CWE
- CWE-601 - URL Redirection to Untrusted Site ('Open Redirect')
- CWE-79 - Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
- CWE-116 - Improper Encoding or Escaping of Output
Description
The post-login redirect parameter objUrl is sanitized with FILTER_SANITIZE_URL, which does not strip the double quote, and is echoed unescaped inside an inline script that assigns window.top.location.href. One flaw yields both an open redirect and a reflected XSS.
CVE-2026-63156Reflected XSS via visioUrl Parameter
- Severity
- 5.1 · Medium
- CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N- CWE
- CWE-79 - Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
- CWE-116 - Improper Encoding or Escaping of Output
Description
The pre-auth launchVisio action applies urldecode() to the visioURL parameter after the framework's HTML-encoding filter, so a double-encoded payload reconstructs HTML metacharacters the filter never saw. Any unauthenticated visitor following a crafted link runs attacker JavaScript in the application origin.
CVE-2026-63157Stored XSS via Links Module
- Severity
- 5.1 · Medium
- CVSS
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- CWE
- CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Description
A saved bookmark URL (adress) passes only through FILTER_SANITIZE_URL, which keeps JavaScript metacharacters, and is echoed raw into a single-quoted window.open('...') string inside an onclick. A low-privileged member can plant a payload that breaks out and runs arbitrary JavaScript when another member clicks the link.
CVE-2026-63166Second-order XSS in LDAP import preview
- Severity
- 7.1 · High
- CVSS
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:L/VA:N/SC:H/SI:L/SA:N- CWE
- CWE-79 - Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Description
The LDAP-import preview renders every directory attribute value through a charset-conversion helper with no HTML escaping, into both a table cell and a hidden form field. Because the base DN and filter are pre-filled with configured defaults, a space admin is popped simply by opening the import menu when one directory entry carries a poisoned value.
CVE-2026-63168Stored XSS via Nested POST Array Bypass
- Severity
- 5.1 · Medium
- CVSS
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- CWE
- CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Description
The central input filter Req::paramFilter() only sanitizes array values one level deep. The LDAP-import preview submits fields as a two-dimensional array (personFields[lineCpt][fieldCpt]), which falls through the filter unescaped, is written into ap_user/ap_contact records, and later rendered raw on the profile page: a stored XSS driven by a self-service LDAP attribute.
CVE-2026-63169Stored XSS via Messenger Iframe
- Severity
- 5.3 · Medium
- CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N- CWE
- CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Description
A substring-match weakness in the URI.SafeIframeRegexp rule lets any user inject an attacker-controlled iframe into a Messenger message, yielding a zero-click drive-by download (iframe to a non-renderable resource) and arbitrary JavaScript execution inside an attacker-hosted iframe.
CVE-2026-63171Stored XSS via Category Description
- Severity
- 5.1 · Medium
- CVSS
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- CWE
- CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Description
The theme description is stored through the HTMLPurifier branch, which preserves the literal double quote, then echoed raw into a value="..." attribute on the editor page. A member who can add a theme can break out of the attribute and install an onfocus handler that runs when any user (including an admin) opens the editor and focuses the field.
SQL injection
CVE-2026-63152Second-Order SQL Injection via _idCategoryFilter
- Severity
- 8.6 · High
- CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N- CWE
- CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
Description
The shared category-filter parameter _idCategoryFilter is HTML-escaped on input, stored in the session, then re-read and concatenated unquoted into a numeric SQL WHERE term. HTML escaping never protected the SQL context, so any authenticated member achieves full error-based database exfiltration and, via stacked queries, arbitrary DDL/DML; the session-stored payload also re-fires on later requests.
CVE-2026-63154SQL Identifier Injection via agoraFields[]
- Severity
- 8.7 · High
- CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N- CWE
- CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
Description
The people-import feature uses client-supplied agoraFields[] values directly as SQL column names, blocking only login/pass. A space admin can inject generalAdmin to write generalAdmin=1 on an imported record, escalating to full instance administrator in a single request.
CVE-2026-63165SQL Injection via sortEvents Parameter
- Severity
- 8.6 · High
- CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N- CWE
- CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
Description
actionMyEvents() builds the ORDER BY clause by directly concatenating the sortEvents parameter with no whitelist or binding. Any authenticated user can substitute an arbitrary subquery for the sort column and exfiltrate the whole database via error-based or time-based channels.
CVE-2026-63167Second-order SQL injection (ORDER BY) via personsSort
- Severity
- 7.0 · High
- CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:N/VA:H/SC:N/SI:L/SA:N- CWE
- CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
Description
A general admin can store a malicious personsSort value in global settings; the write is protected by PDO::quote, but the value is later re-read and concatenated unquoted into an ORDER BY clause reachable by every authenticated user, turning one admin write into a persistent, globally-triggered SQL injection.
Authentication and session management
CVE-2026-63149Predictable Default Password via uniqid()
- Severity
- 9.1 · Critical
- CVSS
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N- CWE
- CWE-330: Use of Insufficiently Random Values
Description
Temporary passwords issued at self-registration, bulk import, and contact-to-user conversion are derived from substr(uniqid(),0,8), which is simply the epoch second of generation. An attacker who knows roughly when an account was created can predict its password from a few candidates and log in before the victim changes it.
CVE-2026-63158Pass-the-Hash Authentication Bypass via Cookies
- Severity
- 9.1 · Critical
- CVSS
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N- CWE
- CWE-836: Use of Password Hash Instead of Password for Authentication
Description
A legacy authentication branch compares the AGORAP_PASS cookie directly against the stored bcrypt hash by raw SQL equality instead of password_verify(). Anyone who obtains the stored hash (for instance via SQL injection) can forge the cookie and authenticate without cracking it.
CVE-2026-63159Predictable Password-Reset Token Account Takeover
- Severity
- 9.1 · Critical
- CVSS
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N- CWE
- CWE-640: Weak Password Recovery Mechanism for Forgotten Password
Description
The password-reset token is a deterministic, non-expiring, non-single-use sha1(login . storedHash). An attacker who obtains the stored hash can recompute the token offline and reset the account's password without ever receiving the reset email.
CVE-2026-63160Insecure Remember-Me Token Storage
- Severity
- 9.1 · Critical
- CVSS
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N- CWE
- CWE-522: Insufficiently Protected Credentials
Description
The persistent-login token is stored verbatim and checked by raw SQL equality rather than hashed at rest and verified. Any read of that value (SQL injection, XSS on the flag-less cookie, or network interception) yields a directly-replayable session credential valid for up to a year.
CVE-2026-63161Session Fixation via Authentication
- Severity
- 8.6 · High
- CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N- CWE
- CWE-384: Session Fixation
Description
The session starts before authentication and its identifier is never regenerated on login; the server also accepts an arbitrary client-supplied identifier (session.use_strict_mode is off). An attacker can fix a known identifier on the victim and ride their authenticated session.
Cross-site request forgery
CVE-2026-63150No CSRF Protection And Unsecure Cookies Leads To Administrator Creation
- Severity
- 8.9 · High
- CVSS
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:L/SI:H/SA:H- CWE
- CWE-352 - Cross-Site Request Forgery (CSRF)
- CWE-1004 - Sensitive Cookie Without 'HttpOnly' Flag
- CWE-614 - Sensitive Cookie in HTTPS Session Without 'Secure' Attribute
Description
No form carries a CSRF token, no action checks Origin/Referer, and the session cookie lacks SameSite, HttpOnly, and Secure. A same-origin XSS (or a cross-site request in the fresh-cookie window) can drive the user-creation endpoint to create a new generalAdmin account, yielding full administrative takeover.
Access control, IDOR and broken tenancy
CVE-2026-63151Personal calendars: zero-entropy md5Id share token allows unauthenticated, enumerable read of any user's private calendar
- Severity
- 8.7 · High
- CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N- CWE
- CWE-330 - Use of Insufficiently Random Values
- CWE-340 - Generation of Predictable Numbers or Identifiers
- CWE-639 - Authorization Bypass Through User-Controlled Key
- CWE-306 - Missing Authentication for Critical Function
Description
Personal calendars are auto-provisioned without a creation date (dateCrea stays NULL), so the iCal share token md5($_id.$dateCrea.$_idUser) collapses to md5($_id.$_idUser), a hash of two small sequential integers, one of which the attacker already supplies in the URL. The unauthenticated DisplayIcal route then lets anyone enumerate identifiers and read any user's private calendar.
CVE-2026-63153Broken Access Control via setAffectations()
- Severity
- 8.6 · High
- CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N- CWE
- CWE-639: Authorization Bypass Through User-Controlled Key
Description
The rights method setAffectations() scopes its DELETE to the caller's own spaces but performs the INSERT with an attacker-controlled _idSpace taken verbatim from the objectRight[] parameter. Any member with edit rights can grant a foreign space access to one of their objects, breaking tenant isolation, with a recursive flag extending it to a whole folder tree.
CVE-2026-63163Broken Access Control via MobileFileDownload
- Severity
- 8.7 · High
- CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N- CWE
- CWE-639: Authorization Bypass Through User-Controlled Key
Description
A mobile-app download shortcut accepts md5(fileName) as an alternative to a real readRight() check. Because a filename is not a secret (unsalted md5, computable offline, and handed out by the server in mobile mode), any authenticated user can download any file from any space across tenant boundaries by enumerating file ids.
CVE-2026-63164IDOR in reloadMailTypeId allows reading and exfiltration of other users' emails
- Severity
- 8.7 · High
- CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N- CWE
- CWE-639: Authorization Bypass Through User-Controlled Key
Description
The mail composer's resend feature resolves reloadMailTypeId through Ctrl::getCurObj(), an object loader with no access-control check. Any authenticated non-guest user can point it at another user's mail id to read its title, body and attachment list, and copy the victim's attachments into a mail delivered to themselves, across space boundaries.
CVE-2026-63170Shared-calendar iCal share token: forgeable from a leaked creation minute, and self-disclosed by the feed
- Severity
- 6.3 · Medium
- CVSS
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N- CWE
- CWE-340 - Generation of Predictable Numbers or Identifiers
- CWE-639 - Authorization Bypass Through User-Controlled Key
- CWE-200 - Exposure of Sensitive Information to an Unauthorized Actor
Description
For shared and resource calendars the iCal token md5($_id.$dateCrea.$_idUser) is compromised through two HTTP-observable channels - forging it from a leaked creation minute, or reading it back from a token oracle in the feed - allowing unauthorized calendar reads.
CVE-2026-63172Broken Function-Level Authorization via User-Edit
- Severity
- 7.1 · High
- CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N- CWE
- CWE-862: Missing Authorization
Description
The user-edit action vueEditUser that creates accounts applies no admin check for a new user, because the generic object-creation right returns true for any authenticated user on a user object. Any ordinary member can create a real, usable account (privilege escalation itself remains blocked), enabling unauthorized account creation and quota exhaustion.
CVE-2026-63173Stale author access after space revocation via isAutor()
- Severity
- 5.3 · Medium
- CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N- CWE
- CWE-284 - Improper Access Control
- CWE-862 - Missing Authorization
- CWE-613 - Insufficient Session Expiration
Description
MdlObject::accessRight() grants full read/write to any object whose stored author id matches the current user, via isAutor(), with no check of current space membership. A user revoked from a space keeps full access to every object they authored there until those objects are deleted or reassigned.
CVE-2026-63174Broken Access Control via spaceAffectList
- Severity
- 8.6 · High
- CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N- CWE
- CWE-862: Missing Authorization
Description
The user-import action is gated only on whether the caller is an admin of the current space, but it inserts each spaceAffectList[] target space id verbatim into ap_joinSpaceUser without checking the caller administers those spaces. A space admin can import users into an unrelated space and, thanks to the predictable default password, log in as the resulting ghost account.
Path traversal
CVE-2026-63162Path Traversal via tmpFolderName Parameter
- Severity
- 8.7 · High
- CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N- CWE
- CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
Description
actionUploadTmpFile() builds the destination path by concatenating the user-controlled tmpFolderName onto DATAS/tmp/ without confining it. The guard regex preg_match("/[a-z0-9]/i", $val) only checks that the value contains an alphanumeric, not that it is wholly alphanumeric, so a traversal sequence escapes the temp directory and writes files anywhere the web user can reach.
Kill-chains
Individually these issues are serious; combined, they form a handful of realistic end-to-end attack paths. Akailabs describes four below, kept at a conceptual level.
Kill-chain A - Deployment compromise: unauthenticated visitor to server RCE
Applies to an instance that is deployed but not yet configured.
- The attacker reaches the public installation page of an unconfigured instance.
- He submit the installation form with a database field crafted to carry a code-execution construct (CVE-2026-63146).
- The value is written unescaped into the configuration file, which is included on every request, so the injected command runs as the web user.
- Result: full remote code execution on the server, with no authentication and no prior access.
Kill-chain B - Plain user to reliable creation of an administrator account
The headline scenario: a standard member reliably obtains a generalAdmin account without attacking any admin-only endpoint head-on.
- Prepare the environment: As an ordinary member, the attacker abuses the path-traversal file write (CVE-2026-63162) to drop a same-origin payload file into the web root. This defeats the two practical obstacles (the short length limit on the injection point and the same-origin policy) by hosting the full payload on the target's own domain.
- Arm a passive trap: They create a dashboard poll whose response carries a file attachment whose filename is a short loader. Because
$_FILESbypasses the input filter (CVE-2026-63148), the filename is stored and rendered unescaped on the space home page, visible to all members including admins. - Wait for the victim: An administrator views their dashboard in the normal course of work. The stored filename renders as a live element whose handler fires automatically, with no click required.
- Leverage the missing CSRF defenses: The handler fetches the same-origin payload and executes it. Because no state-changing action checks a CSRF token or
Origin, and the session cookie is sent on the same-origin request (CVE-2026-63150), the administrator's own session silently creates a newgeneralAdminaccount (the permissive creation endpoint of CVE-2026-63172 helps here). - Result: the attacker logs in to the freshly created administrator account and holds full instance control.
Kill-chain C - Any member to full database compromise to account takeover
- SQL Injection: Any authenticated member exploits one of the injection points (the session-mediated category filter (CVE-2026-63152), the sortEvents ORDER BY (CVE-2026-63165), or the stored personsSort (CVE-2026-63167) ) to exfiltrate the whole database, including stored password hashes and auth-token values.
- Convert hashes into access without cracking: Using the dumped hashes, the attacker forges a pass-the-hash cookie (CVE-2026-63158), recomputes the deterministic reset token to reset a victim's password (CVE-2026-63159), or replays the verbatim remember-me token (CVE-2026-63160). Any of these yields authenticated access as another user.
- Escalation. From a space-admin foothold, the SQL-identifier injection in people-import (CVE-2026-63154) writes
generalAdmin=1, promoting the attacker to full instance administrator. - Result: database-wide disclosure followed by takeover of arbitrary accounts up to and including general administrator.
Kill-chain D - Cross-tenant data theft (no admin needed)
- Break tenant isolation: A member grants a foreign space access to their own objects (CVE-2026-63153), or a space admin places users into an unrelated space (CVE-2026-63174) and logs in as the resulting predictable-password ghost account (CVE-2026-63149).
- Harvest cross-space data: From that position the attacker downloads arbitrary files across spaces via the
md5(filename)token bypass (CVE-2026-63163), reads and exfiltrates other users' emails and attachments through the mail IDOR (CVE-2026-63164), and reads private or shared calendars through the weak iCal share tokens (CVE-2026-63151, CVE-2026-63170). - Result: wholesale cross-tenant exfiltration of files, mail, and calendars without any administrative privilege.