Files
ipxe/SECURITY.md
T

83 lines
3.2 KiB
Markdown
Raw Normal View History

2026-08-05 23:11:48 +01:00
Security reporting
==================
Thank you for wanting to help to improve the security of iPXE!
If you believe that you have found a vulnerability in iPXE, please
first check that whatever you have found is still present in the
latest commit on the [upstream][ipxe] master branch.
Having checked that your finding is still present in iPXE, please then
check against the defined [threat model][threats] document ([source
file](src/doc/threat_model.dox)) to make sure that what you have found
is within scope and worth reporting. In particular, make sure to
check the "Exclusions" portion of that document.
Once you are sure that you have found something that is still present
in iPXE and that falls within the threat model, please verify that the
vulnerability is real. A working exploit is not required, only a
brief justification of the reasoning.
Reporting
---------
Please [submit][secadv] any human-written vulnerability report as a
GitHub Security Advisory against the upstream [iPXE][ipxe] repository.
If the vulnerability report is generated by an AI agent, then you must
instead [submit][aisecadv] the report as a GitHub Security Advisory
against the separate [iPXE AI][aipxe] repository.
Do not use public issue reports or pull requests to report suspected
vulnerabilities.
You can leave almost all fields blank in the report. All that is
required is the title and description, which should be no more than
five to ten lines of text. Verbose reports are likely to go unread,
and verbose AI-generated reports will result in the responsible user
being banned as per the "(Ab)use of AI" policy in the [contribution
guidelines](CONTRIBUTING.md).
A good example report (from a real historical example) is as follows:
> `fcoe.c:522`: received FIP descriptor lengths are not validated
>
> `fcoe_fip_parse()` stores pointers to recognised FIP descriptor
> types but never validates that descriptor length `desc_len` is
> sufficient to hold the descriptor:
> ```
> if ( ( desc_type > FIP_RESERVED ) &&
> ( desc_type < FIP_NUM_DESCRIPTOR_TYPES ) ) {
> /* Use only the first instance of a descriptor */
> if ( descs->desc[desc_type] == NULL )
> descs->desc[desc_type] = desc;
> continue;
> }
> ```
That report contains exactly the right amount of information needed to
identify and fix the problem. There is no need to report extraneous
information such as your compiler version, QEMU version, shoe size,
favourite sandwich filling, a Dockerfile, etc.
Credit
------
If the vulnerability is real, then you will receive at least a
`Reported-by` credit in the commit that fixes it. More complex
investigations (requiring substantial time and effort on your part)
will be upgraded to a `Debugged-by` credit.
Please be sure to include both your real name and email address within
the GitHub Security Advisory, so that we can give you the credit that
you deserve.
Many thanks for helping to improve iPXE for everyone!
[aipxe]: https://github.com/ipxe/aipxe
[aisecadv]: https://github.com/ipxe/aipxe/security/advisories/new
[ipxe]: https://github.com/ipxe/ipxe
[secadv]: https://github.com/ipxe/ipxe/security/advisories/new
[threats]: https://dox.ipxe.org/threat_model.html