Skip to main content

ezBookkeeping EUVDEUVD-2026-92060

| CVE-2026-105131 MEDIUM
Incorrect Authorization (CWE-863)
2026-10-04 VulnCheck GHSA-983g-gj75-pg7f
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain valid API token
  2. Delivery
    Send token to /api/v1/tokens/refresh.json
  3. Exploit
    Server skips token-type check
  4. Execution
    Receive 30-day session token
  5. Impact
    Bypass expiry and IP allowlist

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 the attacker to already possess a valid ezBookkeeping API token (a short-lived and/or IP-restricted token); with that token, a single authenticated request to the /api/v1/tokens/refresh.json endpoint returns a full normal session token because TokenRefreshHandler in versions 1.2.0 through 2.0.0 does not validate that the refreshed token is of type USER_TOKEN_TYPE_NORMAL. Limiting factors: the attacker must obtain an API token first (PR:L, not unauthenticated), and the issue is fully remediated in v2.0.1 where the handler rejects non-normal token types; no user interaction is required and attack complexity is low. The impact is confined to the compromised account's own token scope - escalating an API token to a longer-lived, allowlist-bypassing session token.

Impact

This is a medium-severity authorization flaw (CWE-863) rated CVSS 5.3 via the vendor's CVSS 4.0 vector AV:N/AC:L/AT:N/PR:L/UI:N with only Low vulnerable-system confidentiality and integrity impact and no availability or subsequent-system impact. The PR:L metric confirms exploitation requires the attacker to already hold a valid (API) token, so this is an authenticated privilege/scope escalation rather than an unauthenticated compromise. No EPSS score, CISA KEV listing, or public POC was provided in the intelligence, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The practical risk is bounded: an attacker must first obtain an API token (which is itself a credential), and the gain is escalation from a short-lived/IP-restricted API token to a 30-day normal session token that bypasses API-token expiry and IP allowlists. This is a real defense-in-depth weakness confirmed by vendor source code (the patch adds token-type checks to TokenRefreshHandler and many sibling handlers), but the modest CVSS, the need for a pre-existing token, and the absence of KEV/EPSS/POC signals indicate this is a patch-soon issue rather than an emergency. No conflicting signals were observed; the CVSS vector and the description are consistent (network-reachable endpoint, low complexity, requires an existing low-privilege token).

Exploit ScenarioDerived

An attacker who has obtained an ezBookkeeping API token - for example a short-lived or IP-restricted token meant only for automation - sends it to the /api/v1/tokens/refresh.json endpoint, which fails to verify the token type and returns a full 30-day normal session token. The attacker now holds a long-lived session credential that ignores the original token's expiry and IP allowlist restrictions. No public exploit code was identified in the provided intelligence, but the flaw is trivially reproducible given a valid API token and low attack complexity.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 04, 2026

Privilege escalation in ezBookkeeping 1.2.0 through 2.0.0 lets an attacker who already holds a short-lived and/or IP-restricted API token exchange it for a full 30-day normal session token by calling POST /api/v1/tokens/refresh.json, because TokenRefreshHandler never verifies the token type before minting a replacement. The resulting session token outlives the original API token's expiry and its IP allowlist, though impact stays within the compromised account's own scope (low confidentiality and integrity impact). Rated CVSS 5.3 (CVSS:4.0 AV:N/AC:L/AT:N/PR:L/UI:N), it requires a prior valid API token (authenticated) and is fully remediated in v2.0.1; no public exploit code or confirmed active exploitation was identified at time of analysis.

RemediationAI

Upgrade to ezBookkeeping 2.0.1, the vendor-released patch version, which adds the missing USER_TOKEN_TYPE_NORMAL checks to TokenRefreshHandler and the other affected handlers; the exact fix is commit 9a92b07 (https://github.com/mayswind/ezbookkeeping/commit/9a92b07be8a7034665abfdb35b036210a1d57bf9) and the release is at https://github.com/mayswind/ezbookkeeping/releases/tag/v2.0.1, with the coordinated advisory at https://github.com/mayswind/ezbookkeeping/security/advisories/GHSA-wq25-mpcf-2mfc. If immediate upgrade is not possible, remember the flaw only grants escalation to a party who already holds a valid API or MCP token, so the practical compensating controls are to revoke and stop issuing such tokens where they are not operationally required, rotate any tokens believed exposed, and - with a normal session token - use the token-revocation endpoints to invalidate existing API tokens (a revoke-all action terminates all sessions for the account, including the administrator's own, so it should be scheduled accordingly). Blocking or tightly restricting inbound access to /api/v1/tokens/refresh.json at a reverse proxy or WAF to trusted networks/clients reduces exposure, at the cost of breaking legitimate client refreshes from other locations, since API tokens are often used specifically for remote automation. Monitoring for refresh calls originating from API-token principals (the fixed code logs token-type warnings) can detect attempts during the upgrade window.

Affected VersionsENISA

ezBookkeeping 1.2.0 <2.0.1

Affected Packages

euvd ezbookkeeping fix: 2.0.1

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

ezBookkeeping is a Go web application whose API layer issues JWTs carrying a Type claim distinguishing a normal user session token (USER_TOKEN_TYPE_NORMAL) from API/MCP tokens that are meant to be short-lived and optionally bound to an IP allowlist. CWE-863 (Incorrect Authorization) is the root cause: the TokenRefreshHandler in pkg/api/tokens.go (lines ~327-380 in v2.0.0) validated signature/expiry but never asserted that the incoming token's Type was USER_TOKEN_TYPE_NORMAL, so any structurally valid token - including a narrowly scoped API token - could be refreshed into a 30-day normal session credential. The upstream fix (commit 9a92b07) adds explicit claims.Type checks to TokenRefreshHandler and, in the same pass, to a broader set of sensitive handlers (TokenGenerateAPIHandler, TokenGenerateMCPHandler, TokenRevokeHandler, TokenRevokeAllHandler, ClearAllDataHandler, ClearAllTransactionsHandler/ClearAllTransactionsByAccountHandler, OAuth2 login/callback authorization, and two-factor status), indicating the same missing-type-check class was present across multiple endpoints. Data is stored per user account, so any escalated token remains bounded by that account's data.

Know when Ezbookkeeping 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

Vendor (VulnCheck) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.4 MEDIUM

Network endpoint with low complexity but requires a pre-existing API token (PR:L); impact limited to upgrading the attacker's own token scope, so C:L/I:L and A:N.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

ezBookkeeping 1.2.0 before 2.0.1 contains a privilege escalation vulnerability that allows attackers holding an API token to obtain a full session token via /api/v1/tokens/refresh.json. Because TokenRefreshHandler never checks token type, attackers can exchange short-lived or IP-restricted API tokens for 30-day normal session tokens that bypass API token expiry and allowlists.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Low
niche open-source self-hosted personal bookkeeping app, limited enterprise footprint
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy