Before reporting a bug make sure nobody else already reported it. The easiest way to do this is to search through the syzkaller mailing list for key frames present in the kernel stack traces.
Please report found bugs to the Linux kernel maintainers.
To find out the list of maintainers responsible for a particular kernel subsystem, use the get_maintainer.pl script: ./scripts/get_maintainer.pl -f guilty_file.c
. Please add [email protected]
to the CC list.
Make sure to mention the exact kernel branch and revision where the bug occured.
Many kernel mailing lists reject HTML formatted messages, so use the plain text mode when sending the report.
Bugs without reproducers are way less likely to be triaged and fixed.
If the bug is reproducible, include the reproducer (C source if possible, otherwise a syzkaller program) and the .config
you used for your kernel.
If the reprocucer is available only in the form of a syzkaller program, please link the instructions on how to execute them in your report.
Check that the reproducer works if you run it manually.
Syzkaller tries to simplify the reproducer, but the result might not be ideal.
You can try to simplify or annotate the reproducer manually, that greatly helps kernel developers to figure out why the bug occurs.
If you want to get extra credit, you can try to undestand the bug and develop a fix yourself. If you can't figure out the right fix, but have some understanding of the bug, please add your thoughts and conclusions to the report, that will save some time for kernel developers.
If you believe that a found bug poses potential security threat, consider following the instructions below. Note, that these instructions are a work-in-progress and based on my current undestanding of the disclosure proccess.
The three main mailing lists for reporting and disclosing Linux kernel security issues are [email protected]
, [email protected]
and [email protected]
.
The guidelines for these lists can be found here:
[email protected]
- https://www.kernel.org/doc/html/latest/admin-guide/security-bugs.html[email protected]
- http://oss-security.openwall.org/wiki/mailing-lists/distros[email protected]
- http://oss-security.openwall.org/wiki/mailing-lists/oss-security
To report minor security bugs (such as local DOS or local info leak):
- Report the bug publicly to kernel developers as described above and wait until a fix is committed. Alternatively, you can develop and send a fix yourself.
- Request a CVE from MITRE through the web form. Describe the bug details and add a link to the fix (from
patchwork.kernel.org
,git.kernel.org
orgithub.com
) in the request. - Once a CVE is assigned, send the bug details, the CVE number and a link to the fix to
[email protected]
.
To report major security bugs (such as LPE, remote DOS, remote info leak or RCE):
- Understand the bug and develop a patch with a fix if possible. Optionally develop a proof-of-concept exploit.
- Notify
[email protected]
:- Describe vulnerability details, include the proposed patch and the exploit.
- Ask for 7 days of embargo (actually 7 days + whatever time it takes to develop a proper patch).
- Work on the patch together with the
[email protected]
members.
- Notify
[email protected]
:- Describe vulnerability details, include the proposed patch and the exploit.
- Ask them to assign a CVE number.
- Ask for 7 days of embargo.
- Wait 7 days for linux distros to apply the patch.
- Send the fix upstream:
- Mention the CVE number in the commit message.
- Mention syzkaller in the commit message.
- Wait 3 days for the patch to be committed to mainline and backported to stable kernels.
- Ask
[email protected]
to make the CVE description public. - Notify
[email protected]
:- Describe vulnerability details, include a link to the committed patch.
- Wait 1-3 days for people to update their kernels.
- Publish the exploit on
[email protected]
.
A good example of an LPE announcement on [email protected]
can be found here.