Skip to main content

Daptin CVE-2026-41422

HIGH
SQL Injection (CWE-89)
2026-04-22 https://github.com/daptin/daptin GHSA-rw2c-8rfq-gwfv
8.3
CVSS 3.1
Share

CVSS VectorNVD

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
Low

Lifecycle Timeline

4
Analysis Generated
Apr 23, 2026 - 06:49 vuln.today
Patch released
Apr 23, 2026 - 02:30 nvd
Patch available
Analysis Generated
Apr 22, 2026 - 18:01 vuln.today
CVE Published
Apr 22, 2026 - 17:38 nvd
HIGH 8.3

DescriptionNVD

Summary

The /aggregate/:typename endpoint accepted column and group query parameters that were passed verbatim to goqu.L() - a raw SQL literal expression builder - without any validation. This bypassed all parameterization and allowed authenticated users with any valid session to inject arbitrary SQL expressions.

Impact

An authenticated low-privilege user could:

  • Extract data from any table via subquery: (SELECT group_concat(email) FROM user_account) as leak
  • Disclose database internals: sqlite_version(), (SELECT sql FROM sqlite_master)
  • Exfiltrate cross-table data via correlated subqueries

The vulnerability was confirmed locally; user_account.email values were extracted via a crafted column parameter by a non-admin user.

Root Cause

goqu.L(userInput) in server/resource/resource_aggregate.go inserted user-supplied query parameters directly into the SQL string with no validation.

Fix (v0.11.4)

All goqu.L() calls on user-controlled input were eliminated and replaced with:

  • Structural expression parsing supporting all documented API forms
  • Schema-based column validation (column names checked against entity schema via TableInfo().GetColumnByName())
  • Exact-match allowlist for aggregate functions (count, sum, avg, min, max, first, last) and scalar functions (date, strftime, upper, lower, etc.)
  • Safe goqu constructors (goqu.I(), goqu.SUM(), goqu.Func()) for all generated expressions
  • allowedTables scope enforcement: qualified column refs (table.col) validated against root entity + explicitly joined tables only

Two additional DoS bugs were fixed in the same commit: uuid.MustParse panic on malformed UUID input and an index-out-of-range panic in ToOrderedExpressionArray on empty sort expressions.

Credits

Reported by @VashuVats.

AnalysisAI

SQL injection in Daptin's /aggregate/:typename endpoint allows authenticated low-privilege users to extract arbitrary database content via unsanitized query parameters. The column and group parameters are passed directly to raw SQL literal expressions without validation, enabling data exfiltration from any table including user credentials, database schema disclosure, and cross-table correlation attacks. …

Sign in for full analysis, threat intelligence, and remediation guidance.

RemediationAI

Within 24 hours: Inventory all Daptin deployments and document current versions. Within 7 days: Upgrade all affected Daptin instances to version 0.11.4 or later, testing in non-production first. …

Sign in for detailed remediation steps.

Share

CVE-2026-41422 vulnerability details – vuln.today

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