CVE-2024-25619: Destroying OAuth Applications doesn't notify Streaming of Access Tokens being destroyed in mastodon
Mastodon is a free, open-source social network server based on ActivityPub. When an OAuth Application is destroyed, the streaming server wasn't being informed that the Access Tokens had also been destroyed, this could have posed security risks to users by allowing an application to continue listening to streaming after the application had been destroyed. Essentially this comes down to the fact that when Doorkeeper sets up the relationship between Applications and Access Tokens, it uses a dependent: deleteall configuration, which means the aftercommit callback setup on AccessTokenExtension didn't actually fire, since deleteall doesn't trigger ActiveRecord callbacks. To mitigate, we need to add a beforedestroy callback to ApplicationExtension which announces to streaming that all the Application's Access Tokens are being "killed". Impact should be negligible given the affected application had to be owned by the user. None the less this issue has been addressed in versions 4.2.6, 4.1.14, 4.0.14, and 3.5.18. Users are advised to upgrade. There are no known workaround for this vulnerability.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Mastodonto a version that resolves this vulnerability.Fixed in 4.2.6 - Upgrade
Upgrade
Mastodonto a version that resolves this vulnerability.Fixed in 4.1.14 - Upgrade
Upgrade
Mastodonto a version that resolves this vulnerability.Fixed in 4.0.14 - Upgrade
Upgrade
Mastodonto a version that resolves this vulnerability.Fixed in 3.5.18 - Configuration
Add a `before_destroy` callback to `ApplicationExtension` that announces to the streaming server that all the Application's Access Tokens are being "killed" when an OAuth Application is destroyed (so streaming is informed even when tokens are removed via `dependent: delete_all`).
Mastodon Doorkeeper/Mastodon extensions Add before_destroy callback to ApplicationExtension to announce Application's Access Tokens being "killed" to streaming = before_destroy
Event History
Frequently Asked Questions
What is the severity of CVE-2024-25619?
The severity of CVE-2024-25619 is categorized as medium due to the potential for unauthorized access via stale access tokens.
How do I fix CVE-2024-25619?
To fix CVE-2024-25619, update to Mastodon version 3.5.19 or any version from 4.0.15 onwards.
What causes CVE-2024-25619?
CVE-2024-25619 is caused by the failure of the streaming server to be informed when OAuth Application access tokens are destroyed.
Who is affected by CVE-2024-25619?
Users of Mastodon versions prior to 3.5.19 and between 4.0.0 and 4.2.6 are affected by CVE-2024-25619.
What are the implications of CVE-2024-25619?
CVE-2024-25619 could allow previously authorized applications to continue accessing user resources, posing a security risk.