Security: OAuth credentials stored in plaintext JSON #112
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Audit Finding
Severity: Medium
Issue:
OAuth access tokens, refresh tokens, API keys, and secrets are stored as plaintext JSON in the
credentialscolumn. CLAUDE.md states credentials should use Joomla's encrypted params, but the implementation usesjson_encode()without encryption.Fix: Encrypt credentials JSON before storing using
sodium_crypto_secretbox()and decrypt on read.Files:
OAuthHelper.php,ServiceModel.phpBranch created:
feature/112-security-oauth-credentials-stored-in-pla