Issues and bug reports#
Reporting bugs#
CAUTION
If you think you've found a security issue, you must report it privately using the specific process for those. Do not raise a security issue in GitHub or disclose it anywhere else in public.
If you have discovered a bug in Silverstripe CMS, we'd be glad to hear about it - well written bug reports can be half of the solution already!
Silverstripe CMS uses GitHub to manage bug reports. If you want to report a bug, you will need to create a GitHub account and log in.
WARNING
We don't provide support through GitHub issues. If you're having trouble using or developing with Silverstripe CMS but you don't think your problem is a bug, please ask for assistance in our community channels.
Before submitting a bug#
- Ask for assistance in our community channels if you're unsure if it's really a bug.
- Search for similar, existing issues. You can list all issues across modules, then add your search phrase at the start of the existing search filters.
- Is this a security issue? Stop here and follow our security reporting guidelines below instead.
- Try to reproduce your issue on a clean installation to rule out bugs in your own code.
If the issue does look like a new bug#
- Create an issue on the right module repository in GitHub
- If you are unsure, create an issue on the the "framework" repository.
- Note that documentation issues are tracked in the "developer-docs" repository.
- Describe the steps required to reproduce your issue, and the expected outcome. Example code, screenshots, and videos can help here. Be as clear as you can, but don't miss any steps out. Simply saying "create a page" is less useful than guiding us through the steps you're taking to create a page, for example.
- If the bug is too complex to reproduce with some short code samples, please reproduce it in a public repository and provide a link to the repository along with steps for setting up and reproducing the bug using that repository. A repository like this should only contain code that is required to set up and reproduce the bug.
- Describe your environment in as much detail as possible. Include the versions of relevant modules, the PHP version, webserver, and operating system used to run the project, the browser(s) you see the issue in, etc.
- If part of the bug includes an error or exception, please provide a full stack trace. Be wary that stack traces may contain sensitive information, and if that is the case, be sure to redact them prior to posting your stack trace.
- You are strongly encouraged to submit a pull request which fixes the issue. Bug reports which are accompanied with a pull request are a lot more likely to be resolved quickly.
Lastly, don't get your hopes up too high. Unless your issue is a blocker affecting a large number of users, don't expect Silverstripe developers to jump onto it right way. Your issue is a starting point where others with the same problem can collaborate with you to develop a fix. If this bug is a blocker for you, then submitting a pull request is the best way to ensure it gets fixed.
Feature requests#
WARNING
Please don't file feature requests as GitHub issues. If there's a new feature you'd like to see in Silverstripe CMS, you either need to write it yourself (and submit a pull request) or convince somebody else to write it for you. Any "wishlist" type issues without code attached can be expected to be closed as soon as they're reviewed.
In order to gain interest and feedback in your feature, we encourage you to present it to the community through the community channels.
Reporting security issues#
CAUTION
Security issues must be reported privately. Do not disclose a potential vulnerability in public before we have published a security advisory for it. This includes GitHub issues, pull requests, discussions, commit messages, forums, Slack, social media, blog posts, and conference talks. Public disclosure before a patch is available puts every Silverstripe CMS project at risk of a zero-day attack.
Silverstripe CMS follows a coordinated disclosure model. Vulnerabilities are reported privately to the security team, fixed privately, and only disclosed publicly once a patched release is available.
How to report a vulnerability#
Report potential security issues by email to security@silverstripe.org. Emails sent to that address are forwarded to a private mailing list and kick off a specific security process. This is the only channel we accept security reports through.
If you have any doubts or are unsure whether the bug you've found has security implications or not, please err on the side of caution and email us about it. We would much rather receive a report that turns out not to be a vulnerability than have a real vulnerability disclosed in public.
Your report should include enough detail for us to understand and reproduce the vulnerability, for example:
- the affected module(s) and version(s)
- a description of the vulnerability and its potential impact
- clear steps to reproduce the issue, including any proof-of-concept code, HTTP requests, or screenshots
- any suggested mitigations or fixes
- whether, and how, you would like to be credited in the security advisory
Do not open a public pull request containing a fix for a vulnerability, as the fix itself discloses the vulnerability. If you have a fix, include it in your report and the security team will apply it through our private process.
While we work on a fix#
Please keep the details of the vulnerability confidential until we publish a security advisory. In particular:
- don't share the details of the vulnerability with anyone other than the Silverstripe CMS security team
- don't publish a proof-of-concept or exploit code
- don't request a CVE or publish an advisory yourself - we request the CVE and publish the advisory when the patch is released
- let us know before discussing the vulnerability with any third party, such as another affected vendor
Once the security advisory has been published, you are free to discuss and write about the vulnerability.
When researching a vulnerability, only test against Silverstripe CMS installations you own or are explicitly authorised to test. This includes the project's own websites and infrastructure, such as silverstripe.org. Do not access, modify, or delete data that isn't yours, and do not use denial of service or social engineering attacks.
What happens next#
Review our Managing Security Issues process to understand what happens once a vulnerability is reported.
Silverstripe CMS aims to ship security patches at pre-defined intervals when those issues are not actively exploited in the wild. Review the Security patch windows section of our minor release policy for more details.
Silverstripe CMS does not operate a bug bounty program. Reports that are conditional on payment or rewards will not be accepted.
GitHub labels#
The current GitHub labels are grouped into five sections:
- Impact - What impact does this issue have, does it break a feature completely, is it just a side effect or is it trivial and not a big problem (but a bit annoying), etc. Impact is evaluated in the context of the CMS as a whole, rather than against the individual module the issue is raised on.
- Complexity - What level of technical proficiency is required to address this issue?
- Type - The type of solution required to address this issue
- Affects - The major release line this issue is relevant to - for instance
silverstripe/admin 3.0.0is on the CMS 6 major release line, so useaffects/v6. Do not add this label for unreleased major release lines, instead usetype/api-break. - RFC - The issue is a request-for-comment
| Label | Purpose |
|---|---|
| impact/critical | Website breaking issue with no workarounds. Reserved only for bugs. Bugfix's will target all supported minor release lines. |
| impact/high | Affects a major usage flow. Broken functionality with no obvious workarounds available, or an enhancement that provides a clear benefit to users |
| impact/medium | When affecting a major usage flow, for bugs there is a workaround available and for enhancements there would be a reasonable benefit to users. For a less common usage flow there is broken functionality and for enhancements there is a clear benefit to users. |
| impact/low | A nuisance but doesn't break any functionality (typos, etc). For enhancements there would only be a limited benefit to users. |
| complexity/low | Someone with limited Silverstripe CMS experience could resolve |
| complexity/medium | Someone with a good understanding of Silverstripe CMS could resolve |
| complexity/high | Only an expert with Silverstripe CMS could resolve |
| type/bug | Does not function as intended, or is inadequate for the purpose it was created for |
| type/enhancement | New feature or improvement for either users or developers |
| type/api-break | An breaking API change requiring a new major release |
| type/ux | Impact on the CMS user interface |
| type/docs | A docs change |
| type/userhelp | A userhelp documentation change |
| type/i18n | Relates to localisation/translations |
| type/other | Any issue that does not is not covered by another type label e.g. general maintainence |
| affects/* | Issue has been observed on a specific CMS release line |
| rfc/draft | RFC under discussion |
| rfc/accepted | RFC where agreement has been reached |