Bug: testConnection() broken event dispatch and missing CSRF/ACL #107
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 Findings
Severity: Critical
Problem 1: Broken event dispatch pattern
ServiceController::testConnection()uses old-style[&$servicePlugins]pass-by-reference event dispatch, but all service plugins use Joomla 5+SubscriberInterfacewhich writes to Event ArrayAccess indices starting at 1. The$servicePluginsarray remains empty — testConnection never finds any plugin and always fails.Problem 2: Missing CSRF and ACL checks
No
$this->checkToken()and noauthorise()check. Any authenticated backend user can trigger API calls to external services.Fix:
QueueProcessor::getServicePluginMap())$this->checkToken()andcore.manageACL checkFiles:
ServiceController.phpBranch created:
feature/107-bug-testconnection-broken-event-dispatch