Ctrl K
ComunidadGuías…

SECURITY.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Security Policy

## Supported versions

Releases are cut as repo-level tags (`v0.1.0`, `v0.2.0`, `v0.3.0`, …), but
only the latest release and the `main` branch are supported — fixes land on
`main` and ride the next tag; nothing is backported. Please report issues
against the latest commit on `main`.

## Before you run an event

If you are standing this kit up rather than reporting an issue with it, walk
the [organizer security checklist](https://owasp.github.io/owasp-ctf-in-a-box/security-checklist.html)
first. Every item on it is a deployment decision the kit cannot make for you,
and most have no visible symptom when they are wrong.

## Reporting a vulnerability

Please use **GitHub's private vulnerability reporting** for this repository
rather than opening a public issue:

1. Go to the repository's **Security** tab.
2. Click **Report a vulnerability**.
3. Describe the issue, the affected component, and steps to reproduce.

This opens a private advisory visible only to maintainers, so the report
stays confidential while a fix is worked out.

Do not report vulnerabilities through public GitHub issues, discussions, or
pull requests.

## What to report here

**OWASP CTF in a Box is a deliberately-vulnerable-by-design *training*
kit.** The target applications it hosts (Juice Shop, DVWA, WebGoat, Security Shepherd,
VulnerableApp, VAmPI, and any future module targets) are **intentionally
vulnerable** — finding and patching their flaws is the point of the exercise.
Please do **not** report vulnerabilities in the target apps themselves here;
those belong with the respective upstream projects.

What we do want reports on is the **kit's own infrastructure** — the code
that operates the event, not the practice targets it hosts:

- `scorer/` — the judge and leaderboard scoring engine
- `sync/` — the poll scoring transport
- `apps/web/` — the contestant web app (auth, teams, admin panel)
- `setup/` — `ctf-setup.sh` and event provisioning
- `deploy/` — the optional cloud deploy modules (IAM roles, security groups,
  secrets handling, task definitions and deploy scripts)
- `patches/` — the reference patches shipped for the targets
- `scripts/`, `.github/workflows/` — CI, smoke tests, and automation

Examples of what's in scope: authentication or authorization bypass in the
web app, a way to forge or replay a score submission, a way to escalate
outside your own team's data, secrets handling issues, or a supply-chain
concern in the kit's own build/CI pipeline.

## Known properties, stated so they are not re-reported

- **Jeopardy-module flags and quiz answer keys are stored in plaintext** in
  Redis (`ctf:classic:flag`, `ctf:quiz:key`) and are **readable by every
  `/admin` user** — the admin edit forms return them verbatim, deliberately,
  so an organizer can fix a typo'd flag mid-event. Contestant-facing code
  paths never read either key. The secrecy boundary is `/admin` membership
  and Redis access, not encryption; organizers should grant admin
  accordingly. A bypass that exposes these keys to a **non-admin** is very
  much in scope.
- **The scorer runs contestant-submitted code** inside sandboxed containers —
  judging submitted code is the product. An escape from that sandbox is in
  scope; the fact that it executes submissions is not.

## Response expectations

We aim to:

- Acknowledge a new report within **5 business days**.
- Provide an initial assessment (confirmed, needs more info, or out of scope)
  within **10 business days**.
- Keep the reporter updated as a fix is developed, and credit them in the
  advisory unless they ask to remain anonymous.

This is a community-maintained project run on a best-effort basis; response
times may vary.