security: API profiles endpoint leaks FTP/S3/GDrive credentials #78

Closed
opened 2026-06-21 23:01:35 +00:00 by jmiller · 0 comments
Owner

Severity: HIGH

api/BackupsController::profiles() returns the entire profile object including ftp_password, s3_secret_key, gdrive_client_secret, gdrive_refresh_token, and encryption_password in the JSON API response.

Any authenticated API consumer with core.manage can read all stored credentials.

Fix

Unset sensitive fields before serialization, or create a sanitized DTO with only safe fields.

File

  • api/src/Controller/BackupsController.php:124-130
## Severity: HIGH `api/BackupsController::profiles()` returns the entire profile object including `ftp_password`, `s3_secret_key`, `gdrive_client_secret`, `gdrive_refresh_token`, and `encryption_password` in the JSON API response. Any authenticated API consumer with `core.manage` can read all stored credentials. ## Fix Unset sensitive fields before serialization, or create a sanitized DTO with only safe fields. ## File - `api/src/Controller/BackupsController.php:124-130`
jmiller added the component: api label 2026-06-21 23:01:35 +00:00
Sign in to join this conversation.
Priority Medium
Type Feature
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoSuiteBackup#78