GHSA-v833-3823-cmhp: OnionShare Receive mode writes uploaded files even when file uploads are disabled
Summary
OnionShare CLI/Desktop 2.6.3 does not enforce the Receive mode disable_files setting at the file upload sink. When a Receive service is configured as a text-message-only endpoint (--disable-files / "Disable uploading files"), a remote sender who can reach the OnionShare service can still send a crafted multipart request containing file[]; OnionShare writes the uploaded bytes to disk before the route handler skips file accounting.
This affects the shipped onionshare-cli Python package and the desktop application because both use the same onionshare_cli.web.receive_mode request-streaming implementation.
Details
Tested repository: https://github.com/onionshare/onionshare at commit 8cc75e1d7e88bd31f7276733449d412bf71c8999.
Affected product evidence:
- cli/pyproject.toml declares onionshare_cli version 2.6.3.
- desktop/pyproject.toml declares onionshare version 2.6.3 and depends on onionshare_cli from ../cli.
- cli/setup.py publishes onionshare-cli and includes onionshare_cli.web plus templates/static resources.
- desktop/setup.py publishes onionshare and exposes both onionshare and onionshare-cli console scripts.
Reachable default/common paths:
- CLI Receive mode is exposed through --receive (cli/onionshare_cli/init.py:55-57).
- The --disable-files option is documented and stored in mode settings (cli/onionshare_cli/init.py:156-160, cli/onionshare_cli/init.py:254-261).
- Desktop Receive mode exposes the same setting via the "Disable uploading files" checkbox and stores it as receive.disable_files (desktop/onionshare/tab/mode/receive_mode/init.py:89-99, desktop/onionshare/tab/mode/receive_mode/init.py:246-254).
- User documentation says "Disable uploading files" should "only allow submitting text messages, like for an anonymous contact form" (docs/source/features.rst:64).
- Advanced documentation lists --disable-files and disable_files as the option to disable receiving files (docs/source/advanced.rst:162-163, docs/source/advanced.rst:455).
Root cause:
- The
Details
Original advisory: https://github.com/advisories/GHSA-v833-3823-cmhp
Referenced CVEs
| CVE | CSIRTS overview | External |
|---|---|---|
| CVE-2026-54707 | coverage & exploitation status | NVD · CVE.org |
Same CVEs, other sources
How other CERTs, PSIRTs and databases cover the vulnerabilities in this advisory.
More from GitHub Security Advisories
- mediumGHSA-jr6p-8pjj-mfx6: Capsule has an incomplete fix of CVE-2026-22872: TenantResource RawItems and Generators s…2026-07-31
- mediumGHSA-68cj-mvg9-rgm2: Capsule: CapsuleConfiguration NodeMetadata regex fields lack webhook validation, allowing…2026-07-31
- mediumGHSA-ff84-5f28-78qj: re2: Out-of-bounds heap read in `exec`/`test`/`match` via attacker-influenced `lastIndex`…2026-07-31
- mediumGHSA-6hxr-mr5r-9836: re2: Global `String.prototype.match` with an empty-matchable pattern never advances → inf…2026-07-31
- mediumGHSA-x83g-979r-f5fh: Sylius Mollie Plugin has unauthenticated IDOR that leaks order token and customer PII2026-07-31