Skip to content
All briefings

Collabora Built-in CODE Server command injection: CVE-2026-110447

An unauthenticated command injection in Nextcloud's Built-in CODE Server app is exploited and in CISA KEV. Update to 26.4.303 or remove the app, then hunt.

Collabora CODE Server briefing cover with the Collabora logo: an isometric attack path from a proxy.php request to command injection, OS commands on the Nextcloud host, and the app update.
In short

CVE-2026-110447 is an unauthenticated OS command injection in proxy.php of Collabora's Built-in CODE Server app for Nextcloud (richdocumentscode) before 26.4.303. It works while the local document server is down, and disabling the app does not stop it. CISA added it to its Known Exploited Vulnerabilities catalog on 23 October 2026. Update to 26.4.303 or remove the app, then check for web shells.

The attack path

Four steps, from the way in to the fix.

Most server bugs are exposed whenever the service is up. CVE-2026-110447 works the other way around. It sits in the PHP proxy of Collabora's Built-in CODE Server, the Nextcloud app that runs a document server on the Nextcloud host itself, and an unauthenticated request can only reach it while that document server is down. Restarts, upgrades and crashes all open the window, and switching the app off does not close it.

The fix shipped first and the explanation came later. Collabora released version 26.4.303 on 11 September 2026, built on a commit described as a tidy-up of how the server's launch command is assembled. Attacks had already started: an administrator opened a public GitHub issue that day with log entries from 10 September. The advisory and CVE followed on 14 October, and CISA added the bug to its Known Exploited Vulnerabilities catalog on 23 October, giving federal agencies until 26 October to act.

Who is affected

ProductAffectedFixed
Collabora Online – Built-in CODE Server (richdocumentscode)Below 26.4.30326.4.303, which needs Nextcloud 30 or later
Standalone Collabora Online serverNot affected—
Nextcloud Office (richdocuments) with a separate Collabora serverNot affected—

The bug is in the Nextcloud app, not in Collabora Online itself. Only installations that run the bundled document server through richdocumentscode are exposed. Censys could not confirm whether the ARM64 build of the app, richdocumentscode_arm64, is affected. Its internet scan found 19,454 hosts showing the app, a count that includes ARM64 installs and may overstate exposure.

How the Built-in CODE Server injection works

What Collabora confirms

The advisory is brief. A request to the app's proxy.php can make the server run an operating system command as the web server user, with no login. It only works while the built-in CODE server is not running. Collabora also says this is a different path from the 2025 proxy bug, CVE-2025-66208, and that the earlier fix does not block it.

What the code change suggests

Collabora has not published a root-cause write-up. One independent analysis by xhack, based on the published diff, describes the following mechanism. When proxy.php starts the local server, it builds a launch command that includes values taken from the request, such as the Host header and the request path. Each value was escaped once for the inner shell, but the whole command then went through a second shell inside double quotes. That outer shell still expands command substitution, so text in the request could run. The fixed version quotes the whole inner command as a single argument, so the outer shell has nothing left to expand.

Treat that explanation as a third-party reading of the diff, not a vendor statement. It does fit the observed attacks: GET requests to proxy.php?status with an encoded .. path and shell syntax in the URL.

Is it being exploited?

Yes, and the evidence is public:

  • CISA added CVE-2026-110447 to KEV on 23 October 2026, with a remediation deadline of 26 October.
  • The CVE record says the flaw was exploited in September and October 2026.
  • Administrators in GitHub issue #354 posted logs and reported shx*.php web shells, plus commands that searched for password vaults and cryptocurrency wallet files.
  • Sources disagree on the first attack. The issue's logs show a request on 10 September, against version 26.4.302. Censys dates the first malicious request it saw in an administrator's logs to 16 September.
  • CERT Polska says the bug is being used in ransomware attacks. None of the other sources here confirms that.

Censys found no public proof-of-concept code as of 16 October, but real attack requests are visible in the logs posted to the issue.

Check your exposure

Check the installed app version and whether its files have been tampered with. Run occ as the web server user from the Nextcloud directory, and adjust paths to your installation:

App version, integrity and dropped files
# Installed version of the built-in CODE server app (fixed: 26.4.303)
sudo -u www-data php occ app:list | grep richdocumentscode
 
# Report files in the app that do not match the signed release
sudo -u www-data php occ integrity:check-app richdocumentscode
 
# Web shells reported in the wild were named shx*.php
find /var/www/nextcloud -path '*richdocumentscode*' -name 'shx*.php'

The integrity check matters because shell names vary. Besides shx*.php, administrators reported shrf*.php and other names in the app directory.

Fix it

Update richdocumentscode to 26.4.303 or later from Nextcloud's app management page or with occ app:update richdocumentscode. If you do not use the built-in server, remove the app with occ app:remove richdocumentscode instead.

The fixed version needs Nextcloud 30 or later. On Nextcloud 29 or older, Collabora's guidance is to upgrade Nextcloud or remove the app. The vendor lists no configuration workaround.

Updating does not undo a compromise. Censys advises investigating every internet-facing server that ran the app from 10 September 2026 onward, whatever its current version.

Detect attempts and compromise

Published signals, mainly from CERT Polska and Censys:

  • Access logs. Requests to /apps/richdocumentscode/proxy.php?status that contain %2e%2e, $( or ${IFS}.
  • Files. shx*.php files under apps/richdocumentscode, or any extra PHP file the integrity check reports.
  • Processes. sudo attempts by the web server account.
  • Hash. One shell recovered in issue #354 has SHA-256 4b9fbd0663fbfd6028fc216ed18e0d6ef3ae498a7fdc97083e4b0ce3cec40562.
Search access logs
zgrep -hE 'richdocumentscode/proxy\.php\?status' /var/log/nginx/access.log* /var/log/apache2/access.log* 2>/dev/null \
  | grep -E '%2e%2e|%24%28|\$\(|\$\{IFS\}'

If any of these turn up, treat the host as compromised. Delete the shells, then rotate everything the web server user could read: the database password in Nextcloud's configuration, app passwords and any other stored credentials. One administrator on 26.4.303 also saw attack strings in the arguments of a running document server process. The maintainer called those listings harmless once the fix is in place, but they are a sign the server was targeted.

Beyond this patch

Two lessons carry beyond this bug. Treat a state your software rarely sits in, such as "stopped" or "disabled", as part of its attack surface, not as a safe default. And update promptly even when a release has no advisory: here the advisory trailed the fix by more than a month. When a fix lands before its advisory, checking for compromise matters as much as the version number; how a retest verifies a fix describes what evidence beyond a version string looks like.

Frequently asked questions

Am I affected if I disabled the Built-in CODE Server app?

Yes, if the installed version is below 26.4.303. Collabora's advisory says disabling the app is not enough; you must update it to 26.4.303 or later, or remove it. CERT Polska repeats that disabling is not a mitigation. Servers that only run Nextcloud Office against a separate Collabora server, without the built-in app, are not affected.

Is CVE-2026-110447 being exploited?

Yes. CISA added it to the Known Exploited Vulnerabilities catalog on 23 October 2026 with a federal deadline of 26 October, and the CVE record says it was exploited in September and October 2026. Administrators reported web shells planted through it. Sources disagree on the first date: logs in a public GitHub issue start on 10 September, while Censys cites 16 September.

Is there a workaround if I cannot update?

Collabora lists none. The only options it gives are updating richdocumentscode to 26.4.303 or later, or removing the app. Nextcloud 29 and older cannot install the fixed version, so those servers need a Nextcloud upgrade or the app removed. Updating does not delete a web shell that is already present, so check for compromise either way.

How do I detect an attempt or a compromise?

CERT Polska advises looking for shx*.php files under apps/richdocumentscode, access-log requests to proxy.php?status containing %2e%2e, $( or ${IFS}, and sudo attempts by the web server account. Running Nextcloud's integrity check on the app has also flagged unexpected PHP files. Censys suggests reviewing exposed servers back to 10 September 2026.

Sources

  1. Collabora — GHSA-g3vx-3m76-fghh: Unauthenticated OS command injection in the richdocumentscode proxy
  2. CISA — Adds One Known Exploited Vulnerability to Catalog (23 Oct 2026)
  3. CVE record — CVE-2026-110447 (MITRE, with CISA ADP)
  4. NVD API — CVE-2026-110447
  5. richdocumentscode issue #354 — exploitation reports and logs
  6. richdocumentscode — changes from 26.4.302 to 26.4.303
  7. CERT Polska — advisory 194/2026 (20 Oct 2026, Polish)
  8. Censys — CVE-2026-110447 advisory (16 Oct 2026)
  9. xhack — CVE-2026-110447 fixed as a tidy-up commit (diff analysis)
  10. Nextcloud community forum — Collabora built-in users, update ASAP

Published 28 October 2026 · By the Rokkhe research team