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
1263Please 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
13411be credited as a contributor, and your contribution will reflect the MITRE
13512Credit 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