PHP RFC: Security Issue Classification
- Version: 1.0
- Date: 2016-11-10
- Authors: Release Managers
- Status: Accepted
- First Published at: http://wiki.php.net/rfc/security-classification
Currently any issue that is in theory exploitable with security implications must be treated as a security issue, even if the exploit requires nonsensical settings for a production environment, or some other special circumstances. This means that only a few people are able to handle the issue, it means that the fix needs to be merged out of band (from a separate secure repository), this results in considerable potential for further mistakes, and exerts disproportionate pressure on a few contributors.
In short, all the security issues can be split into three groups with high, medium and low severity. The essential idea of such classification definitions is to allow different handling depending on the issue severity. In practice, the majority of security issues are purely theoretical, or quite hard to trigger. As the risk for such issues is quite low, they can be handled directly in the mainstream repository, thus allowing for quality improvement through the usual open QA process.
The suggested security issue classifications are based on the real life cases in PHP, and are in first place directed to standardize the use cases in PHP. Nevertheless, the best practices taking place in various other OSS projects were taken into account. Still, a classification amendment could possibly be required during the course of further work. In that case, the new vote on the modified classification will need to be held.
In the light of the security issue handling discussion, the ratification of the reformed classification is the first step in the direction. We are hoping this classification improves the quality, opens the door for more contributors, reduces the workload on a select few contributors, and eases our reform of the process that handles genuine security issues.
Please take the time to read the classification document if you haven't already, and consider your vote seriously, it is better for everyone if mistakes and inconsistencies (that are likely to be a problem) are dealt with now.
Voting opened November 11th for one week, closing November 18th:
There is no change to the language, however, since this is an important issue, we are going to require a super majority of 2/3+1.
Should the proposal fail to get the required votes, the classification will be reviewed and reformed before the vote is opened again: Consider this notice that there may not be two weeks between the first and subsequent vote.