HIGH 8.1

CVE-2026-46622: SolidInvoice API Token Plaintext Storage Vulnerability

SolidInvoice, an open-source invoicing platform, stores API authentication tokens as plain, unencrypted text in its database. Before version 2.3.17, anyone who gains read access to the database—whether through SQL injection, leaked backups, misconfigured database replicas, or insider access—immediately acquires all API credentials for every user without needing to decrypt or crack anything. This turns database compromise into immediate authentication compromise across your entire API surface.

Source data · NVD / CISA · public domain

CVSS
3.1 · 8.1 HIGH · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Weaknesses (CWE)
CWE-312
Affected products
0 configuration(s)
Published / Modified
2026-06-11 / 2026-06-17

NVD description (verbatim)

SolidInvoice is an open-source invoicing platform. Prior to version 2.3.17, API tokens used to authenticate all REST API requests are stored as plaintext strings in the api_tokens database table. Any attacker who obtains read access to the database — through SQL injection, a leaked backup, a misconfigured replica, or insider access — immediately obtains all API credentials for every user with no further effort. This issue has been patched in version 2.3.17.

4 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-46622 is a cleartext storage vulnerability (CWE-312) affecting SolidInvoice versions prior to 2.3.17. API tokens, which serve as the primary authentication mechanism for all REST API requests, are persisted unencrypted in the api_tokens database table. An attacker with database read access obtains valid, immediately usable credentials for all API-authenticated accounts. The attack requires no brute-force, no cryptographic bypass, and no further exploitation steps once database access is achieved. Patch is available in version 2.3.17.

Business impact

Compromise of API tokens enables unauthorized API access on behalf of legitimate users. Attackers can invoke any API endpoint available to those user accounts—creating invoices, modifying financial records, exporting customer data, or integrating with downstream accounting systems. The severity depends on what your SolidInvoice instance exposes via API and which user accounts are active. In multi-tenant or shared deployments, a single database breach exposes credentials for all organizations and users. Remediation complexity increases if your deployment uses database replicas or automated backups that may contain stale but valid tokens.

Affected systems

All installations of SolidInvoice prior to version 2.3.17 are affected. The vulnerability exists in the core API authentication mechanism, so any deployment exposing the REST API is at risk. Open-source deployments are particularly vulnerable because source-code availability may aid reconnaissance, and self-hosted instances often lack centralized patching discipline. Managed or cloud-hosted SolidInvoice services are affected unless the provider has already upgraded to 2.3.17 or later.

Exploitability

Exploitability is contingent on database access. The vulnerability itself requires no active network interaction or application-layer attack; it is purely a storage issue. However, obtaining database access in the first place is the prerequisite. Common paths include unpatched SQL injection in the SolidInvoice application itself or its dependencies, misconfigured database network exposure, leaked or compromised database credentials, or insider access. Once database read access is gained, token theft is trivial and undetectable via standard application logging. The CVSS score of 8.1 (HIGH) reflects the high impact on confidentiality and integrity given that a database breach is assumed as the precondition.

Remediation

Upgrade SolidInvoice to version 2.3.17 or later. The patch implements encrypted storage for API tokens, rendering plaintext theft ineffective. After upgrading, rotate all existing API tokens to ensure old plaintext tokens cannot be reused even if database backups or replicas containing them are later compromised. Review database access logs and backup inventories for evidence of unauthorized database access during the window of vulnerability. If your deployment uses replicated databases or archived backups, ensure those are updated or securely disposed of after the token rotation is complete.

Patch guidance

Upgrade to SolidInvoice version 2.3.17 or later. The patch changes how API tokens are stored and should be applied as soon as feasible, particularly for instances exposed to untrusted networks or handling sensitive financial data. Test the upgrade in a non-production environment first to confirm compatibility with your specific configuration, plugins, and integrations. Schedule the upgrade during a maintenance window to minimize disruption; the patch does not require database schema changes beyond token re-encryption. After upgrade completion, trigger a forced re-authentication or token refresh cycle for all API consumers to ensure they obtain new encrypted tokens.

Detection guidance

Review database access logs from the vulnerability window (before your upgrade date) for unauthorized queries against the api_tokens table or bulk exports of the table contents. Check for SQL injection attempts in application logs or WAF logs that target authentication or token endpoints. Audit API logs for unusual token usage patterns—requests from unexpected IP addresses, simultaneous logins from multiple locations, or API calls inconsistent with known consumer applications. If you suspect database compromise, assume API tokens are exposed and revoke all active tokens, forcing re-authentication. Monitor for leaked credentials in public code repositories, paste sites, or dark-web marketplaces using your organization name and API token patterns.

Why prioritize this

This vulnerability should be treated as HIGH priority because it converts database compromise—a plausible attack outcome—into immediate API authentication compromise with no additional attacker effort. Database breaches occur frequently via SQL injection, misconfiguration, or insider threats; the lack of encryption amplifies their impact. The fix is straightforward (upgrade and rotate tokens), so delaying creates unnecessary risk. Organizations running older SolidInvoice versions should prioritize patching over other network-level hardening until this is resolved.

Risk score, explained

The CVSS 3.1 score of 8.1 reflects a HIGH severity assessment with these factors: Attack Vector NETWORK (the database is often network-accessible), Attack Complexity LOW (no special conditions needed once database access is obtained), Privileges Required LOW (the assumption that an attacker has gained some level of database access), User Interaction NONE (no user action required), Scope UNCHANGED (impact is limited to the SolidInvoice application), Confidentiality HIGH (all API tokens are exposed), Integrity HIGH (compromised tokens allow unauthorized modifications), Availability NONE (the attack does not disrupt service). The score emphasizes that database read access is the precondition; however, because database compromises are common and tokens become immediately actionable, the overall risk to an organization running unpatched SolidInvoice is substantial.

Frequently asked questions

If our SolidInvoice database has not been compromised, are we at risk?

You are at reduced but non-zero risk. The vulnerability itself requires database access to exploit. However, if your instance is running an unpatched version, you should assume eventual compromise is possible—through SQL injection, misconfiguration, or other means. Upgrading eliminates the risk that a future database breach will expose API tokens in plaintext.

Do we need to rotate API tokens immediately, or only after upgrading?

Ideally, upgrade first, then rotate all tokens. Upgrading ensures new tokens are encrypted. Rotation after upgrade guarantees that any plaintext tokens stored in old backups or replicas cannot be reused, even if those systems are later compromised or accessed by an insider.

What should we do if we suspect our database was already accessed?

Assume API tokens were exposed. Revoke all API tokens immediately and force all API consumers to re-authenticate and obtain new tokens. Review audit logs for suspicious API activity during the suspected compromise window. If you store backups, check whether any were accessed or exfiltrated. Consider a full security audit of the SolidInvoice instance and its database environment to identify the initial compromise vector.

Does this vulnerability affect SolidInvoice deployments that don't use the API?

If your deployment does not create or use API tokens, the risk is minimal—tokens won't exist to be stolen. However, most modern integrations with accounting software or third-party tools rely on the API, so this assumption is worth validating. Even if you don't currently use the API, patching is still recommended to prevent future risk if your usage evolves.

This analysis is based on the public CVE record and vendor advisory as of June 2026. Security assessments and patch availability may change; verify current status with the SolidInvoice project and your specific deployment. This explainer does not constitute professional security advice tailored to your organization's risk posture. Conduct your own threat assessment and consult with your security team before prioritizing remediation in your environment. Source: NVD (public-domain), retrieved 2026-07-20. Analysis generated by SEC.co (claude-haiku-4-5).