2.1 KiB
2.1 KiB
| id | status | status_updated | status_note | component | severity | timestamp | last_seen | occurrences | files | tags | related | gitea_issue | gitea_synced_status | gitea_synced_hash | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| bug-1962 | open | 2026-10-10 | newly logged | apiserver | security | 2026-10-10T10:16:07Z | 2026-10-10T10:16:07Z | 1 |
|
|
393 | open | 8d6ac245ba9a |
bug-1962: apiserver JWT excluded-path check drops the last character of every entry, matching unintended paths
Description
Observed: (source reading; follow-up of the 2026-10-10 P0 fixes (bug-1936..1957))
ValidateHandler.isExcludedPath (middleware/validatehandler.go:52-61) trims the last character of every excluded entry, not only a trailing *, and matches by prefix: /ping matches any path starting with /pin, and /swagger/*any never matches.
Expected: Exact entries match exactly; only entries ending in * match by prefix.
Impact: Security: paths that merely share a prefix with an excluded entry skip JWT validation.
Found by: follow-up of the 2026-10-10 P0 fixes (bug-1936..1957)
Environment
- OS: no /etc/os-release; Docker container; NixOS kernel; kernel Linux 6.18.33 x86_64
- libc: glibc 2.42-47 (interpreter /nix/store/wb6rhpznjfczwlwx23zmdrrw74bayxw4-glibc-2.42-47/lib/ld-linux-x86-64.so.2)
- Toolchain: gcc (GCC) 15.2.0, meson 1.9.1
- Build: asan (xce.build)
- Code: scheduler-framework @ 19be145d-dirty
- Deployment: any (found by source reading; confirmed by the RED test of the fix)
Reproduction
- Request
/pinX(or any route sharing the prefix) without a token: JWT validation is skipped.
- Frequency: deterministic (by code reading; confirmed by the RED test of the fix)
- Evidence: the code sites quoted in Description; no logs kept.
Root cause
TODO: required for fixed/partial
Fix
TODO: required for fixed/partial
Verification
- Test: TODO: name + file; RED before the fix, GREEN after
- Suites: TODO: suite results and build profile
- Live: TODO: soak/deploy run, or n/a and why
References
- Related: none