Skip to content
Verified reproduction

CVE-2026-27823: EGroupware contains an authorization bypass in SmallPartMediaRecorder::ajax_upload combined with arbitrary file write and file read primitives, enabling authenticated (or self-registered) attackers to overwrite header.inc.php and achieve remote code execution.

CVE-2026-27823 is verified against egroupware/egroupware · Composer affected versions: <=26.2.20260216, <=23.1.20260131 fixed version: 26.2.20260224, 23.1.20260224 vulnerability class: RCE This critical reproduction includes runnable sandbox proof, artifacts, and a plain-text agent view under REPRO-2026-00272.

REPRO-2026-00272 egroupware/egroupware · Composer RCE Variant found Jul 8, 2026 .txt
Severity CRITICAL
Confidence HIGH
Reproduced in 78m 4s
Tool calls 371
Spend $8.70
Affected <=26.2.20260216, <=23.1.20260131
Fixed in 26.2.20260224, 23.1.20260224
$ pruva-verify REPRO-2026-00272
or curl -O https://pruva.dev/api/v1/reproductions/REPRO-2026-00272/artifacts/bundle/repro/reproduction_steps.sh && chmod +x reproduction_steps.sh && ./reproduction_steps.sh
Run in a VM or disposable container. This exploits a real vulnerability.
02 · The vulnerability

A critical vulnerability in EGroupware allows remote code execution by chaining an authorization bypass in EGroupware\SmallParT\Widgets\SmallPartMediaRecorder::ajax_upload() with an arbitrary file write and an arbitrary file read. An attacker can bypass the teacher-role check by supplying a user-controlled participant_role value, then write to a controllable path (e.g., ./header.inc.php). A separate path traversal in importexport_export_ui::download allows reading arbitrary files, enabling the attacker to retrieve and then overwrite a valid header.inc.php with injected PHP code while preserving file structure. RCE occurs after server restart or OPcache expiry. If self-registration is enabled, exploitation may be possible without prior credentials.

03 · Root cause
Variant analysis
04 · Reproduction transcript

The agent's step-by-step process — every tool call, every handoff, the moment the exploit fired. Phases: support triages the advisory · repro reproduces it · vuln_variant confirms the fix blocks it · judge verifies.

Loading session...

05 · Artifacts

Scripts, logs, diffs, and output captured during the reproduction.