|
1 | 1 | # Security Policy |
2 | 2 |
|
3 | | -## PHP upstream support (php.net) |
| 3 | +`serversideup/php` is a **downstream distributor**. We package PHP, NGINX, Apache, Composer, the base operating system, and related tooling into production-ready Docker images. We do not maintain those upstream projects ourselves — this policy explains what belongs here and what belongs upstream. |
4 | 4 |
|
5 | | -The table below is the **official PHP project** support phase for each branch—not a guarantee that every branch appears in our image matrix. Use it to decide when to upgrade. |
| 5 | +## Reporting a vulnerability |
| 6 | + |
| 7 | +For anything in scope below, please use **[GitHub's private vulnerability reporting](https://github.com/serversideup/docker-php/security/advisories/new)** to open a confidential report. Please include: |
| 8 | + |
| 9 | +- The affected image tag and digest (e.g. `serversideup/php:8.4-fpm-nginx@sha256:…`) |
| 10 | +- Steps to reproduce and the impact |
| 11 | +- Any suggested mitigation, if you have one |
| 12 | + |
| 13 | +Do not disclose details publicly (issues, discussions, social media) before a fix is released. |
| 14 | + |
| 15 | +## What is in scope |
| 16 | + |
| 17 | +Vulnerabilities in what *we* author and ship: |
| 18 | + |
| 19 | +- Entrypoint scripts, healthchecks, helper scripts, and S6 service definitions in `src/` |
| 20 | +- Default configs we ship for PHP-FPM, NGINX, Apache, and FrankenPHP |
| 21 | +- Insecure defaults: ports, file permissions, the `www-data` user model, SSL defaults |
| 22 | +- Build pipeline integrity (GitHub Actions workflows, tag assembly, image publishing) |
| 23 | +- Documentation that materially misleads users about a security-relevant setting |
6 | 24 |
|
7 | | -| Branch | Phase on php.net | |
| 25 | +## What is out of scope — report to the upstream project |
| 26 | + |
| 27 | +Vulnerabilities in software we package but do not maintain belong with the upstream project, not here: |
| 28 | + |
| 29 | +| Component | Where to report | |
8 | 30 | | --- | --- | |
9 | | -| 8.5 | Active support (bug + security fixes) | |
10 | | -| 8.4 | Active support (bug + security fixes) | |
11 | | -| 8.3 | Security fixes only | |
12 | | -| 8.2 | Security fixes only | |
13 | | -| 8.1 | End of life — upgrade as soon as practical | |
14 | | -| 8.0 | End of life — upgrade as soon as practical | |
15 | | -| 7.4 | End of life — upgrade as soon as practical | |
16 | | -| ≤ 7.3 | End of life — not built in this project’s current matrix | |
| 31 | +| PHP itself | [The PHP project](https://www.php.net/) (security mailing list: `security@php.net`) | |
| 32 | +| NGINX | [NGINX security advisories](https://nginx.org/en/security_advisories.html) | |
| 33 | +| Apache HTTP Server | [Apache HTTPD security](https://httpd.apache.org/security_report.html) | |
| 34 | +| Composer | [composer/composer on GitHub](https://github.com/composer/composer/security) | |
| 35 | +| Debian / Alpine base packages | The respective distribution security teams | |
| 36 | + |
| 37 | +If an upstream CVE is already publicly disclosed, you don't need to file with us — we pick up upstream patches on our **weekly rebuilds (Tuesday 08:00 UTC)** for floating tags. See [How our releases work](https://serversideup.net/open-source/docker-php/docs/getting-started/upgrade-guide#how-our-releases-work) for the full cadence and which tags receive rebuilds. |
17 | 38 |
|
18 | | -**References** |
| 39 | +## Component lifecycle references |
19 | 40 |
|
20 | | -- [Supported Versions](https://www.php.net/supported-versions.php) — active and security support dates for current branches |
21 | | -- [End-of-life branches](https://www.php.net/eol.php) — historical EOL dates |
| 41 | +Our images bundle third-party software, each with its own support window. Before reporting an issue (or pinning to a particular version), confirm the component is still receiving security fixes from its maintainers: |
22 | 42 |
|
23 | | -We may still ship images for **EOL** PHP versions to help migrate legacy apps; prefer a [currently supported branch](https://www.php.net/supported-versions.php) for production. |
| 43 | +| Component | Lifecycle reference | |
| 44 | +| --- | --- | |
| 45 | +| PHP | [endoflife.date/php](https://endoflife.date/php) | |
| 46 | +| Debian | [endoflife.date/debian](https://endoflife.date/debian) | |
| 47 | +| Alpine Linux | [endoflife.date/alpine-linux](https://endoflife.date/alpine-linux) | |
| 48 | +| NGINX | [endoflife.date/nginx](https://endoflife.date/nginx) | |
| 49 | +| Apache HTTP Server | [endoflife.date/apache](https://endoflife.date/apache) | |
| 50 | +| Composer | [endoflife.date/composer](https://endoflife.date/composer) | |
24 | 51 |
|
25 | | ---- |
| 52 | +We continue to publish images for end-of-life PHP versions and operating system bases so legacy applications have a path into containers — but those bases will not receive new upstream security fixes. Use them as a stepping stone, not a destination. See [Choosing an image — Operating Systems](https://serversideup.net/open-source/docker-php/docs/getting-started/choosing-an-image#operating-systems) for the trade-off. |
26 | 53 |
|
27 | | -## Reporting a vulnerability |
| 54 | +## How updates flow |
| 55 | + |
| 56 | +For the full release model, how floating vs. version-pinned tags behave, and how to apply your own patches to a pinned image, see the [Upgrade Guide](https://serversideup.net/open-source/docker-php/docs/getting-started/upgrade-guide). |
28 | 57 |
|
29 | | -Follow [our responsible disclosure policy](https://www.notion.so/Responsible-Disclosure-Policy-421a6a3be1714d388ebbadba7eebbdc8). |
| 58 | +For the EOL trade-off when picking an operating system base, see [Choosing an image — Operating Systems](https://serversideup.net/open-source/docker-php/docs/getting-started/choosing-an-image#operating-systems). |
0 commit comments