Skip to content

Commit 7c354b7

Browse files
committed
Move most of this to https://github.com/php/policies as per Policies RFC
1 parent 3a5edcc commit 7c354b7

File tree

1 file changed

+4
-155
lines changed

1 file changed

+4
-155
lines changed

SECURITY.md

+4-155
Original file line numberDiff line numberDiff line change
@@ -1,127 +1,4 @@
1-
# Vulnerability Disclosure Policy
2-
3-
*This document was originally published at <https://wiki.php.net/security>.*
4-
5-
## Introduction
6-
7-
For the sake of our users, we classify some of the issues found in PHP
8-
as "security issues". This document is intended to explain which issues
9-
are thus classified, how we handle those issues and how to report them.
10-
11-
## Classification
12-
13-
We classify as security issues bugs that:
14-
15-
- allow users to execute unauthorized actions
16-
- cross security boundaries
17-
- access data that is not intended to be accessible
18-
- severely impact accessibility or performance of the system
19-
20-
The purpose of this classification is to alert the users and the
21-
developers about the bugs that need to be prioritized in their handling.
22-
23-
We define three categories of security issues, by their severity,
24-
described below. Please note that this categorization is in many aspects
25-
subjective, so it ultimately relies on the judgement of the PHP
26-
developers.
27-
28-
### High severity
29-
30-
These issues may allow:
31-
32-
- third party to compromise any, or most installations of PHP
33-
- the execution of arbitrary code
34-
- disabling the system completely
35-
- access to any file a local PHP user can access.
36-
37-
The issue can be triggered on any, or on most typical installations, and
38-
does not require exotic and non-recommended settings to be triggered.
39-
40-
This category also includes issues that can be triggered in code or
41-
functions known to be frequently used (session, json, mysql, openssl,
42-
etc.) during typical usage, and that require settings or configurations
43-
that may not be strictly the best practice, but are commonly used.
44-
45-
This category also may include issues that require special code or code
46-
pattern if such code or pattern is present in many popular libraries.
47-
48-
This kind of issues usually requires a CVE report.
49-
50-
### Medium severity
51-
52-
These issues may have the same potential to compromise an installation
53-
as a high severity issue, but may also require:
54-
55-
- an extension that is not commonly used
56-
- a particular type of configuration that is used only in narrow
57-
specific circumstances
58-
- relies on old version of a third-party library being used
59-
- code, or patterns of code, that are known to be used infrequently
60-
- code that is very old, or extremely uncommon (and so is used
61-
infrequently)
62-
63-
This kind of issues usually will have a CVE number, unless the required
64-
configuration is particularly exotic to the point it's not practically
65-
usable.
66-
67-
### Low severity
68-
69-
This issue allows theoretical compromise of security, but practical
70-
attack is usually impossible or extremely hard due to common practices
71-
or limitations that are virtually always present or imposed.
72-
73-
This also includes problems with configuration, documentation, and other
74-
non-code parts of the PHP project that may mislead users, or cause them
75-
to make their system, or their code less secure.
76-
77-
Issues that can trigger unauthorized actions that do not seem to be
78-
useful for any practical attack can also be categorized as low severity.
79-
80-
Security issues, that are present only in unstable branches, belong to
81-
this category, too. Any branch that has no stable release, is per se not
82-
intended for the production use.
83-
84-
Low severity issues usually do not need to have CVE and may, at the
85-
discretion of the PHP developers, be disclosed publicly before the fix
86-
is released or available.
87-
88-
### Not a security issue
89-
90-
We do not classify as a security issue any issue that:
91-
92-
- requires invocation of specific code, which may be valid but is
93-
obviously malicious
94-
- requires invocation of functions with specific arguments, which may
95-
be valid but are obviously malicious
96-
- requires specific actions to be performed on the server, which are
97-
not commonly performed, or are not commonly permissible for the user
98-
(uid) executing PHP
99-
- requires privileges superior to that of the user (uid) executing PHP
100-
- requires the use of debugging facilities - ex. xdebug, var_dump
101-
- requires the use of settings not recommended for production - ex.
102-
error reporting to output
103-
- requires the use of non-standard environment variables - ex.
104-
USE_ZEND_ALLOC
105-
- requires the use of non-standard builds - ex. obscure embedded
106-
platform, not commonly used compiler
107-
- requires the use of code or settings known to be insecure
108-
- requires the use of FFI
109-
- requires an open_basedir bypass
110-
111-
## Handling issues
112-
113-
High and medium severity fixes are merged into a private security repository,
114-
and then merged to the main repository before the release is tagged.
115-
116-
Low severity fixes are merged immediately after the fix is available and
117-
handled like all regular bugs are handled consequently. However, release
118-
managers may choose to pull those fixes into the RC branch after the
119-
branch is created, and also backport them into a security-only release
120-
branch.
121-
122-
## FAQ
123-
124-
### How do I report a security issue?
1+
# Reporting Security Issues
1252

1263
Please report security vulnerabilities on GitHub at:
1274
<https://github.com/php/php-src/security/advisories/new>
@@ -134,35 +11,7 @@ Vulnerability reports remain private until published. When published, you will
13411
be credited as a contributor, and your contribution will reflect the MITRE
13512
Credit System.
13613

137-
### What do you consider a responsible disclosure?
138-
139-
Please report the issue as described above. Please communicate with
140-
the developers about when the fix will be released - usually it's the
141-
next monthly release after the bug was reported. Some issues can take
142-
longer. After the fix is released (releases usually happen on Thursdays)
143-
please feel free to disclose the issue as you see fit.
144-
145-
### What if I think it's a security issue but the developers disagree?
146-
147-
Please read the above and try to explain to us why it fits the
148-
description.
149-
150-
### What if the developers still don't think it's a security issue?
151-
152-
We'll have to agree to disagree.
153-
154-
### The bug I submitted was classified as "not a security issue." You don't believe it's real?
155-
156-
It has nothing to do with the bug being real or its importance to
157-
you. It just means it does not fit our specific definitions for issues
158-
that we will handle in a special way. We fix a lot of non-security bugs
159-
and pull requests are always welcome.
160-
161-
### But you classified bug #424242 as a security issue, but not this one?!
162-
163-
Each bug usually has its aspects, if a short discussion does not
164-
yield agreement we'd rather do more fixing and less arguing.
165-
166-
### Do you pay bounties for security issues?
14+
# Vulnerability Policy
16715

168-
PHP is a volunteer project. We have no money, thus we can't pay bounties.
16+
Our full policy is described at
17+
https://github.com/php/policies/blob/main/security-classification.rst

0 commit comments

Comments
 (0)