Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid Wallos user credentials
-
DeliveryAuthenticate to self-hosted Wallos instance
-
ExploitSend HTTP request to endpoints/currency/update_exchange.php
-
ExecutionEndpoint loads first global Fixer/API Layer key
-
PersistExternal currency API called under victim's credential
-
ImpactVictim's API quota consumed
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a valid authenticated session on the Wallos instance (PR:L confirmed by CVSS vector). The vulnerability is triggered specifically when the attacker does not have their own Fixer or API Layer provider key configured, causing the endpoint to fall back to the globally first-stored credential. A second user must have a provider key stored in the system for the credential misuse to occur. Exploitation is limited to: registered users of the same Wallos instance, instances where at least one other user has configured a currency API provider key, and the specific exchange-rate refresh action - the attacker cannot read the credential value or perform other operations with it. |
| Impact | The CVSS 3.1 score of 4.3 (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N) accurately reflects a moderate-severity authorization deficiency. Attack complexity is low and no user interaction is required, but exploitation is gated behind valid authentication (PR:L), limiting the attack surface to registered users of a given Wallos instance. The integrity impact is low - the attacker cannot read or modify the credential itself, only trigger its consumption. There is no confidentiality impact (the victim's API key value is not disclosed) and no direct availability impact on the Wallos instance, though secondary effects such as API rate-limit exhaustion on the victim user's external provider account are plausible. EPSS data is not provided; given the niche self-hosted deployment footprint and the authentication prerequisite, real-world exploitation priority is low. No KEV listing and no public POC exist at time of analysis. |
| Exploit ScenarioDerived | An authenticated Wallos user who has not configured their own Fixer or API Layer provider key navigates directly to the exchange-rate update endpoint. The endpoint selects the first globally stored credential (belonging to another user) and uses it to call the external currency API, consuming that user's API quota or rate-limit allowance without their knowledge. No special tooling is required beyond a valid session cookie and an HTTP request. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 31, 2026
Incorrect authorization in Wallos prior to version 4.9.1 allows any authenticated user to consume another user's third-party currency API credentials. The endpoint endpoints/currency/update_exchange.php selects the first Fixer or API Layer provider key stored globally rather than scoping it to the requesting user, meaning a user without their own API key can trigger exchange-rate refreshes that exhaust a different user's API quota. No public exploit has been identified at time of analysis, and the vendor-released patch (v4.9.1) resolves the cross-user data isolation flaw.
RemediationAI
Vendor-released patch: v4.9.1 (released 2026-05-27). Upgrade to Wallos v4.9.1 or later, which resolves cross-user data isolation issues in the currency exchange endpoint and ensures API credentials are scoped to the authenticated user. Release notes confirm the fix via commit e276147. If immediate upgrade is not possible, administrators can restrict access to the endpoints/currency/update_exchange.php endpoint at the web server or application layer to prevent non-owner users from calling it - note this disables exchange-rate refresh functionality for all non-owning users as a trade-off. The advisory is available at https://github.com/ellite/Wallos/security/advisories/GHSA-5wf4-m4hj-rxj5.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Wallos is a PHP-based, self-hosted personal subscription tracker (CPE: cpe:2.3:a:ellite:wallos). The affected code in endpoints/currency/update_exchange.php fetches provider credentials (for Fixer.io or API Layer currency exchange APIs) without filtering by the authenticated user's identity - it instead retrieves the first globally stored credential. This reflects CWE-863 (Incorrect Authorization): the authorization check confirms the user is authenticated but fails to enforce that the resource (the API credential) belongs to that user. The architectural root cause is missing per-user scoping in the credential lookup query.
Know when Wallos gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
Network-accessible endpoint requiring only valid authentication (PR:L); no confidentiality or availability impact as the credential value is not disclosed and system uptime is unaffected.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Wallos is an open-source, self-hostable personal subscription tracker. Prior to version 4.9.1, endpoints/currency/update_exchange.php loads the first Fixer/API Layer credential globally instead of loading the credential for the authenticated user. As a result, a normal authenticated user without their own provider key can trigger exchange-rate refreshes using another user's stored provider credential. This issue has been patched in version 4.9.1.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Wallos <=2.38.2 has a file upload vulnerability in the restore database function, which allows unauthenticated users to
Wallos <= 2.38.2 has a file upload vulnerability in the restore backup function, which allows authenticated users to res
Server-side request forgery in Wallos versions before 4.6.2 allows authenticated attackers to conduct arbitrary network
Wallos before 1.15.3 is vulnerable to SQL Injection via the category and payment parameters to /subscriptions/get.php. R
Wallos versions 4.6.0 and below allow authenticated attackers to perform Server-Side Request Forgery attacks through the
Path traversal in Wallos subscription tracker versions prior to 4.6.2 allows unauthenticated remote attackers to read ar
Reflected cross-site scripting (XSS) in Wallos password reset functionality before version 4.6.2 allows unauthenticated
Wallos 0.9 is vulnerable to Cross Site Scripting (XSS) in all text-based input fields without proper validation, excludi
Zip Slip path traversal in Wallos's database restore endpoint allows an authenticated administrator to write arbitrary f
SSRF via admin-configurable OIDC endpoint URLs in Wallos subscription tracker allows an authenticated admin to direct th
Wallos, an open-source self-hostable subscription tracker, contains a Server-Side Request Forgery (SSRF) vulnerability i
Wallos prior to version 4.6.2 contains an authorization bypass allowing authenticated users to delete avatar files belon
EUVD-2026-68769
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB