---
id: "CVE-2026-111656"
kind: "vulnerability"
aliases: ["CVE-2026-111656"]
title: "ChatWiki: authenticated users read and reorder other tenants' form filters"
severity: "medium"
cvss: 5.4
epss: null
exploited: false
status: "open"
category: "ai-tooling"
products: [{"name": "chatwiki", "fixed": [], "affected": "<= 2.9.6", "ecosystem": "vendor"}]
ecosystems: []
tags: ["ai-tooling", "chatwiki", "cwe-639", "idor", "multi-tenant", "self-hosted"]
not_affected_if: ["auth-required", "single-tenant-deployment"]
published_at: "2026-10-16T18:17:46+00:00"
first_seen_at: "2026-10-23T21:57:13+00:00"
updated_at: "2026-10-25T04:19:19+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-111656", "first_seen_at": "2026-10-23T21:57:13+00:00"}, {"source": "analyst", "url": null, "first_seen_at": "2026-10-25T04:19:19+00:00"}]
---

# ChatWiki: authenticated users read and reorder other tenants' form filters

ChatWiki through 2.9.6 does not check ownership of form_id values, so a logged-in user can supply another tenant's form_id. An attacker can read that tenant's filter rules and overwrite its filter sort order.

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

## Affected

- vendor:chatwiki affected <= 2.9.6 fixed ?

## How to check

Self-hosted ChatWiki <= 2.9.6 (multi-tenant): in internal/app/chatwiki/business/manage/form.go, GetFormFilterList, GetFormFilterInfo and UpdateFormFilterSort have no admin_user_id check on the form lookup. Test with a user from tenant A: call GET /manage/getFormFilterList?form_id=<tenant B form id>. If it returns filters instead of a no_data error, you are exposed. Check access logs for sequential form_id values on getFormFilterList, getFormFilterInfo and updateFormFilterSort.

## Fix

No fixed release known: 2.9.6 is the latest release and is affected. Watch github.com/zhimaAi/chatwiki/releases for a later version. Until then, restrict accounts to trusted users, or block /manage/updateFormFilterSort, getFormFilterList and getFormFilterInfo at the reverse proxy if you don't use form filters.

## Timeline

- 2026-10-23T21:57:13+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-111656
- 2026-10-25T04:19:19+00:00 analyst — Read VulnCheck advisory and researcher's write-up (hackmd, source review of v2.9.5; CVE says through 2.9.6). No vendor advisory or fixed release found: v2.9.6 (16 Oct) is latest and listed affected. No exploitation or PoC found; researcher's requests were unexecuted. Nothing marked verified.

## Documents

- [advisory] VulnCheck: ChatWiki through 2.9.6 Cross-Tenant IDOR via Form Filter Management Endpoints https://www.vulncheck.com/advisories/chatwiki-through-2.9.6-cross-tenant-idor-via-form-filter-management-endpoints
- [describes] hieuPenguinnn: ChatWiki form filter handlers skip tenant ownership check https://hackmd.io/@hieuPenguinnn/chatwiki-form-filter-cross-tenant-idor
- [mentions] zhimaAi/chatwiki releases (latest v2.9.6, 16 Oct) https://github.com/zhimaAi/chatwiki/releases

## From the sources

ChatWiki through 2.9.6 contains an insecure direct object reference vulnerability that allows authenticated users to access another tenant's form filters by supplying arbitrary form_id values. Attackers can send sequential form_id values to getFormFilterList, getFormFilterInfo and updateFormFilterSort to read filter rules and overwrite another tenant's filter sort order.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
