Skip to main content

Apache Fineract CVE-2026-65874

| EUVDEUVD-2026-113749 HIGH
SQL Injection (CWE-89)
8.8
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privilege read user
  2. Delivery
    Send GET with crafted orderBy/order parameter
  3. Exploit
    Bypass regex validation on ORDER BY
  4. Execution
    Trigger time-based blind SQL injection
  5. Impact
    Exfiltrate database records via inferred delays

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 account with read access to centers or to the specific targeted datatable (the description states 'any authenticated user with read access'), so this is not anonymous/pre-auth exploitation. The exact affected endpoints are GET /api/v1/centers and the datatable read endpoints GET /api/v1/datatables/{datatable}/{apptableId} and GET /api/v1/datatables/{datatable}/{apptableId}/{datatableId}. The trigger is a caller-supplied orderBy, sortOrder, or order query parameter crafted to evade the existing regex-based validation; the vulnerable versions are Apache Fineract up to and including 1.15.0. The limiting factors are the authentication/read-authorization requirement and the blind (time-based) nature of the injection, which slows bulk extraction; upgrading to 1.16.1 removes the flaw.

Impact

This is a genuine prioritization candidate but not a drop-everything emergency, and the signals are internally consistent rather than conflicting. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N) describes a network-reachable, low-complexity flaw requiring only low privileges - matching the description, which states that any authenticated user with read access to centers or to the targeted datatable can exploit it. The vuln.today decision label is 'this_week' (not act_now/emergency), which aligns with the remaining signals: EPSS is low at 0.28% (20th percentile), there is no CISA KEV listing, and no public exploit code was supplied - only the upstream fix PRs. So the high CVSS (8.8) reflects real severity for an authenticated SQL injection, but the real-world urgency is tempered by the authentication precondition, low exploitation probability, and absence of confirmed active exploitation. The one point worth flagging for analysts: the published CVSS claims full C:H/I:H/A:H, yet the described mechanism is time-based blind SQL injection in an ORDER BY clause, which typically enables data disclosure far more readily than data modification or destruction - treat the integrity/availability impact as less certain than the confidentiality impact.

Exploit ScenarioDerived

An authenticated low-privilege user with read access to centers or a datatable sends a GET request to GET /api/v1/centers or GET /api/v1/datatables/{datatable}/{apptableId} with a crafted orderBy/sortOrder/order parameter that evades the regex validation and is concatenated directly into the SQL ORDER BY clause. Using time-based blind techniques (conditional delays), the attacker infers database contents character-by-character to exfiltrate sensitive financial records. No public exploit code was provided, though the fix PRs confirm the vulnerable code path.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.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

AnalysisAIv2 – Nov 02, 2026

Time-based blind SQL injection in Apache Fineract through 1.15.0 lets an authenticated user who already holds read access to centers or to a specific datatable inject arbitrary SQL through the orderBy, sortOrder and order query parameters of the center read endpoint (GET /api/v1/centers) and the datatable read endpoints (GET /api/v1/datatables/{datatable}/{apptableId} and /api/v1/datatables/{datatable}/{apptableId}/{datatableId}). The bug is CWE-89: caller-supplied ordering values are concatenated straight into the SQL ORDER BY clause and the pre-existing regex validation (ColumnValidator) can be bypassed; the project's own fix replaces that regex with an allowlist check against the datatable's real column headers. Exploitation is not anonymous - it requires a valid account with the relevant read permission - and because the injection is blind and time-based, bulk data extraction is slow; EPSS is 0.28% (20th percentile), there is no CISA KEV listing and no public exploit code identified at time of analysis, and Apache recommends upgrading to 1.16.1.

Earlier versions of this analysis (1)
v1 Oct 30, 2026 - 03:16

SQL injection in Apache Fineract 1.15.0 and earlier lets an authenticated user with read access to centers or to a targeted datatable inject arbitrary SQL through the orderBy, sortOrder and order parameters of the Center read endpoint (GET /api/v1/centers) and the datatable entry read endpoints (GET /api/v1/datatables/{datatable}/{apptableId} and .../{datatableId}). The caller-supplied ordering values are concatenated directly into the SQL ORDER BY clause and the existing regex-based validation can be bypassed, giving time-based blind injection where data is inferred from response timing rather than returned in the response. The assessed vector is CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N (high confidentiality impact only), so credentials plus the relevant read permission are mandatory and no anonymous path is described. No KEV entry, EPSS score or verified working exploit code was present in the available data, and the vuln.today decision label is 'awaiting_data'; version 1.16.1 fixes the issue.

RemediationAI

Upgrade Apache Fineract to 1.16.1, which is the version the vendor names as fixing the issue; the code changes are visible in pull requests https://github.com/apache/fineract/pull/6230 (allowlist-based ORDER BY validation in DatatableUtil, replacing ColumnValidator on this path) and https://github.com/apache/fineract/pull/6277, and the announcement is at https://lists.apache.org/thread/c4q539mkm5blnp5vdb72tzq6r9qg7bdh with the advisory at https://seclists.org/oss-sec/2026/q4/441. Upgrading is the only complete fix described by the vendor, since the flaw is in the shipped SQL construction and no configuration switch is documented as disabling the affected ordering parameters. Because the vulnerability is only reachable by an authenticated user who holds read access to centers or to the targeted datatable, reducing the population of accounts granted those read permissions and reviewing who currently holds them limits exposure until the upgrade is applied, at the cost of narrowing legitimate reporting workflows for those users; this is a scoping measure, not a substitute for the patch. Detection of prior abuse is also difficult given the time-based blind technique, so review API access logs for unusual orderBy, sortOrder or order parameter values on the center and datatable read endpoints around the time of upgrade.

Affected VersionsENISA

Apache Fineract 0 ≤1.15.0

Affected Packages

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

Apache Fineract is an open-source core banking platform built on Java/Spring, and the vulnerable code sits in the dataqueries service layer (DatatableUtil in fineract-provider). Datatable reads are assembled as native SQL strings, and the ordering fragment previously went through ColumnValidator, a regex-based SQL-injection filter, before being appended as " order by " + order. Regex blocklists of this kind are structural weak points: they must anticipate every syntactic form the underlying database accepts, and any gap becomes an injection primitive. Here the bypass permits time-based blind SQL injection, meaning the attacker infers data by observing query latency rather than by seeing returned rows, which is slow but reliable and leaves little in the application response. The upstream fix (PR 6230, with follow-on PR 6277) removes ColumnValidator from this path and introduces validateAndBuildOrderClause, which parses a single column name (optionally double-quoted for Postgres/ANSI or backtick-quoted for MySQL/MariaDB, honoring doubled-quote escapes), checks it against the actual ResultsetColumnHeaderData column names of the target datatable, permits only ASC or DESC as a direction token, and then re-escapes the identifier through sqlGenerator.escape before concatenation - an allowlist rather than a blocklist, and dialect-aware. The CPE cpe:2.3:a:apache:fineract:*:*:*:*:*:*:*:* covers all released versions, with EUVD recording the affected range as Apache Fineract 0 through 1.15.0.

Know when Fineract 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

NVD PRIMARY 8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 7.6 HIGH

Authenticated read user (PR:L) exploits network endpoint with low complexity; blind SQLi yields full data read (C:H), while ORDER BY context limits writes/outage to L.

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

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Analysis Updated
Nov 02, 2026 - 13:29 vuln.today
v2 - CVSS changed
CVSS changed
Nov 02, 2026 - 13:22 NVD
8.8 (HIGH)

Description PRE-NVD

Disclosed via oss-security. NVD scoring and full description are pending.

Executive ViewAI

Why It Matters

A high-severity SQL injection vulnerability in Apache Fineract, an open-source banking platform, could allow authenticated users with limited read permissions to extract sensitive data from the underlying database. This affects the confidentiality of financial and customer information and may undermine trust in the platform's security controls.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include restricting access to vulnerable endpoints, enforcing least privilege, and deploying WAF rules to detect and block SQL injection attempts.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Low
industry-specific open-source core-banking platform, limited production footprint
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 0.3%
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.

Related Vulnerabilities in Apache Fineract SQL Injection Flaws

View all 2
CVE-2024-23539 CRITICAL
9.8 Mar 29

Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') vulnerability in Apache Fineract.8.

CVE-2024-23538 CRITICAL
9.8 Mar 29

Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') vulnerability in Apache Fineract.8.

CVE-2018-1290 CRITICAL
9.8 Apr 20

In Apache Fineract versions 1.0.0, 0.6.0-incubating, 0.5.0-incubating, 0.4.0-incubating, Using a single quotation escape

CVE-2024-32838 CRITICAL
9.4 Feb 12

SQL Injection vulnerability in various API endpoints - offices, dashboards, etc. Rated critical severity (CVSS 9.4), thi

CVE-2025-58130 CRITICAL
9.1 Dec 12

Exposure of insufficiently protected credentials in Apache Fineract through 1.11.0 allows unauthenticated remote attacke

CVE-2026-35152 HIGH
8.8 Jul 15

SQL injection in Apache Fineract's Report Execution API (the runreports endpoint) in all versions up to and including 1.

CVE-2017-5663 HIGH
8.8 Dec 14

In Apache Fineract 0.4.0-incubating, 0.5.0-incubating, and 0.6.0-incubating, an authenticated user with client/loan/cent

CVE-2024-23537 HIGH
8.8 Mar 29

Improper Privilege Management vulnerability in Apache Fineract.8.5. Rated high severity (CVSS 8.8), this vulnerability i

CVE-2022-44635 HIGH
8.8 Nov 29

Apache Fineract allowed an authenticated user to perform remote code execution due to a path traversal vulnerability in

CVE-2018-1289 HIGH
8.8 Apr 20

In Apache Fineract versions 1.0.0, 0.6.0-incubating, 0.5.0-incubating, 0.4.0-incubating, the system exposes different RE

CVE-2025-23408 HIGH
8.5 Dec 12

Weak password requirements in Apache Fineract through 1.10.1 allow attackers to more easily compromise user accounts via

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