Description
APITable through 1.13.0-beta.1 annotates both getUserHistories and closePausedUserAccount in InternalUserController with requiredLogin = false. ResourceInterceptor honours that annotation by returning before any session or API key is validated, and the nginx gateway shipped with the product proxies every /api request to the backend server, so both endpoints are reachable by any unauthenticated client that can reach the gateway. An attacker can POST to /api/v1/internal/getUserHistories to enumerate the accounts sitting in the 30-day cooling-off period that follows a deletion request, then POST to /api/v1/internal/users/{userId}/close for each one. The closure path clears the account's email address, phone number and nickname, cancels its space subscriptions, removes its space memberships and deletes its OAuth bindings, so the cooling-off window that exists to let a user reverse a deletion request is bypassed and the account cannot be recovered.
Published: 2026-08-27
Score: 8.8 High
EPSS: < 1% Very Low
KEV: No
Impact: Unauthorized account closure bypassing deletion recovery window
Action: Immediate Upgrade
AI Analysis

Impact

The vulnerability arises from missing authentication checks on two internal endpoints in the Apitable backend: one that lists users still in the 30‑day cooling‑off period after a deletion request, and another that permanently removes an account and its associated services. Because the API gateway proxies all /api traffic, any client that can reach the gateway can call these endpoints without being authenticated, enumerate eligible accounts, and immediately close each one. The closure operation clears the account’s email, phone number, nickname, cancels space subscriptions, removes space memberships and deletes OAuth bindings, thereby preventing the user from recovering the account within the intended window.

Affected Systems

Apitable, version 1.13.0‑beta.1 and earlier, is affected. No other vendor or product versions are listed as vulnerable.

Risk and Exploitability

The CVSS score of 8.8 indicates high severity. EPSS data is not available, and the vulnerability is not yet listed in CISA’s KEV catalog. Based on the description, the likely attack vector is through the exposed internal API routes via the nginx gateway, requiring only network access to the gateway and no prior authentication. An attacker can enumerate accounts in the cooling‑off period and then immediately close them, effectively bypassing the deletion recovery mechanism.

Generated by OpenCVE AI on August 27, 2026 at 18:19 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a newer Apitable release that removes the authentication bypass for internal account closure
  • If a patch cannot be applied immediately, block or remove the /api/v1/internal routes from the nginx gateway or otherwise deny unauthenticated requests to those endpoints
  • Disable or restrict internal user closure functionality via configuration or code changes until a patch is available

Generated by OpenCVE AI on August 27, 2026 at 18:19 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 01 Sep 2026 14:45:00 +0000

Type Values Removed Values Added
First Time appeared Apitable
Apitable apitable
Vendors & Products Apitable
Apitable apitable

Fri, 28 Aug 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 27 Aug 2026 16:45:00 +0000

Type Values Removed Values Added
Description APITable through 1.13.0-beta.1 annotates both getUserHistories and closePausedUserAccount in InternalUserController with requiredLogin = false. ResourceInterceptor honours that annotation by returning before any session or API key is validated, and the nginx gateway shipped with the product proxies every /api request to the backend server, so both endpoints are reachable by any unauthenticated client that can reach the gateway. An attacker can POST to /api/v1/internal/getUserHistories to enumerate the accounts sitting in the 30-day cooling-off period that follows a deletion request, then POST to /api/v1/internal/users/{userId}/close for each one. The closure path clears the account's email address, phone number and nickname, cancels its space subscriptions, removes its space memberships and deletes its OAuth bindings, so the cooling-off window that exists to let a user reverse a deletion request is bypassed and the account cannot be recovered.
Title APITable through 1.13.0-beta.1 Missing Authentication on the Internal Account Closure Endpoints
Weaknesses CWE-306
References
Metrics cvssV3_1

{'score': 8.2, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N'}

cvssV4_0

{'score': 8.8, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Apitable Apitable
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-28T16:00:16.121Z

Reserved: 2026-08-25T23:15:39.156Z

Link: CVE-2026-80208

cve-icon Vulnrichment

Updated: 2026-08-27T18:38:53.477Z

cve-icon NVD

Status : Received

Published: 2026-08-27T17:20:50.273

Modified: 2026-08-28T20:20:08.423

Link: CVE-2026-80208

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-01T14:23:07Z

Weaknesses
  • CWE-306

    Missing Authentication for Critical Function