case 4727 - DB ID and licence to staff only
server-info returns the DB ID and licence, and global-biz-setting/client the DB ID and licensee, only to Service and NotService users, as the About form already shows them; customer contacts and subcontractors get empty values. F29 fixed, AyaNova half of F39 done (4727 step 3). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -226,7 +226,7 @@ take the next free number; a fixed or accepted finding keeps its ID and changes
|
||||
| F11 | Low | **fixed in case 4727** | API root page shows licensee, version, licence terms (and DB ID when unlicensed) to anyone |
|
||||
| F12 | Low | confirmed | Password hashing: PBKDF2-SHA512 with 10,000 iterations |
|
||||
| F25 | Low | confirmed (code) | Attachment and export gaps: upload stored before the rights check, "attached by" can be set to anyone, exports not tied to their user |
|
||||
| F29 | Low | confirmed (code) | `server-info` gives every login, customer contacts included, the server DB ID and full licence details |
|
||||
| F29 | Low | **fixed in case 4727** | `server-info` gives every login, customer contacts included, the server DB ID and full licence details |
|
||||
| F35 | Low | confirmed | No security headers from the server itself (self-hosted), no CSP anywhere, CORS any origin, public Swagger UI, download keys in URLs |
|
||||
| F38 | Low | confirmed (code) | Linux hardening: no systemd sandboxing, service user can replace program files, desktop runs as root, unused Docker files with a fixed database password |
|
||||
| F39 | Low | confirmed (code) | Licence fetch is one-shot by DB ID, and the DB ID is shown anonymously while unlicensed: someone else can take a new key first |
|
||||
@@ -638,6 +638,7 @@ server DB ID and the licence as JSON, to any login including customer contacts.
|
||||
page needs some of it; contacts need little or none. Whether the DB ID matters to Sockeye
|
||||
(licence fetch, trial requests) is checked in pass 11. Fix: return the DB ID and licence only
|
||||
to staff, or only to ops and admin roles.
|
||||
**Fixed in case 4727, step 3 (2026-10-24):** `server-info` returns the DB ID and licence, and `global-biz-setting/client` the DB ID and licensee, only to Service and NotService users (SuperUser is NotService), the same rule the About form already used to show them; customer contacts and subcontractors get empty values. Test `ApiRoute.DbIdAndLicenceForStaffOnly` (a contact received the DB ID on the old code).
|
||||
|
||||
### Pass 7: routes without a role check that were found OK
|
||||
|
||||
@@ -821,6 +822,7 @@ not secret: the anonymous API root page shows it while a server is unlicensed (F
|
||||
first; the real server then never receives it (a support case; the key only works for that DB
|
||||
ID, but it names the licensee and features). Fix: let the same DB ID fetch its key again (the key
|
||||
is bound to the DB ID, so one-shot adds nothing), and stop showing the DB ID anonymously.
|
||||
**AyaNova half fixed in case 4727, steps 2 and 3 (2026-10-24):** the DB ID is no longer shown anonymously (API root page) nor to customer contacts and subcontractors (`server-info`, client settings). The Sockeye half (repeatable fetch) is the later two-sided case with the server fingerprint.
|
||||
|
||||
### F40 Trial request routes (pass 11, from code)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user