This CVE documents a CSRF vulnerability in iCagenda, a Joomla events management extension. The flaw allows an attacker to force a logged-in user to register for events without their consent. The attack requires no authentication from the attacker—a victim merely needs to visit a malicious page while logged into a site running the vulnerable extension.

The vulnerable component is the frontend event registration handler, which lacks a CSRF token check. In Joomla's architecture, CSRF protection is available but must be explicitly implemented by developers. The iCagenda registration flow—across multiple releases before 2.0.0-4.0.11—shipped without this protection.

The operational impact extends beyond the technical exploit. An attacker can register users en masse, exhausting event capacity, generating spam registrations, or corrupting attendance data. The user whose session is exploited isn't having their account compromised—they're being used as an unwitting vector. This forced-state attack is structurally different from credential theft, yet CVSS weights confidentiality and integrity impacts more heavily, which explains the 5.3 medium rating despite the asymmetric operational burden on site operators.

What should concern you most: this wasn't a complex architectural failure. The fix is almost certainly a single token validation call wrapping the registration logic. The vulnerability existed across multiple releases not because CSRF protection was difficult, but because the development scaffold made the insecure path the path of least resistance.

Check whether you're running iCagenda versions before 2.0.0-4.0.11. More broadly, audit any Joomla extension handling frontend state changes—registration, submission, configuration modifications—for CSRF token validation. The Joomla framework does not protect these operations by default. If you maintain extensions, ensure every POST request that modifies data includes JSession::checkToken() or equivalent validation.

The deeper issue is that Joomla's opt-in CSRF model creates a class of vulnerabilities across the entire extension ecosystem. Each CVE in this pattern represents one fixed instance, but the scaffold that generated it keeps producing new ones. Consider tracking this pattern as an architectural weakness in your threat model rather than treating each occurrence as an isolated flaw.