Skip to content

docs: add anti-patterns guide - #4

Merged
Taure merged 1 commit into
mainfrom
docs/anti-patterns
May 20, 2026
Merged

docs: add anti-patterns guide#4
Taure merged 1 commit into
mainfrom
docs/anti-patterns

Conversation

@Taure

@Taure Taure commented May 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds guides/anti-patterns.md — 18 common audit-log mistakes, each with the wrong pattern, why it's wrong, and the right pattern.

Coverage

  1. Logging payloads instead of references
  2. Free-for-all metadata keys
  3. Using audit as debug logging
  4. Auditing every read
  5. Hoping the redactor catches secrets
  6. Audit-after-act on destructive operations
  7. Querying without a time window
  8. Reusing one action across domains
  9. Omitting actor for system work
  10. Audit-then-fire-and-forget destructive chain
  11. outcome => failure for every retry
  12. Atom keys in metadata
  13. Using audit_events as the analytics warehouse
  14. Bumping schema_version on every change
  15. Mixing logs and audit events in the same destination
  16. Treating overflow telemetry as an event bus
  17. Querying via metadata for things that should be top-level
  18. Forgetting the nova_audit_kura:hardening_sql/0 step

Test plan

  • CI green
  • ex_doc picks up the new guide in navigation

18 common audit-log mistakes with right/wrong code: payload vs reference
storage, metadata schema discipline, audit-as-debug-logging, auditing
every read, redactor over-reliance, audit ordering around destructive
ops, unbounded queries, action namespacing, missing actors for system
work, retry-loop logging, atom keys in metadata, audit table as
analytics warehouse, schema_version discipline, log destination mixing,
overflow as event bus, metadata vs target field misuse, missing
hardening.
@github-actions

Copy link
Copy Markdown
ℹ️ 15 OTP CVEs auto-ignored (already fixed in running version)

These CVEs are patched in the installed OTP version but NVD data
has not been updated to reflect this. They are excluded from the
scan via an auto-generated .trivyignore.

CVE Details
CVE-2026-32147 Fixed in 28.4.3, running 28.5 — Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') in SFTP chroot
CVE-2026-28808 Fixed in 28.4.2, running 28.5 — ScriptAlias CGI targets bypass directory auth (mod_auth vs mod_cgi path mismatch)
CVE-2026-32144 Fixed in 28.4.2, running 28.5 — OCSP designated-responder authorization bypass — missing signature verification (RFC 6960 §4.2.2.2)
CVE-2026-28810 Fixed in 28.4.2, running 28.5 — Predictable DNS Transaction IDs Enable Cache Poisoning in Built-in Resolver
CVE-2026-23943 Fixed in 28.4.1, running 28.5 — Pre-auth SSH DoS via unbounded zlib inflate
CVE-2026-23942 Fixed in 28.4.1, running 28.5 — SFTP root escape via component-agnostic prefix check in ssh_sftpd
CVE-2026-23941 Fixed in 28.4.1, running 28.5 — Request smuggling via first-wins Content-Length parsing in inets httpd
CVE-2026-21620 Fixed in 28.3.2, running 28.5 — TFTP Path Traversal
CVE-2016-1000107 Fixed in 28.0.4, running 28.5 — Httpd CGI Scripts Environment Variable Pollution AKA "httpoxy"
CVE-2025-58050 Fixed in 28.0.3, running 28.5 — Buffer Read Overflow on Regular Expressions with (*scs:) and (*ACCEPT)
CVE-2025-48038 Fixed in 28.0.3, running 28.5 — SSH Unverified File Handles can Cause Excessive Use of System Resources
CVE-2025-48039 Fixed in 28.0.3, running 28.5 — SSH Unverified Paths can Cause Excessive Use of System Resources
CVE-2025-48040 Fixed in 28.0.3, running 28.5 — SSH Malicious Key Exchange Messages may Lead to Excessive Resource Consumption
CVE-2025-48041 Fixed in 28.0.3, running 28.5 — SSH_FXP_OPENDIR may Lead to Exhaustion of File Handles
CVE-2025-4748 Fixed in 28.0.1, running 28.5 — Absolute Path in Zip Module

@Taure
Taure merged commit 4af7c1f into main May 20, 2026
16 checks passed
@Taure
Taure deleted the docs/anti-patterns branch May 20, 2026 06:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant