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.

