garminconnect Has Insecure Permission Assignment for Garmin OAuth Token Store (CVE-2026-54447)
Description
garminconnect is a Python 3 API wrapper for Garmin Connect that retrieves statistics and manages activities. Prior to 0.3.5, garminconnect/client.py Client.dump creates the OAuth token directory and garmin_tokens.json without explicit owner-only modes, so a permissive umask such as 022 can leave the directory mode at 0755 and the token file mode at 0644. garmin_tokens.json contains di_refresh_token, and another unprivileged user on a shared Linux or macOS host can read the token and obtain persistent access to the victim's Garmin Connect account, including health, fitness, activity, and device data. The Garmin.login tokenstore path is affected, and a pre-existing loosely permissioned token file remains exposed until rewritten or manually restricted. This issue is fixed in version 0.3.5.
CVSS v3.1
Score 8.4high
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The garminconnect Python 3 API wrapper for Garmin Connect had a security flaw in versions before 0.3.5 where the Client.dump method created the OAuth token directory and garmin_tokens.json file with permissive permissions (e.g., directory mode 0755 and file mode 0644 under a umask of 022). Because garmin_tokens.json contains the di_refresh_token, other unprivileged users on a shared host could read this file and obtain persistent access to the victim's Garmin Connect account, including sensitive health, fitness, activity, and device data. The vulnerability affects the Garmin.login tokenstore path. The issue is resolved in version 0.3.5 by enforcing stricter permission settings on the token storage.
Potential Impact
An attacker with unprivileged access to the same Linux or macOS host as a victim can read the OAuth token file due to insecure file permissions. This allows the attacker to obtain persistent access to the victim's Garmin Connect account, compromising confidentiality and integrity of sensitive personal data such as health and fitness information. There is no indication of impact on availability. No known exploits in the wild have been reported.
Mitigation Recommendations
A fix is available in garminconnect version 0.3.5, which enforces proper owner-only permissions on the OAuth token directory and file. Users should upgrade to version 0.3.5 or later. For existing installations, manually restrict permissions on the token directory and garmin_tokens.json file to owner-only access until upgrading.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-wjhr-76vg-2hvc
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-54447"]
- Ecosystems
- ["PyPI"]
- Database Specific Severity
- HIGH
- Cvss Version
- 3.1
Threat ID: 6a58b51168715ace43db3576
Added to database: 07/16/2026, 10:40:17 UTC
Last enriched: 09/14/2026, 22:12:46 UTC
Last updated: 10/17/2026, 18:48:20 UTC
Views: 178
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.