/

CVE-2026-111706

Severity:

HIGH RISK

(7.5)

Missing Authentication (CWE-306) in 99AI Chat Export

CVE-2026-111706

Deferred

Vulnerability type

Category:

Missing Authentication

CWE:

CWE-306

Impact:

Unauthorized disclosure of sensitive user and conversation data

Severity:

HIGH RISK

(7.5)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

99AI through version 4.3.0 exposes the chat-log export endpoint without requiring authentication. An unauthenticated attacker may download XLSX files containing users' usernames, email addresses, prompts, and AI-generated answers by submitting controlled export parameters.

99AI through version 4.3.0 exposes the chat-log export endpoint without requiring authentication. An unauthenticated attacker may download XLSX files containing users' usernames, email addresses, prompts, and AI-generated answers by submitting controlled export parameters.

Affected context

The vulnerability occurs in the 99AI chat-log export functionality at POST /api/chatLog/exportExcel when the route can be reached without an authenticated session or equivalent authorization check. Deployments that expose this API to untrusted clients may allow broad access to exported records, including account identifiers, email addresses, prompts, and AI responses.

The vulnerability occurs in the 99AI chat-log export functionality at POST /api/chatLog/exportExcel when the route can be reached without an authenticated session or equivalent authorization check. Deployments that expose this API to untrusted clients may allow broad access to exported records, including account identifiers, email addresses, prompts, and AI responses.

Exploit preconditions

  • Attack surface: The HTTP POST /api/chatLog/exportExcel API route - Required access: Network access to the route; no valid account is required - Trigger point: A request to the chat-log Excel export operation - Attacker control: Page, size, and optionally email parameters can influence

the records included in the export

  • Why exploitation is possible: The route does not sufficiently verify

authentication before processing and returning chat-log data

  • Attack surface: The HTTP POST /api/chatLog/exportExcel API route - Required access: Network access to the route; no valid account is required - Trigger point: A request to the chat-log Excel export operation - Attacker control: Page, size, and optionally email parameters can influence

the records included in the export

  • Why exploitation is possible: The route does not sufficiently verify

authentication before processing and returning chat-log data

Why this happens

The underlying flaw is an authorization boundary failure in which a data-export operation is reachable without first establishing the caller's identity. This maps to CWE-306, Missing Authentication for Critical Function, because the application performs a sensitive record retrieval and export without requiring authentication. Parameter handling may further expand the quantity or scope of data returned, but the primary defect is the absent authentication control.

The underlying flaw is an authorization boundary failure in which a data-export operation is reachable without first establishing the caller's identity. This maps to CWE-306, Missing Authentication for Critical Function, because the application performs a sensitive record retrieval and export without requiring authentication. Parameter handling may further expand the quantity or scope of data returned, but the primary defect is the absent authentication control.

Potential impact

  • An attacker may download chat logs belonging to multiple users.
  • Usernames and email addresses could be exposed.
  • Prompts and AI-generated answers could be disclosed.
  • Exposed conversations could enable privacy violations, phishing, or targeted attacks.
  • The organization could face regulatory, contractual, and reputational consequences.
  • An attacker may download chat logs belonging to multiple users.
  • Usernames and email addresses could be exposed.
  • Prompts and AI-generated answers could be disclosed.
  • Exposed conversations could enable privacy violations, phishing, or targeted attacks.
  • The organization could face regulatory, contractual, and reputational consequences.

General mitigation guidance

Mitigation generally focuses on enforcing authentication and authorization before any export operation is performed. Sensitive exports should use secure-by-default access controls, verify that the requester is permitted to access each selected record, and avoid trusting client-supplied identifiers or filters as proof of authorization. Export scope should be minimized, response data should be limited to necessary fields, and administrative or service accounts should operate with only the privileges required for their duties. Rate limits, audit logging, and controlled handling of bulk exports can provide additional protection.

Mitigation generally focuses on enforcing authentication and authorization before any export operation is performed. Sensitive exports should use secure-by-default access controls, verify that the requester is permitted to access each selected record, and avoid trusting client-supplied identifiers or filters as proof of authorization. Export scope should be minimized, response data should be limited to necessary fields, and administrative or service accounts should operate with only the privileges required for their duties. Rate limits, audit logging, and controlled handling of bulk exports can provide additional protection.

How teams detect issues like this

Detection can include static analysis and code review checks for sensitive routes that return user data without authentication middleware or explicit authorization decisions. Reviewers should inspect export controllers, route-level policies, parameter-based record selection, and tests covering anonymous requests. Runtime monitoring can alert on unauthenticated requests to export endpoints, unusually large page or size values, repeated downloads, and access to records outside the requester's permitted scope. API security policies and automated review tools can help enforce authentication coverage for data-export operations.

Detection can include static analysis and code review checks for sensitive routes that return user data without authentication middleware or explicit authorization decisions. Reviewers should inspect export controllers, route-level policies, parameter-based record selection, and tests covering anonymous requests. Runtime monitoring can alert on unauthenticated requests to export endpoints, unusually large page or size values, repeated downloads, and access to records outside the requester's permitted scope. API security policies and automated review tools can help enforce authentication coverage for data-export operations.

Sources

SourceLink
github.comgithub.com/vastxie/99AI
github.comgithub.com/vastxie/99AI/blob/v4.3.0/service/src/modules/chatLog/chatLog.controller.ts#L47-L52
github.comgithub.com/vastxie/99AI/blob/v4.3.0/service/src/modules/chatLog/chatLog.service.ts#L104-L155
hackmd.iohackmd.io/@hieuPenguinnn/99ai-chatlog-unauth-export-and-idor
vulncheck.comvulncheck.com/advisories/99ai-through-4.3.0-unauthenticated-information-disclosure-via-chatlog-exportexcel

Frequently asked

questions

Yes. If the export route is network-accessible and lacks effective authentication, an attacker may invoke it remotely without signing in.

The attacker generally needs only network access to the API endpoint. A valid account or session should not be necessary under the described condition.

Require authentication before processing the export request, then apply server-side authorization checks to every record and export scope.

Maintain centralized authentication and authorization middleware, test sensitive endpoints with anonymous and cross-user cases, minimize exported fields, and monitor bulk-data access.

Yes. If the export route is network-accessible and lacks effective authentication, an attacker may invoke it remotely without signing in.

The attacker generally needs only network access to the API endpoint. A valid account or session should not be necessary under the described condition.

Require authentication before processing the export request, then apply server-side authorization checks to every record and export scope.

Maintain centralized authentication and authorization middleware, test sensitive endpoints with anonymous and cross-user cases, minimize exported fields, and monitor bulk-data access.

Find out what's already
exploitable in your codebase.