[audit] Security, code quality, missing tests, error handling #3

Open
opened 2026-03-22 16:41:18 +00:00 by Virgil · 1 comment
Member

Full audit:

  1. Security: SQL injection, XSS, CSRF bypass, mass assignment, path traversal, insecure deserialization
  2. Code quality: missing strict_types, missing type hints, missing return types
  3. Missing tests: modules/actions without Pest test coverage
  4. Error handling: swallowed exceptions, bare try/catch, missing validation
  5. UK English: American spellings (color→colour, organization→organisation, center→centre)
  6. Coding standards: PSR-12 compliance, Action pattern usage, BelongsToWorkspace scoping
  7. Missing SPDX licence headers (EUPL-1.2)

Report all findings with severity and file:line. Do NOT fix.

Full audit: 1. Security: SQL injection, XSS, CSRF bypass, mass assignment, path traversal, insecure deserialization 2. Code quality: missing strict_types, missing type hints, missing return types 3. Missing tests: modules/actions without Pest test coverage 4. Error handling: swallowed exceptions, bare try/catch, missing validation 5. UK English: American spellings (color→colour, organization→organisation, center→centre) 6. Coding standards: PSR-12 compliance, Action pattern usage, BelongsToWorkspace scoping 7. Missing SPDX licence headers (EUPL-1.2) Report all findings with severity and file:line. Do NOT fix.
Author
Member

Codex Audit Findings

HIGH (2)

  1. Cross-workspace server actions bypass isolation — listing scoped with ownedByCurrentWorkspace() but mutating actions use unscoped findOrFail($id). Hades user can read/update/test/delete servers across workspace boundaries (Servers.php:67/:115/:142/:156)
  2. Read-only SQL guard bypassed — allowlist only checks first token, permits EXPLAIN ANALYZE DELETE/UPDATE on PostgreSQL (Database.php:36/:73/:134)
## Codex Audit Findings ### HIGH (2) 1. Cross-workspace server actions bypass isolation — listing scoped with ownedByCurrentWorkspace() but mutating actions use unscoped findOrFail($id). Hades user can read/update/test/delete servers across workspace boundaries (Servers.php:67/:115/:142/:156) 2. Read-only SQL guard bypassed — allowlist only checks first token, permits EXPLAIN ANALYZE DELETE/UPDATE on PostgreSQL (Database.php:36/:73/:134)
Sign in to join this conversation.
No description provided.