Skip to main content

TaxHacker EUVDEUVD-2026-83759

| CVE-2026-94040 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-09-20 VulDB GHSA-q426-w6qm-jw5g
5.5
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to TaxHacker settings
  2. Delivery
    Set malicious LLM baseUrl to internal target
  3. Exploit
    Invoke testLLMProviderAction
  4. Execution
    Server issues forged request
  5. Impact
    Leak 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

TaxHacker 0.8.0
TaxHacker 0.8.1
TaxHacker 0.8.3
TaxHacker 0.8.4
TaxHacker 0.8.5
TaxHacker 0.8.2

Affected Packages

euvd taxhacker no fix

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

Vendor (VulDB) PRIMARY 5.5 MEDIUM
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
vuln.today AI 4.3 MEDIUM

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.

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

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

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

Lifecycle Timeline

2
CVSS changed
Sep 20, 2026 - 17:22 NVD
6.9 (MEDIUM) 5.5 (MEDIUM)
CVE Published
Sep 20, 2026 - 17:00 cve.org
MEDIUM 5.5

DescriptionCVE.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

EPSS Score
0.3%
Top 76% exploitable
Prevalence
Low
niche self-hosted open-source AI accounting/receipt tool, small deployment footprint
Exploit
POC
Public exploit code exists
Data Quality
6 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 Yes
EPSS 0.3%
Patch available No
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
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

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