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
125
2
126
3
Please report security vulnerabilities on GitHub at:
127
4
< https://github.com/php/php-src/security/advisories/new >
@@ -134,35 +11,7 @@ Vulnerability reports remain private until published. When published, you will
134
11
be credited as a contributor, and your contribution will reflect the MITRE
135
12
Credit System.
136
13
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
167
15
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