jira/apps/api/plane
sriram veeraghanta 4fc79a2d7e
fix(security): block bot user logins (#9368)
Bot service accounts (User.is_bot=True, e.g. the WORKSPACE_SEED bot) are
internal identities meant to act only through API tokens. Nothing stopped
one from being driven through the interactive login flow if its email was
known, letting a human assume a service identity.

Reject bot accounts at the shared login chokepoint,
Adapter.complete_login_or_signup(), right beside the existing
deactivated-account check. This covers every interactive provider in one
place: email/password, magic code, and all OAuth providers (Google, GitHub,
GitLab, Gitea) across both the app and space surfaces. Bot API-token access
is left untouched, since that is how bots are meant to operate.

Also add a defense-in-depth is_bot guard to InstanceAdminSignInEndpoint,
which mints its own admin session outside the chokepoint (a bot is never an
InstanceAdmin today, so this is not currently reachable, but it closes the
path regardless).

Surface the rejection with a new dedicated error code
BOT_USER_LOGIN_FORBIDDEN (5017), plumbed into the app and space frontend
error helpers as well as the shared @plane/constants and @plane/utils
packages (message map + banner-alert list) so any consumer of the shared
auth-error handler renders it correctly. The admin path reuses the existing
ADMIN_AUTHENTICATION_FAILED code so it discloses no bot-specific error.

Add contract regression tests: a bot blocked via password and via magic
code, a bot blocked at the admin sign-in endpoint, and a non-bot control
that still logs in.
2026-07-08 01:51:37 +05:30
..
analytics chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
api fix: Issues created or updated via REST API send no notifications or emails (#9307) 2026-07-08 01:51:15 +05:30
app [WEB-7892] fix(security): scope attachment PATCH/DELETE/GET by issue_id, drop created_by overwrite (GHSA-5mxw-g5mw-3v3w) (#9315) 2026-07-01 17:41:08 +05:30
authentication fix(security): block bot user logins (#9368) 2026-07-08 01:51:37 +05:30
bgtasks fix: Use APP_DOMAIN env var for bot user email (#9262) 2026-06-21 03:03:13 +05:30
db [GIT-175] fix: completed_at updation logic for work items (#9044) 2026-05-12 13:39:54 +05:30
license fix(security): block bot user logins (#9368) 2026-07-08 01:51:37 +05:30
middleware refactor: logging with retention + API token hardening (#9148) 2026-05-27 16:00:05 +05:30
seeds/data [WEB-5602] feat: new design system (#8220) 2025-12-12 20:50:14 +05:30
settings [WEB-7805] fix: remove hardcoded SECRET_KEY from community deployment manifests (#9291) 2026-06-23 17:59:19 +05:30
space [WEB-7776] fix(security): scope FileAsset queries to prevent cross-project IDOR (Cluster F) (#9288) 2026-06-30 18:26:59 +05:30
static [WEB-6420] chore: self-host social icons in project invitation email (#8718) 2026-03-05 18:17:42 +05:30
tests fix(security): block bot user logins (#9368) 2026-07-08 01:51:37 +05:30
throttles chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
utils [WEB-7787] fix(security): block deactivated user login and fix WorkspaceOwnerPermission (#9290) 2026-06-23 18:10:40 +05:30
web chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
__init__.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
asgi.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
celery.py [WEB-7447] feat: migrate CE telemetry from OTLP traces to OTLP metrics (#9156) 2026-05-28 18:34:27 +05:30
urls.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
wsgi.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30