Skip to main content

Lotus EUVDEUVD-2026-108134

| CVE-2026-115332 HIGH
SQL Injection (CWE-89)
2026-10-22 VulnCheck GHSA-fcf4-2wr8-2h4q
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as organization user
  2. Exploit
    Register crafted subscription_filter_key bypassing validation
  3. Execution
    Create subscription injecting SQL into group-by
  4. Impact
    Exfiltrate cross-tenant data from shared database

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Persistence

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated organization-level user account on a multi-tenant Lotus deployment at version 0.10.2 or earlier (PR:L). The attacker must register a subscription_filter_key crafted to satisfy the keyword-only validation yet contain SQL, and then create a subscription referencing that key so it is rendered as an unquoted group-by identifier inside the usage-aggregation query path. Limiting factors: valid authenticated org credentials are needed (not anonymous/unauthenticated), the deployment must use the shared multi-tenant database model where aggregation queries span tenants, and impact beyond data disclosure is constrained by the single-statement query context of the underlying Django/psycopg2 driver.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N, VC:H/VI:H/VA:H, score 8.7 'High') describes a network-reachable, low-complexity flaw requiring only low privileges and no user interaction - a realistic profile for an insider or a compromised/registered tenant account in a SaaS billing deployment. The vendor (VulnCheck) rates vulnerable-system confidentiality, integrity and availability all High; however, because the described mechanism is an unquoted group-by identifier injected into SELECT-based usage-aggregation queries, I judge the integrity and availability impact to be weaker in practice than VC:H/VI:H/VA:H implies, since stacked/multi-statement queries are typically disabled by the Django/psycopg2 stack this project uses - the dominant, clearly-supported impact is confidentiality (cross-tenant data disclosure from the shared multi-tenant database). No EPSS score is provided in the input, so probabilistic exploitation likelihood cannot be stated. The vulnerability is NOT in CISA KEV and there is no confirmed active exploitation; a public PoC/write-up reference exists but is not verified as working exploit code. The vuln.today decision label is 'this_week' (not act_now/emergency). Net: this is a genuine, authenticated multi-tenant SQL injection worth prioritizing within the week for anyone running Lotus, but the low real-world footprint of the product and the requirement for an authenticated org account temper it below an internet-wide emergency.

Exploit ScenarioDerived

An attacker who holds (or registers) a low-privileged organization account on a multi-tenant Lotus instance registers a subscription_filter_key crafted to pass the keyword-only validation while carrying SQL syntax, then creates a subscription that uses it; the key is emitted unquoted into the group-by clause of a usage-aggregation query, letting the attacker read other tenants' data from the shared database. A public PoC write-up is referenced (hackmd), but it is not verified as working exploit code.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet

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

Alert me

AnalysisAIv1 – Oct 22, 2026

SQL injection in the Lotus (uselotus/lotus) metering and billing platform through 0.10.2 lets an authenticated organization-level user smuggle SQL into usage-aggregation queries by registering a crafted subscription_filter_key that passes the keyword-only validator and is later rendered as an unquoted GROUP BY identifier. Per the assessed vector (CVSS 3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N), the dominant impact is high-confidentiality disclosure of billing and usage data held in the shared multi-tenant database, with limited integrity impact and no availability effect; the reporter's CVSS 4.0 vector scores it 8.7. No CISA KEV entry or confirmed working exploit code was identified at time of analysis, though a public technical writeup is referenced, and vuln.today sequencing places this in the this-week remediation queue - the practical prerequisite is a valid tenant account on a deployment where aggregation queries span tenants.

RemediationAI

No vendor-released patch or exact fixed version is identified in the supplied data, so treat Lotus 0.10.2 and earlier as vulnerable until an advisory from the project (https://github.com/uselotus/lotus) names a fixed release, and track the VulnCheck advisory for updates. Until then, the most effective compensating control is to restrict creation of subscription_filter_keys to platform administrators rather than ordinary organization users, which removes the low-privilege foothold the attack depends on but slows legitimate tenant self-service onboarding. As a second layer, replace the keyword-only validation with a strict allow-list of permitted group-by columns and render the identifier through psycopg2.sql.Identifier or an equivalent quoting API - the trade-off is that any custom filter keys already in production that fall outside the allow-list will break. Audit existing subscription and subscription_filter_key records for SQL metacharacters or unexpected tokens and disable or delete anything suspicious, and review usage-aggregation logs for anomalous GROUP BY constructs. Where practical, isolate tenants into separate schemas or databases so a successful injection cannot traverse tenant boundaries, at the cost of added operational complexity and cross-tenant reporting effort. Invalidating sessions or credentials of untrusted organization accounts reduces exposure but does not fix the underlying flaw, since any newly registered tenant account restores the attack path.

Affected VersionsENISA

lotus 0 ≤0.10.2

Affected Packages

euvd lotus 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

Lotus is a Django-based open-source billing and usage-metering application backed by PostgreSQL through psycopg2, and the flaw is a classic CWE-89 injection arising from identifier handling rather than value handling. The affected code path is the model serializer in backend/metering_billing/serializers/model_serializers.py (lines 518-534), where subscription_filter_keys are validated with a keyword-only check - the validation constrains which words are present but does not restrict the character set or grammar of the key. Because SQL bind parameters can only carry values and not identifiers, the key survives validation and is interpolated unquoted into the GROUP BY clause of the usage-aggregation query, so SQL fragments embedded in the key are parsed as query structure at execution time. The multi-tenant architecture amplifies the issue: aggregation queries are issued against a shared database where tenant rows coexist, so an injected predicate or subquery can reach beyond the attacker's own organization. The single-statement execution context of the Django/psycopg2 driver is what constrains secondary integrity and availability impact, which is why the independent assessment rates I:L and A:N even though the reporter's CVSS 4.0 vector claims high integrity and availability impact.

Know when Lotus 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 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.1 HIGH

Authenticated org user gives PR:L over the network with low complexity and no UI; unquoted group-by injection in a SELECT context yields high cross-tenant read (C:H) but limited integrity and no availability absent stacked-query support.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/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
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Lotus through 0.10.2 contains an sql injection vulnerability that allows authenticated organization users to inject SQL by registering crafted subscription_filter_keys that bypass keyword-only validation. Attackers can create subscriptions using the malicious key, which is rendered as an unquoted group-by identifier, to inject SQL into usage aggregation queries against the shared multi-tenant database.

Executive ViewAI

Why It Matters

The Lotus billing platform (through version 0.10.2) contains a high-severity SQL injection flaw that allows any authenticated organization-level user to access sensitive billing and usage data belonging to other tenants in the shared database. This represents a significant confidentiality breach risk for multi-tenant deployments, potentially exposing customer financial records and usage patterns. Leadership should prioritize remediation to prevent data leakage and maintain customer trust.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include restricting organization-level user accounts to trusted users, implementing strict input validation for subscription_filter_key to reject non-alphanumeric characters, deploying a web application firewall with virtual patching for SQL injection, and enabling database activity monitoring to detect anomalous cross-tenant queries.

Threat Intelligence Overview

Prevalence
Low
niche open-source usage-based billing platform, limited production adoption
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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 HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

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

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

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