---
id: CVE-2026-92920
title: >-
  admin3 through 3.0.0 fails to invalidate existing sessions when disabling a
  user account, allowing attackers to retain authenticated access with original
  permissions
summary: >-
  admin3 through 3.0.0 fails to invalidate existing sessions when disabling a
  user account, allowing attackers to retain authenticated access with original
  permissions. Attackers can continue using bearer tokens issued before account
  disab…
severity: medium
cvss: 5.4
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N'
cwe:
  - CWE-613
vendor: cjbi
product: admin3
affected:
  - admin3 <= 3.0.0
published: '2026-09-17'
updated: '2026-09-22'
sourceUpdated: '2026-09-22T20:53:07.383'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-92920'
references:
  - url: >-
      https://github.com/LinYuanyi1/cve-request-poc/blob/master/admin3/C06_account_lockout_bypass.py
    label: disclosure@vulncheck.com
  - url: 'https://github.com/cjbi/admin3'
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/cjbi/admin3/blob/3.0.0/admin3-server/src/main/java/tech/wetech/admin3/infra/AuthInterceptor.java
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/cjbi/admin3/blob/3.0.0/admin3-server/src/main/java/tech/wetech/admin3/infra/service/LocalSessionManager.java
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/cjbi/admin3/blob/3.0.0/admin3-server/src/main/java/tech/wetech/admin3/sys/service/UserService.java
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/admin3-through-3.0.0-session-not-invalidated-when-a-user-account-is-disabled
    label: disclosure@vulncheck.com
tags:
  - nvd
  - cve.org
  - exploit-available
epss: 0.0032
epssPercentile: 0.22372
ingestedAt: '2026-09-17T13:18:16.980Z'
exploitAvailable: true
ssvc:
  exploitation: poc
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-09-17T14:07:30.474121Z'
---

## Overview

admin3 through 3.0.0 fails to invalidate existing sessions when disabling a user account, allowing attackers to retain authenticated access with original permissions. Attackers can continue using bearer tokens issued before account disablement to authenticate requests, as the AuthInterceptor never re-validates the user's locked status and session expiry resets on each request.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
