Skip to main content

Actual Budget CVE-2026-42604

| EUVDEUVD-2026-36543 MEDIUM
Incorrect Authorization (CWE-863)
2026-06-12 GitHub_M
6.9
CVSS 4.0 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
10.0 CRITICAL

Network-reachable, no-auth endpoint; S:C because leaked client_secret directly impacts the external identity provider; A:N as no availability impact is described.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

2
Patch available
Jun 12, 2026 - 21:01 EUVD
Analysis Generated
Jun 12, 2026 - 20:01 vuln.today

DescriptionCVE.org

Actual is a local-first personal finance tool. The POST /openid/config endpoint in Actual Budget's sync-server versions <= 26.4.0 exposes the full OpenID Connect configuration-including the OAuth2 client_secret-to any caller who knows the bootstrap password. The endpoint also lacks authentication and rate limiting, making the bootstrap password brute-forceable. Version 26.5.0 fixes the issue.

AnalysisAI

Unauthenticated access to the POST /openid/config endpoint in Actual Budget sync-server versions <= 26.4.0 exposes the full OpenID Connect configuration-including the OAuth2 client_secret-to any caller who can supply the bootstrap password. Because the endpoint enforces no rate limiting, the bootstrap password itself is brute-forceable, compounding the exposure. No public exploit has been identified at time of analysis, and the EPSS score of 0.03% (11th percentile) reflects low current exploitation probability; however, internet-exposed instances with OIDC configured are at meaningful risk of credential harvesting.

Technical ContextAI

Actual Budget is a local-first personal finance application whose sync-server component (CPE: cpe:2.3:a:actualbudget:actual:*:*:*:*:*:*:*:*) implements OpenID Connect (OIDC) to support federated authentication. The POST /openid/config endpoint is intended for managing the OIDC configuration, including the OAuth2 client_secret-a sensitive credential that authorizes the Actual Budget application to communicate with the configured identity provider (IdP). The root cause is CWE-863 (Incorrect Authorization): the endpoint validates only a bootstrap password but neither authenticates callers with session-bound credentials nor enforces any rate limit, making the single protective factor (the bootstrap password) susceptible to automated guessing. A leaked client_secret could allow an attacker to impersonate the Actual Budget application in OAuth2 flows against the IdP, enabling unauthorized token issuance or manipulation of user sessions depending on the IdP's configuration and client permissions.

RemediationAI

Upgrade Actual Budget sync-server to version 26.5.0, which resolves the issue per the vendor security advisory at https://github.com/actualbudget/actual/security/advisories/GHSA-49v6-pqjq-xw55 and the release notes at https://actualbudget.org/blog/release-26.5.0. If immediate patching is not feasible, restrict network access to the sync-server at the firewall or reverse-proxy layer so that the POST /openid/config endpoint is reachable only from trusted administrative hosts; this eliminates remote brute-force risk but requires infrastructure changes and prevents legitimate remote administration. Additionally, if the sync-server was previously internet-exposed, rotate the OAuth2 client_secret in the connected identity provider immediately, as the secret may have already been exfiltrated without evidence in application logs. Using a long, randomly generated bootstrap password raises the brute-force cost as an interim measure but is not a substitute for patching, since the lack of rate limiting means even strong passwords are eventually vulnerable under sustained attack.

Share

CVE-2026-42604 vulnerability details – vuln.today

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