> CVE-2026-54510 [HIGH]

« BACK_TO_HOME
PUBLISHED
2026-09-17 21:17
MODIFIED
2026-09-17 21:17
CVSS_SCORE V3
7.1
EPSS (Prob. Exploit)
0.22%
Top 89.0%
DATA SOURCES:
NVD đź”— 2026-09-17 CWE MITRE đź”— 2026-10-01 FIRST EPSS đź”— 2026-10-16 OSV đź”— 2026-09-23

> DESCRIPTION

Speakr is a personal, self-hosted web application designed for transcribing audio recordings. Prior to 0.8.21-alpha, the csrf_exempt_for_api_tokens() before_request hook in src/app.py calls csrf.exempt(view_func), permanently adding the selected view to Flask-WTF's process-global exemption set. The is_token_authenticated() function in src/utils/token_auth.py calls extract_token_from_request() and treats any present token, including request.args.get('token'), as authenticated without hashing the token, querying the database, or checking validity. A network-reachable attacker can therefore send a false token to disable CSRF protection for the targeted view for the worker lifetime. Because the exemption applies to the view function across HTTP methods, a cross-origin GET to /account with a query token can poison CSRF state for a later state-changing POST without triggering CORS preflight. This browser sequence requires attacker-controlled content on a sibling subdomain under the documented cookie conditions. The bypass can modify profile data, custom prompts, transcription settings, preferences, and administrative status through routes such as admin_toggle_admin. The change_password route also skips current-password verification when current_user.password is empty, allowing the chain to set a local password on an SSO-only account and bypass SSO. This issue is fixed in version 0.8.21-alpha.

> AFFECTED_PRODUCTS

ℹ️ Aucun produit affecté n'a encore été publié par NVD pour cette CVE.

> CVSS V3 METRICS

CVSS_VECTOR
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:N
EXPLOITABILITY
2.8
IMPACT
4.2

> MÉTRIQUES CVSS DÉTAILLÉES

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:N
Métrique Valeur Interprétation
AV (Vecteur d'Attaque)
Attack Vector
Network (N)
Exploit possible à distance via réseau (HTTP, API, etc.)
AC (Complexité d'Attaque)
Attack Complexity
Low (L)
Peu de conditions requises pour exploiter
PR (Privilèges Requis)
Privileges Required
None (N)
Aucune authentification requise
UI (Interaction Utilisateur)
User Interaction
Required (R)
Nécessite une action utilisateur (clic lien, ouverture fichier, etc.)
S (Périmètre)
Scope
Unchanged (U)
Impact reste dans le périmètre du composant compromis
C (Impact Confidentialité)
Confidentiality Impact
Low (L)
Divulgation limitée d'informations
I (Impact Intégrité)
Integrity Impact
High (H)
Modification totale des données possible
A (Impact Disponibilité)
Availability Impact
None (N)
Aucune interruption de service

> RÉSUMÉ DES IMPACTS

Confidentialité
Low
Divulgation limitée d'informations
Intégrité
High
Modification totale des données possible
Disponibilité
None
Aucune interruption de service

> WEAKNESSES

CWE-287 CWE-352

> CWE DETAILED DESCRIPTIONS

CWE-287: Improper Authentication - When an actor claims to have a given identity, the product does not prove or insufficiently proves that the claim is correct. | CWE-352: Cross-Site Request Forgery (CSRF) - The web application does not, or cannot, sufficiently verify whether a request was intentionally provided by the user who sent the request, which could have originated from an unauthorized actor.

> OSV (GOOGLE OPEN SOURCE VULNERABILITIES)

Speakr: CSRF bypass via unauthenticated API token parameter in csrf_exempt_for_api_tokens hook

AFFECTED PACKAGES:
Unknown / Unknown
47 versions affected
ALIASES:
GHSA-x4q4-3ww4-h329

> HISTORIQUE DES MODIFICATIONS

Première apparition
17/09/2026 21:17
Source: NVD
📊 ENRICHISSEMENT 01/10/2026 06:01
CWE
Champ modifié: Description CWE
Ancienne valeur:
N/A
Nouvelle valeur:
CWE-287: Improper Authentication - When an actor claims to have a given identity, the product does not prove or insufficiently proves that the claim is correct. | CWE-352: Cross-Site Request Forgery (...
Total des modifications: 1 Dernière mise à jour: 3 weeks ago

> REFERENCES

https://github.com/murtaza-nasir/speakr/commit/70e193e47b664bedf274f62aea14220f2...
https://github.com/murtaza-nasir/speakr/releases/tag/v0.8.21-alpha
https://github.com/murtaza-nasir/speakr/security/advisories/GHSA-x4q4-3ww4-h329
« BACK_TO_HOME