Skip to content

Security: la3679/sentinelflow

Security

SECURITY.md

Security policy

What this project is

SentinelFlow is an independent, educational, open-source portfolio project. It is not a bank system, not a regulatory compliance product, and not a production fraud-decision engine. It runs on synthetic data only and makes no real financial decisions.

The local stack is designed to bind to a developer's own machine. It is not a deployment target and has never been hardened for one. Do not expose it to a network you do not control, and do not put real data into it.

Supported versions

Version Supported
main Yes — fixes land here
Tagged releases Only the most recent
Anything older No

The project is pre-1.0. There is no long-term support branch, and there is no commitment to backport a fix to an earlier tag.

Reporting a vulnerability

Do not open a public issue for a security problem.

Report it privately through GitHub:

https://github.com/la3679/sentinelflow/security/advisories/new

Please include:

  • What the problem is, and which component it affects
  • How to reproduce it, ideally from a clean clone
  • What an attacker could achieve
  • The commit or tag you tested

What to expect

This is a personal project maintained by one person in their own time. It has no on-call rotation and no service-level agreement, and it would be dishonest to publish response times it cannot meet. What is committed to:

  • An acknowledgement that the report was received and read.
  • An honest assessment: accepted, not a vulnerability, or accepted but out of scope for a project of this kind — with the reasoning either way.
  • Credit in the advisory and the changelog, unless you prefer otherwise.
  • Coordinated disclosure: the advisory is published once a fix is available, or once it is clear no fix will be made.

Scope

In scope

  • Injection of any kind in apps/api or apps/scoring
  • Authorization flaws — a role reaching data or an action it should not
  • Secrets or credentials committed to the repository or written to logs, metrics labels, event payloads, or error responses
  • Unbounded list, export, or replay endpoints that allow resource exhaustion
  • Formula injection in CSV export
  • Container escapes or privilege escalation from the images this repository builds
  • Supply-chain problems in the build: an unpinned action, a missing checksum, a dependency that is not what it claims to be

Out of scope

  • Anything requiring the local stack to be exposed to the public internet. It is documented as local-only and is not built to be deployed.
  • The absence of a control the project explicitly does not implement. Role handling in the console is a user-experience affordance and is documented as never being a security boundary.
  • Findings against a demonstration credential generated by make bootstrap. Those are random per machine, git-ignored, and protect nothing real.
  • Vulnerabilities in a third-party dependency with no available fix. Report those upstream; SentinelFlow's scanners already surface fixable ones and fail the build on them.
  • Denial of service against a single-broker, single-node local stack. It is not built for availability.

Controls in place

These are the controls that exist today, not aspirations:

Control Where
Secret scanning over history gitleaks on every push and pull request, plus weekly
Push protection Enabled on the repository
Dependency review Fails a pull request on a high-severity or copyleft addition
Dependabot Weekly, every ecosystem in the monorepo
Container scanning Trivy on every image, failing on fixable HIGH and CRITICAL
Non-root containers Asserted in CI against the built image, not just declared
Pinned actions Third-party actions pinned to an immutable commit SHA
Verified build tooling The Maven Wrapper validates a recorded SHA-256
Least-privilege workflows permissions: contents: read unless a job needs more
Closed management endpoints Only health, info and prometheus; asserted by test and smoke

Please do not

  • Test against anything other than your own local instance.
  • Include real financial data, real personal data, or credentials in a report.
  • Open a public issue, a discussion, or a pull request that describes an unfixed vulnerability.

There aren't any published security advisories