xarmian
d2ee26cccd
fix(auth): platform administration refuses an API token (BUG-3361)
...
BREAKING for anyone driving /api/v1/admin/* or admin account creation with
a personal access token: those now answer 403 session_required. Use a
`pad auth login` CLI session, or on self-host set PAD_ADMIN_API_TOKENS=allow.
An admin's PAT carried full platform authority. codex reproduced the chain
during BUG-3336's review: register an account with a chosen password,
promote it to admin, sign in as it, and reset any account's password. A
leaked admin token therefore escalated to interactive sessions for any
account.
- refuseAPITokenForAdmin guards the whole /api/v1/admin route group, so an
admin route added later is refused by construction.
TestBUG3361_EveryAdminRouteRefusesAnAdminPAT walks the router to hold it.
- handleRegister refuses admin-create signup with an API token.
- PAD_ADMIN_API_TOKENS=allow is the self-host escape hatch. It is read at
startup, logs a WARN, and is never honoured in cloud mode. Documented in
docs/deployment.md, Security.
- A browser session and a CLI session (padsess_) are unaffected. So is the
Pad Cloud sidecar, which authenticates with the cloud secret, never a
PAT. /audit-log already refused a PAT (BUG-3334).
Claude-Session: https://claude.ai/code/session_01H63zaWhkb5pAafx2WGjrVC
2026-10-02 21:50:05 +00:00
..
2026-09-08 19:40:37 -04:00
2026-09-30 11:03:07 -04:00
2026-09-06 13:36:22 -04:00
2026-09-06 13:36:22 -04:00
2026-09-23 09:05:05 -04:00
2026-09-23 09:05:05 -04:00
2026-09-25 21:48:30 -04:00
2026-08-17 08:16:02 -04:00
2026-07-30 20:15:00 +00:00
2026-07-31 02:35:53 +00:00
2026-09-26 02:21:40 -04:00
2026-05-06 08:40:11 -04:00
2026-05-06 13:27:12 -04:00
2026-06-15 14:44:58 -04:00
2026-09-24 15:53:06 -04:00
2026-09-24 13:12:32 -04:00
2026-09-23 20:24:40 -04:00
2026-09-23 19:37:58 -04:00
2026-09-25 02:03:55 -04:00
2026-09-25 01:36:38 -04:00
2026-09-23 16:23:06 -04:00
2026-09-25 07:10:26 -04:00
2026-09-25 21:48:30 -04:00
2026-09-23 06:01:08 -04:00
2026-09-25 05:13:05 -04:00
2026-09-25 05:13:05 -04:00
2026-09-25 16:24:50 -04:00
2026-09-22 08:08:15 -04:00
2026-09-21 21:03:05 -04:00
2026-09-13 22:38:15 -04:00
2026-09-13 21:14:57 -04:00
2026-09-25 03:46:16 -04:00
2026-09-14 09:03:24 -04:00
2026-09-22 13:54:24 -04:00
2026-09-26 09:47:46 -04:00
2026-09-21 22:50:56 -04:00
2026-09-23 03:09:25 -04:00
2026-09-23 16:23:06 -04:00
2026-09-23 20:24:40 -04:00
2026-09-25 14:22:09 -04:00
2026-09-25 14:22:09 -04:00
2026-09-25 18:23:31 -04:00
2026-09-27 05:40:55 -04:00
2026-09-27 05:40:55 -04:00
2026-09-27 05:40:55 -04:00
2026-09-27 13:08:42 -04:00
2026-09-27 18:51:51 -04:00
2026-09-28 11:04:51 -04:00
2026-09-30 09:10:41 -04:00
2026-09-30 02:20:23 -04:00
2026-10-01 23:56:37 -04:00
2026-10-02 11:18:07 -04:00
2026-10-02 12:29:03 -04:00
2026-10-02 14:06:35 -04:00
2026-10-02 13:15:31 -04:00
2026-10-02 15:43:57 -04:00
2026-10-02 12:41:02 -04:00
2026-10-02 13:20:09 -04:00
2026-10-02 14:20:58 -04:00
2026-10-02 13:52:04 -04:00
2026-10-02 13:34:22 -04:00
2026-10-02 14:56:36 -04:00
2026-10-02 16:06:11 -04:00
2026-10-02 16:28:58 -04:00
2026-10-02 17:01:54 -04:00
2026-10-02 21:50:05 +00:00
2026-05-18 00:43:46 -04:00
2026-05-18 00:43:46 -04:00
2026-09-22 13:54:24 -04:00
2026-08-15 19:18:55 -04:00
2026-08-19 08:13:29 -04:00
2026-08-19 08:13:29 -04:00
2026-09-26 09:47:51 -04:00
2026-09-26 09:47:51 -04:00
2026-09-26 13:37:34 -04:00
2026-10-02 03:34:43 -04:00
2026-09-05 19:01:57 -04:00
2026-09-21 23:55:54 -04:00
2026-09-22 07:34:33 -04:00
2026-09-22 07:34:33 -04:00
2026-09-22 07:34:33 -04:00
2026-09-29 10:42:26 -04:00
2026-04-25 11:35:19 -04:00
2026-08-25 22:40:58 -04:00
2026-09-23 07:03:36 -04:00
2026-09-23 07:03:36 -04:00
2026-08-20 23:33:26 -04:00
2026-08-20 23:33:26 -04:00
2026-04-25 11:35:19 -04:00
2026-07-10 23:56:59 -04:00
2026-09-29 19:22:17 -04:00
2026-07-05 20:47:30 -04:00
2026-07-04 14:38:01 -04:00
2026-07-05 20:47:30 -04:00
2026-10-02 15:43:57 -04:00
2026-08-25 14:28:29 -04:00
2026-09-23 09:05:05 -04:00
2026-07-15 01:30:12 -04:00
2026-04-28 12:26:39 -04:00
2026-04-28 12:26:39 -04:00
2026-09-21 17:58:27 -04:00
2026-09-29 12:46:03 -04:00
2026-09-29 19:29:17 -04:00
2026-07-01 17:44:43 -04:00
2026-09-29 10:14:38 -04:00
2026-10-02 15:43:57 -04:00
2026-09-22 07:34:33 -04:00
2026-09-27 18:51:51 -04:00
2026-09-24 03:44:11 -04:00
2026-09-26 09:47:51 -04:00
2026-09-22 08:08:15 -04:00
2026-09-05 10:07:44 -04:00
2026-09-29 10:42:26 -04:00
2026-09-21 18:52:28 -04:00
2026-09-28 19:25:55 -04:00
2026-09-28 19:25:55 -04:00
2026-09-22 20:54:46 -04:00
2026-09-24 02:37:59 -04:00
2026-09-23 04:35:58 -04:00
2026-08-02 00:55:20 +00:00
2026-08-08 20:37:39 +00:00
2026-04-29 15:41:12 -04:00
2026-09-08 13:30:42 -04:00
2026-08-30 21:30:19 -04:00
2026-08-01 23:27:34 +00:00
2026-08-19 08:13:29 -04:00
2026-09-25 05:13:05 -04:00
2026-08-01 23:05:26 +00:00
2026-09-25 05:13:05 -04:00
2026-09-25 05:13:05 -04:00
2026-08-02 00:55:20 +00:00
2026-09-08 19:40:37 -04:00
2026-09-30 16:49:25 -04:00
2026-10-02 14:06:35 -04:00
2026-09-26 15:27:50 -04:00
2026-05-06 13:27:12 -04:00
2026-05-06 08:40:11 -04:00
2026-06-22 20:58:50 -04:00
2026-04-21 19:33:47 -04:00
2026-04-21 20:52:03 -04:00
2026-09-26 14:25:10 -04:00
2026-04-22 12:21:34 -04:00
2026-09-29 18:15:34 -04:00
2026-10-02 21:50:05 +00:00
2026-05-27 10:37:30 -04:00
2026-06-27 21:42:52 -05:00
2026-07-08 13:09:26 -04:00
2026-09-25 04:25:42 -04:00
2026-09-30 22:50:45 -04:00
2026-09-28 19:25:55 -04:00
2026-09-23 12:52:46 -04:00
2026-04-25 11:53:31 -04:00
2026-10-02 03:34:43 -04:00
2026-09-29 14:13:03 -04:00
2026-09-29 14:13:03 -04:00
2026-04-22 09:27:45 -04:00
2026-10-02 15:43:57 -04:00
2026-09-15 12:50:53 -04:00
2026-09-15 12:50:53 -04:00
2026-09-11 19:34:44 -04:00
2026-10-02 15:43:57 -04:00
2026-09-10 12:37:49 -04:00
2026-09-24 04:51:57 -04:00
2026-09-08 16:46:28 -04:00
2026-09-27 05:40:55 -04:00
2026-09-10 16:59:58 -04:00
2026-09-24 16:42:14 -04:00
2026-10-02 16:06:11 -04:00
2026-07-03 18:12:35 -04:00
2026-08-20 13:26:05 -04:00
2026-09-05 20:43:43 -04:00
2026-08-24 08:24:34 -04:00
2026-09-08 14:51:21 -04:00
2026-07-03 03:27:04 -04:00
2026-10-02 11:18:07 -04:00
2026-09-15 16:36:26 -04:00
2026-07-03 18:24:36 -04:00
2026-05-30 12:38:57 -04:00
2026-09-30 00:41:20 -04:00
2026-10-02 13:52:04 -04:00
2026-09-25 03:46:16 -04:00
2026-09-29 14:13:03 -04:00
2026-09-29 14:13:03 -04:00
2026-09-13 18:34:16 -04:00
2026-05-21 13:08:02 -04:00
2026-07-11 09:38:14 -04:00
2026-09-24 11:24:33 -04:00
2026-09-21 20:46:41 -04:00
2026-09-21 20:46:41 -04:00
2026-05-14 22:10:12 -04:00
2026-08-27 22:45:27 -04:00
2026-10-02 13:15:31 -04:00
2026-09-10 16:59:58 -04:00
2026-09-06 13:36:22 -04:00
2026-09-10 16:59:58 -04:00
2026-09-23 21:52:18 -04:00
2026-07-21 09:43:05 -04:00
2026-07-14 23:43:19 -04:00
2026-09-10 16:59:58 -04:00
2026-04-28 12:26:39 -04:00
2026-09-10 16:59:58 -04:00
2026-10-02 16:06:11 -04:00
2026-04-29 18:30:43 -04:00
2026-10-02 13:20:09 -04:00
2026-07-04 13:54:08 -04:00
2026-07-21 09:43:05 -04:00
2026-10-02 14:56:36 -04:00
2026-07-03 14:40:54 -04:00
2026-06-08 18:13:10 -04:00
2026-09-24 03:44:26 -04:00
2026-09-24 05:49:44 -04:00
2026-08-17 14:26:09 -04:00
2026-09-15 14:12:20 -04:00
2026-09-15 15:40:13 -04:00
2026-09-25 05:13:05 -04:00
2026-10-02 16:28:58 -04:00
2026-09-14 01:45:30 -04:00
2026-05-15 00:36:41 -04:00
2026-05-15 00:36:41 -04:00
2026-09-28 15:46:57 -04:00
2026-09-21 17:58:27 -04:00
2026-09-28 15:01:24 -04:00
2026-07-03 23:47:06 -04:00
2026-10-02 14:20:58 -04:00
2026-10-02 14:20:58 -04:00
2026-04-28 12:26:39 -04:00
2026-08-20 23:33:26 -04:00
2026-08-17 19:02:53 -04:00
2026-09-26 12:57:38 -04:00
2026-09-26 23:25:18 -04:00
2026-08-24 08:24:34 -04:00
2026-09-30 10:02:41 -04:00
2026-09-06 13:36:22 -04:00
2026-09-11 18:03:09 -04:00
2026-09-23 07:46:45 -04:00
2026-08-13 16:21:10 -04:00
2026-09-22 00:42:02 -04:00
2026-09-26 21:28:37 -04:00
2026-08-24 08:24:34 -04:00
2026-09-29 10:42:26 -04:00
2026-09-26 12:57:38 -04:00
2026-09-11 18:03:09 -04:00
2026-09-10 08:54:41 -04:00
2026-10-02 01:01:15 -04:00
2026-09-13 10:51:03 -04:00
2026-08-02 04:54:31 +00:00
2026-09-14 01:45:30 -04:00
2026-07-31 14:43:40 +00:00
2026-08-24 08:24:34 -04:00
2026-09-25 18:23:31 -04:00
2026-09-13 16:01:12 -04:00
2026-09-25 18:23:31 -04:00
2026-08-24 08:24:34 -04:00
2026-09-29 10:42:26 -04:00
2026-09-03 12:49:33 +00:00
2026-07-08 16:47:34 -04:00
2026-09-23 14:35:41 -04:00
2026-05-16 10:15:59 -04:00
2026-09-23 00:02:43 -04:00
2026-05-30 19:57:45 -04:00
2026-05-27 13:21:57 -04:00
2026-10-02 01:01:15 -04:00
2026-08-17 03:42:08 -04:00
2026-08-25 20:16:18 -04:00
2026-09-23 10:48:28 -04:00
2026-09-11 18:03:09 -04:00
2026-09-23 16:23:06 -04:00
2026-09-25 14:22:09 -04:00
2026-07-13 22:46:55 -04:00
2026-10-02 01:01:15 -04:00
2026-10-02 14:06:35 -04:00
2026-05-21 16:59:57 -04:00
2026-05-21 16:59:57 -04:00
2026-05-02 22:56:10 -04:00
2026-09-25 05:13:05 -04:00
2026-10-02 17:01:54 -04:00
2026-06-24 22:45:32 -04:00
2026-10-02 04:08:52 -04:00
2026-09-26 14:25:10 -04:00
2026-05-05 08:52:05 -04:00
2026-07-04 14:39:33 -04:00
2026-10-02 17:01:54 -04:00
2026-09-28 15:46:57 -04:00
2026-09-29 14:13:03 -04:00
2026-09-29 14:13:03 -04:00
2026-09-29 14:13:03 -04:00
2026-07-04 11:33:18 -04:00
2026-10-01 22:25:50 -04:00
2026-10-02 03:34:43 -04:00
2026-10-02 04:08:52 -04:00
2026-09-29 10:14:38 -04:00
2026-09-29 10:14:38 -04:00
2026-05-21 13:08:02 -04:00
2026-09-22 13:42:37 -04:00
2026-09-22 11:28:57 -04:00
2026-07-08 15:28:21 -04:00
2026-09-25 04:25:42 -04:00
2026-08-18 10:44:50 -04:00
2026-09-23 20:24:40 -04:00
2026-08-24 09:45:48 -04:00
2026-08-24 09:45:48 -04:00
2026-08-24 09:45:48 -04:00
2026-09-23 01:37:54 -04:00
2026-08-24 09:45:48 -04:00
2026-08-21 20:43:20 -04:00
2026-09-23 01:37:54 -04:00
2026-08-24 09:45:48 -04:00
2026-09-26 15:27:50 -04:00
2026-07-03 15:31:17 -04:00
2026-09-07 17:32:36 -04:00
2026-09-11 00:57:47 -04:00
2026-09-04 11:36:11 -04:00
2026-09-04 11:36:11 -04:00
2026-05-29 08:24:05 -04:00
2026-08-30 21:30:19 -04:00
2026-09-17 11:02:02 -04:00
2026-09-27 18:51:51 -04:00
2026-09-26 12:20:58 -04:00
2026-10-02 11:18:07 -04:00
2026-09-10 16:59:58 -04:00
2026-08-21 20:43:20 -04:00
2026-08-18 12:26:00 -04:00
2026-09-29 20:35:28 -04:00
2026-09-29 20:35:28 -04:00
2026-07-10 23:48:59 -04:00
2026-07-13 22:46:55 -04:00
2026-10-02 14:56:36 -04:00
2026-05-02 21:31:48 -04:00
2026-09-23 07:03:36 -04:00
2026-08-02 01:50:34 +00:00
2026-04-29 17:44:12 -04:00
2026-08-02 01:50:34 +00:00
2026-09-23 01:37:54 -04:00
2026-09-10 16:47:31 -04:00
2026-05-29 23:43:02 -04:00
2026-09-30 14:58:39 -04:00
2026-08-24 18:09:02 -04:00
2026-08-25 16:11:47 -04:00
2026-09-01 21:16:17 +00:00
2026-09-23 16:23:06 -04:00
2026-09-23 16:23:06 -04:00
2026-09-30 14:58:39 -04:00
2026-09-06 22:02:05 -04:00
2026-10-02 13:34:22 -04:00
2026-08-24 08:24:34 -04:00
2026-04-21 22:53:27 -04:00
2026-04-28 12:26:39 -04:00
2026-10-02 14:56:36 -04:00
2026-04-28 12:26:39 -04:00
2026-05-16 10:15:59 -04:00
2026-07-13 22:46:55 -04:00
2026-07-13 22:46:55 -04:00
2026-10-02 17:01:54 -04:00
2026-08-24 09:45:48 -04:00
2026-09-23 01:37:54 -04:00
2026-08-24 09:45:48 -04:00
2026-09-23 01:37:54 -04:00
2026-09-10 16:59:58 -04:00
2026-09-28 10:05:51 -04:00
2026-08-21 20:43:20 -04:00
2026-08-17 01:59:02 -04:00
2026-08-30 21:30:19 -04:00
2026-08-30 21:30:19 -04:00
2026-09-26 14:25:10 -04:00
2026-07-26 23:56:34 +00:00
2026-10-02 13:20:09 -04:00
2026-06-24 22:28:34 -04:00
2026-10-01 22:25:50 -04:00
2026-09-16 15:36:49 -04:00
2026-09-29 10:14:38 -04:00
2026-08-26 13:23:56 -04:00
2026-09-24 01:02:00 -04:00
2026-09-02 15:15:11 +00:00
2026-10-02 16:06:11 -04:00
2026-09-08 14:51:21 -04:00
2026-09-06 23:36:58 -04:00
2026-09-28 18:33:09 -04:00
2026-09-28 18:33:09 -04:00
2026-09-26 14:25:10 -04:00
2026-10-02 16:06:11 -04:00
2026-09-25 16:24:50 -04:00
2026-09-29 10:42:26 -04:00
2026-09-24 03:44:26 -04:00
2026-09-14 01:45:30 -04:00
2026-09-10 16:59:58 -04:00
2026-10-02 14:06:35 -04:00
2026-09-10 21:06:40 -04:00
2026-07-30 12:20:38 +00:00
2026-09-10 16:59:58 -04:00
2026-07-03 10:15:49 -04:00
2026-09-30 11:03:07 -04:00
2026-10-01 20:49:44 -04:00
2026-10-01 20:49:44 -04:00
2026-09-29 16:41:24 -04:00
2026-09-29 15:25:44 -04:00
2026-09-29 16:38:00 -04:00
2026-07-03 12:17:03 -04:00
2026-05-27 10:09:30 -04:00
2026-05-07 20:01:34 -04:00
2026-10-02 16:06:11 -04:00
2026-07-04 11:33:18 -04:00
2026-10-02 14:06:35 -04:00
2026-09-26 02:21:40 -04:00
2026-09-26 02:21:40 -04:00
2026-05-06 08:40:11 -04:00
2026-05-06 08:40:11 -04:00
2026-09-25 05:13:05 -04:00
2026-09-29 14:13:03 -04:00
2026-05-18 00:03:20 -04:00
2026-10-02 04:37:12 -04:00
2026-09-29 16:38:00 -04:00
2026-09-29 16:38:00 -04:00
2026-09-23 06:01:08 -04:00
2026-05-03 17:40:18 -04:00
2026-09-09 20:35:44 -04:00
2026-04-28 12:26:39 -04:00
2026-09-23 06:01:08 -04:00
2026-08-27 10:35:39 -04:00
2026-09-29 19:22:17 -04:00
2026-09-29 20:15:52 -04:00
2026-07-11 14:30:32 -04:00
2026-09-29 20:15:52 -04:00
2026-09-30 23:19:41 -04:00
2026-09-30 23:19:41 -04:00
2026-08-27 10:35:39 -04:00
2026-09-25 21:48:30 -04:00
2026-04-25 11:35:19 -04:00
2026-04-21 23:59:54 -04:00
2026-04-28 12:26:39 -04:00
2026-07-10 23:32:22 -04:00
2026-09-17 16:13:36 -04:00
2026-07-04 02:06:58 -04:00
2026-09-24 15:53:06 -04:00
2026-09-08 15:49:05 -04:00
2026-09-28 15:46:57 -04:00
2026-09-01 12:06:08 +00:00
2026-09-25 16:24:50 -04:00
2026-10-01 22:25:50 -04:00
2026-10-01 22:25:50 -04:00
2026-09-29 19:29:17 -04:00
2026-09-29 19:29:17 -04:00
2026-08-25 22:40:58 -04:00
2026-05-09 18:19:33 -04:00
2026-07-08 11:58:41 -04:00
2026-08-17 09:03:44 -04:00
2026-08-17 14:26:09 -04:00
2026-08-20 23:33:26 -04:00
2026-09-02 12:33:08 +00:00
2026-09-02 12:05:57 +00:00
2026-09-04 11:36:11 -04:00
2026-09-04 11:36:11 -04:00
2026-04-22 12:21:34 -04:00
2026-04-22 12:21:34 -04:00
2026-09-30 06:50:13 -04:00
2026-09-30 14:58:39 -04:00
2026-09-30 14:58:39 -04:00
2026-09-30 06:50:13 -04:00
2026-09-29 11:28:17 -04:00
2026-09-24 11:24:33 -04:00
2026-08-21 20:43:20 -04:00
2026-08-15 08:22:09 -04:00
2026-08-22 03:43:15 +00:00
2026-08-22 05:09:29 +00:00
2026-09-11 00:57:47 -04:00
2026-09-15 00:50:12 -04:00
2026-09-13 16:01:12 -04:00
2026-09-14 11:49:35 -04:00
2026-09-24 01:01:52 -04:00
2026-09-24 01:01:52 -04:00
2026-09-13 16:01:12 -04:00
2026-09-10 21:06:40 -04:00
2026-09-24 01:01:52 -04:00
2026-09-14 11:49:35 -04:00
2026-09-24 01:01:52 -04:00
2026-09-04 11:36:11 -04:00
2026-09-23 16:23:06 -04:00
2026-09-27 18:51:51 -04:00
2026-09-22 13:42:37 -04:00
2026-10-02 21:50:05 +00:00
2026-08-17 01:59:02 -04:00
2026-08-17 01:59:02 -04:00
2026-08-22 01:41:31 +00:00
2026-08-24 09:45:48 -04:00
2026-08-24 09:45:48 -04:00
2026-08-22 05:09:29 +00:00
2026-08-24 09:45:48 -04:00
2026-08-24 09:45:48 -04:00
2026-08-24 09:45:48 -04:00
2026-08-24 09:45:48 -04:00
2026-08-24 09:45:48 -04:00
2026-09-26 20:13:56 -04:00
2026-08-17 05:19:25 -04:00
2026-09-10 16:59:58 -04:00
2026-09-24 04:51:57 -04:00
2026-09-10 16:47:31 -04:00
2026-08-23 02:32:43 +00:00
2026-08-23 02:16:35 +00:00
2026-09-30 16:49:25 -04:00
2026-10-02 01:01:15 -04:00
2026-10-02 02:06:09 -04:00
2026-10-02 03:34:43 -04:00
2026-04-29 14:35:49 -04:00
2026-04-29 14:35:49 -04:00
2026-07-08 11:58:41 -04:00
2026-09-29 19:29:17 -04:00
2026-05-02 13:33:53 -04:00
2026-07-14 20:37:03 -04:00
2026-09-27 12:01:55 -04:00
2026-04-08 20:30:39 +00:00
2026-04-10 23:12:59 +00:00
2026-09-26 16:54:20 -04:00
2026-09-26 16:54:20 -04:00
2026-10-02 15:43:57 -04:00
2026-09-28 10:05:51 -04:00
2026-10-02 16:06:11 -04:00
2026-09-30 09:10:41 -04:00
2026-09-30 09:10:41 -04:00
2026-07-05 22:23:12 -04:00
2026-09-28 10:05:51 -04:00