Require server-side authorization for destination and deletion #201

Closed
opened 2026-08-08 20:09:22 +02:00 by TapTap · 0 comments
Owner

Severity

Critical

Description

The receive root and destructive manifest operation are controlled by peer-supplied protocol/config data. Plain TCP has no authentication, TLS client authentication is optional, and manifest processing can invoke delete_extras without a server-side deletion policy. A client can therefore select an administrator-unintended destination or delete existing files beneath it.

Location

  • src/shared/config.c:312
  • src/server/server.c:41-52,90-103
  • src/shared/file.c:716-733

Validation

Send a valid configuration with an attacker-selected receive_root_directory, or send a manifest with count 0 followed by STATUS_FINISHED to a server with files under the selected root. Also test TLS with a configured CA but no client certificate.

Suggested implementation

Configure receive roots server-side, canonicalize and enforce an administrator-owned root, require authenticated/authorized peers for writes, gate deletion on server policy, and require SSL_VERIFY_FAIL_IF_NO_PEER_CERT when mutual TLS is configured. Add negative integration tests.

## Severity Critical ## Description The receive root and destructive manifest operation are controlled by peer-supplied protocol/config data. Plain TCP has no authentication, TLS client authentication is optional, and manifest processing can invoke delete_extras without a server-side deletion policy. A client can therefore select an administrator-unintended destination or delete existing files beneath it. ## Location - src/shared/config.c:312 - src/server/server.c:41-52,90-103 - src/shared/file.c:716-733 ## Validation Send a valid configuration with an attacker-selected receive_root_directory, or send a manifest with count 0 followed by STATUS_FINISHED to a server with files under the selected root. Also test TLS with a configured CA but no client certificate. ## Suggested implementation Configure receive roots server-side, canonicalize and enforce an administrator-owned root, require authenticated/authorized peers for writes, gate deletion on server policy, and require SSL_VERIFY_FAIL_IF_NO_PEER_CERT when mutual TLS is configured. Add negative integration tests.
TapTap added the bugsecurityneeds-triage labels 2026-08-08 20:09:22 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: TapTap/FastSync#201