Skip to content

Security: omersx/segment-app

Security

SECURITY.md

Security

Supported versions

Only the latest minor release receives security patches. Older versions will not be patched; please upgrade.

Version Supported
main (development)
Latest tagged release
Older releases

Reporting a vulnerability

Please do not file a public GitHub issue for security problems.

Send a private report to the maintainers via GitHub Security Advisories for this repository. Include:

  1. A clear description of the issue and its impact.
  2. Steps to reproduce, or a proof-of-concept if you have one.
  3. The affected component (backend router, frontend route, deployment configuration, etc.) and version.
  4. Any known mitigations.

We will acknowledge receipt within 3 business days and aim to ship a fix or mitigation within 30 days for high-severity issues. We coordinate disclosure timing with the reporter.

What counts as a security issue here

  • Authentication / authorization bypasses
  • Server-side request forgery in the AI / LLM adapters
  • Path traversal in file storage
  • Cross-site scripting (XSS) in the Next.js app
  • SQL injection or unsafe SQLModel usage
  • Sensitive data exposure (logs, error pages, response bodies)
  • Insecure defaults that ship out of the box

What is not a security issue

  • The fact that the platform has no built-in authentication — that is a known and documented limitation. Add your own auth layer (reverse proxy, OIDC, …) before exposing the API publicly.
  • The per-process rate limiter not being safe for multi-replica deployments — also documented. For multi-replica, swap the storage to Redis.
  • Bugs in the LLM copilot's free-text responses. The copilot is a research aid; treat its output as untrusted user-generated text.

Hardening guarantees already in the box

See the Hardening checklist in the README for the full list. Highlights:

  • Security headers on every response (CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy)
  • Request size limit (default 2 GiB, configurable, returns 413)
  • Per-client rate limit (returns 429 with Retry-After)
  • CORS validator rejects * in production
  • Production startup validator fails fast on missing API keys
  • Non-root container user, tini PID-1, gunicorn + uvicorn workers
  • /docs and OpenAPI disabled when ENVIRONMENT=production
  • JSON access logs (no PHI by default — see disclaimer below)

Medical data disclaimer

This project is not a medical device and is not designed to handle Protected Health Information (PHI). It is the operator's responsibility to:

  • Run the platform only on networks they control and trust
  • Comply with local regulations (HIPAA, GDPR, etc.) when handling any data that may contain PHI
  • Remove or anonymize data before sharing bug reports — never paste a request body, URL, or log line containing patient data into a public issue

There aren't any published security advisories