---
id: "CVE-2026-81815"
kind: "vulnerability"
aliases: ["CVE-2026-81815"]
title: "Apache OFBiz: SQL injection lets unauthenticated users read arbitrary database rows"
severity: "unknown"
cvss: null
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["apache-ofbiz", "java", "mariadb", "mysql", "package"]
not_affected_if: ["derby-datasource", "patched-24.09.08", "postgresql-datasource"]
published_at: "2026-11-05T15:17:26+00:00"
first_seen_at: "2026-11-05T15:39:22+00:00"
updated_at: "2026-11-05T15:40:50+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-81815", "first_seen_at": "2026-11-05T15:39:22+00:00"}]
exploit_sources: []
---

# Apache OFBiz: SQL injection lets unauthenticated users read arbitrary database rows

Apache OFBiz 24.09 before 24.09.08 on MySQL or MariaDB has an SQL injection in its generic find service when an ignore-case find request is sent. A remote unauthenticated attacker can read arbitrary rows from the queried entity.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Confirm the OFBiz version in use is `24.09.x` and below `24.09.08`
- Check the configured entity datasource is MySQL or MariaDB rather than Derby or PostgreSQL (the sources say Derby and PostgreSQL are not affected)

## Fix

- Apache OFBiz: upgrade to `24.09.08`

## Timeline

- 2026-11-05T15:39:22+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-81815

## From the sources

SQL Injection in the entity engine's generic performFind service in Apache OFBiz 24.09 before 24.09.08 on MySQL/MariaDB-backed deployments allows a remote unauthenticated attacker to disclose arbitrary rows from the queried entity by submitting an ignore-case find request (e.g. _ic=Y) with a crafted value, causing SqlJdbcUtil.addValueSingle to inline the EntityFunction-wrapped value directly into the SQL text using ANSI-only single-quote doubling instead of binding it as a parameter, which is insufficient on MySQL/MariaDB because those dialects also honor backslash escapes, letting a backslash-terminated payload break out of the string literal and turn the WHERE clause into a tautology. The default Derby datasource and PostgreSQL are not affected because they do not interpret backslash as an escape character in this context. Users are recommended to upgrade to version 24.09.08, which fixes this issue.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
