CVE-2024-25619
Assigner: GitHub_M
Published: 2024-02-14T20:50:10.809Z
State: PUBLISHED
title: Destroying OAuth Applications doesn't notify Streaming of Access Tokens being destroyed in mastodon
problemTypes: descriptions: cweId: CWE-613
description: CWE-613: Insufficient Session Expiration
type: CWE
descriptions: cweId: CWE-672
description: CWE-672: Operation on a Resource after Expiration or Release
type: CWE
metrics: cvssV3_1: attackComplexity: HIGH
attackVector: NETWORK
availabilityImpact: NONE
baseScore: 3.1
baseSeverity: LOW
confidentialityImpact: LOW
integrityImpact: NONE
privilegesRequired: LOW
scope: UNCHANGED
userInteraction: NONE
vectorString: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N
version: 3.1
affected: vendor: mastodon
product: mastodon
versions: version: >= 4.2.6, < 4.2.6
status: affected
version: >= 4.1.0, < 4.1.14
status: affected
version: >= 4.0.0, < 4.0.14
status: affected
version: < 3.5.18
status: affected
descriptions: value: 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: delete_all` configuration, which means the `after_commit` callback setup on `AccessTokenExtension` didn't actually fire, since `delete_all` doesn't trigger ActiveRecord callbacks. To mitigate, we need to add a `before_destroy` 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.
source: advisory: GHSA-7w3c-p9j8-mq3x
discovery: UNKNOWN