Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to TaxHacker settings
-
DeliverySet malicious LLM baseUrl to internal target
-
ExploitInvoke testLLMProviderAction
-
ExecutionServer issues forged request
-
ImpactLeak internal service response
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires reaching the testLLMProviderAction server action in app/(app)/apps/settings/actions.ts and controlling its provider/apiKey/model/baseUrl arguments - i.e., access to the TaxHacker settings/LLM-configuration function of a running instance. The core condition is the ability to set an arbitrary LLM provider baseUrl, which the server then contacts. Limiting factors: this is a self-hosted, typically single-tenant/login-gated application, so realistic exploitation needs an authenticated session (contradicting the vendor's PR:N); impact is limited to confidentiality (VC:L) with the SSRF constrained by what internal endpoints the server can reach; and there is no vendor patch, so mitigation depends on network egress controls around the deployment. |
| Impact | This is a moderate-severity SSRF (CWE-918) in a niche open-source, self-hosted application, and the signals broadly agree it is NOT a high-priority issue. The vendor CVSS 4.0 vector scores 5.5 with only VC:L (limited confidentiality) and no integrity or availability impact, reflecting a constrained SSRF rather than an internal-network pivot to RCE. A public POC exists (GitHub issue #187), so the 'E:P' (Proof-of-Concept) exploit-maturity flag in the vector is consistent - publicly available exploit code exists, but this is distinct from active exploitation. There is no CISA KEV listing and no EPSS score in the provided data, and the exploitation status is 'no public exploit weaponized in the wild' beyond the researcher POC. One key discrepancy: the vendor vector states PR:N (unauthenticated), but the vulnerable function testLLMProviderAction lives in an app settings action (app/(app)/apps/settings/actions.ts), which in a self-hosted, login-gated application realistically requires an authenticated session - I dispute PR:N and assess PR:L. Overall this is a real but low-consequence bug in a low-footprint product, further blunted by the vendor being unresponsive (no patch), meaning defenders relying on this software must self-mitigate. |
| Exploit ScenarioDerived | An attacker with access to the TaxHacker settings UI supplies a crafted baseUrl (and provider/apiKey/model arguments) pointing at an internal service or cloud metadata endpoint, then triggers the 'test LLM provider' action so the server issues the request on the attacker's behalf. Because the response or error can leak information, the attacker performs internal reconnaissance or reads limited internal data. A public POC exists in the project's GitHub issue #187, and the attack is remote over the network. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 20, 2026
Server-side request forgery in vas3k TaxHacker up to and including 0.8.5 lets an attacker who can reach the LLM-provider configuration function force the server to issue requests to an arbitrary URL of their choosing. The flaw lives in the testLLMProviderAction server action in app/(app)/apps/settings/actions.ts, where the attacker-supplied baseUrl is used as the destination of an outbound HTTP request without validation; publicly available exploit code exists and the project has not responded to the reported issue. Independent assessment places the realistic severity lower than the vendor's CVSS 4.0 score of 5.5: because TaxHacker is a self-hosted, login-gated application, practical exploitation requires an authenticated session and a working LLM-configuration screen, and the achievable impact is limited to confidentiality (reading responses from internal endpoints the server can reach) rather than code execution or data modification.
RemediationAI
No vendor-released patch identified at time of analysis: the maintainers were notified through issue report #187 and have not responded, so there is no fixed version to upgrade to and no vendor advisory to cite (tracking entry: https://vuldb.com/vuln/407969). Compensating controls should target both who can reach the action and what the server can reach: first, ensure the TaxHacker instance is not internet-exposed and that the settings/LLM-configuration screen is restricted to a small set of trusted administrators, since the assessed vector requires an authenticated user (PR:L) - this does not eliminate the flaw but removes the realistic attacker population. Second, apply egress filtering on the TaxHacker container or host so it cannot reach RFC1918 ranges, loopback, link-local addresses (especially 169.254.169.254 cloud metadata), or internal admin/API ports; an allowlist of only the LLM provider domains you actually use is the strongest form of this control. The trade-off is that egress restrictions break legitimate functionality - self-hosted LLM endpoints such as a local Ollama or OpenAI-compatible proxy run on private addresses, and any other feature that calls internal services will stop working, so the allowlist must be built from the deployment's real traffic before enforcement. Third, if custom or private LLM base URLs are not required, remove or disable the provider-configuration capability entirely (feature toggle/patch out the testLLMProviderAction route), accepting the loss of LLM-backed features; if it must stay enabled, run the app in a segregated network namespace or behind an egress proxy that denies private destinations by default. Monitor server-side outbound connection logs from the TaxHacker process to internal address space as a detection signal, since exploit code is publicly available and requests to unusual hosts would be the observable artifact.
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
TaxHacker is a self-hosted Next.js bookkeeping/tax application; its settings module exposes a server action, testLLMProviderAction, that validates a user-configured LLM provider by calling out to it. The action accepts provider, apiKey, model and baseUrl parameters and uses baseUrl directly as the fetch target from the Node.js server process, which is the classic CWE-918 server-side request forgery pattern: attacker-controlled input determines the destination of a server-initiated request, and no allowlist, scheme restriction, or private-address blocking is applied. Because the request originates from the TaxHacker server rather than the browser, the attacker can pivot to services that are only reachable from the server's network position - internal admin panels, cloud instance metadata endpoints such as 169.254.169.254, or other containers on the same host network - and can use the returned response body as an oracle. The CPE cpe:2.3:a:vas3k:taxhacker:*:*:*:*:*:*:*:* indicates all released versions to date are in scope, with 0.8.5 being the last affected release described. The project is distributed as source on GitHub (https://github.com/vas3k/TaxHacker/) and typically deployed as a Docker container behind a reverse proxy, so the blast radius is bounded by whatever network the container sits on and by whether the deployment exposes the app beyond a trusted user base.
Know when Taxhacker 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P
Network-reachable settings action requiring an authenticated session (PR:L), yielding limited confidentiality-only SSRF with no integrity/availability impact and no confirmed scope change.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
2DescriptionCVE.org
A flaw has been found in vas3k TaxHacker up to 0.8.5. Affected by this vulnerability is the function testLLMProviderAction of the file app/(app)/apps/settings/actions.ts. Executing a manipulation of the argument provider/apiKey/model/baseUrl can lead to server-side request forgery. The attack may be performed from remote. The exploit has been published and may be used. The project was informed of the problem early through an issue report but has not responded yet.
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
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
Server-side request forgery in vas3k TaxHacker up to 0.8.5 lets an attacker control the businessLogo argument passed to
Authentication bypass in vas3k TaxHacker through version 0.8.2 is possible because the JWT Secret Handler in `lib/config
Server-side request forgery in vas3k TaxHacker up to version 0.8.2 enables authenticated remote attackers to force the a
EUVD-2026-83759
GHSA-q426-w6qm-jw5g
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB