Skip to content

Bug Bounty Policy Changes#17216

Open
tomrittervg wants to merge 1 commit into
mozilla:mainfrom
tomrittervg:bounty-half-memory-corruption
Open

Bug Bounty Policy Changes#17216
tomrittervg wants to merge 1 commit into
mozilla:mainfrom
tomrittervg:bounty-half-memory-corruption

Conversation

@tomrittervg

Copy link
Copy Markdown
Contributor
  • Half memory corruption payouts
  • Clarify that UXSS requires an uncompromised content process
  • Remove the static analysis bug bounty

@dveditz @mozfreddyb @simon-friedberger

 - Half memory corruption payouts
 - Clarify that UXSS requires an uncompromised content process
 - Remove the static analysis bug bounty
@tomrittervg tomrittervg requested a review from a team as a code owner June 4, 2026 20:05

<p>The bounty program encourages the <u>earliest possible reporting</u> of potentially exploitable bugs. A bounty <u>is not determined based on the <i>initial</i> submission</u>, but rather on the outcome of the discussion with developers. Improving test cases post-submission, figuring out if an engineer's speculation is founded or not, or other assistance that helps resolve the issue <i>will</i> increase your bounty payout. <u>However</u>, words have dminishing returns, and excessive comments (typically AI-generated) decrease the value of the report. Reproduction testcases provide more value than descriptions. Additionally, a report should not have severity keywords set or include CVSS scores.</p>

<p>Typically bounties are not paid for issues which cannot be identified/fixed from the report. While we do adhere to a first reporter-rule (with a 48-hour collision window), exceptions are made for reports that are not actionable and require additional information provided by another party. </p>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<p>Typically bounties are not paid for issues which cannot be identified/fixed from the report. While we do adhere to a first reporter-rule (with a 48-hour collision window), exceptions are made for reports that are not actionable and require additional information provided by another party. </p>
<p>Typically bounties are only paid for issues which can be identified/fixed from the report. While we do adhere to a first reporter-rule (with a 48-hour collision window), exceptions are made for reports that are not actionable and require additional information provided by another party. </p>

</tbody>
</table>

<p>Note that because advances in vulnerabilitiy detection techniques have made these easier to discover, memory corruption based vulnerabilities, as well as those that can be discovered by an ASAN build, will now be paid at half the rate of the category.</p>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<p>Note that because advances in vulnerabilitiy detection techniques have made these easier to discover, memory corruption based vulnerabilities, as well as those that can be discovered by an ASAN build, will now be paid at half the rate of the category.</p>
<p><strong>Note</strong> that because advances in vulnerabilitiy detection techniques have made these easier to discover, memory corruption based vulnerabilities, as well as those that can be discovered by an ASAN build, will now be paid at half the rate of the category.</p>

Should we add a "for now" or "temporarily"?

@dveditz dveditz Jun 5, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like making "Note" bold as Freddy suggested, but if we do that the change of emphasis makes the sentence wonky without changing the punctuation. "Note that because..." would have to be "Note: because..." (or maybe a comma, but that seems really old-fashioned).

@dveditz dveditz Jun 5, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Substantively, are we really just whacking all our up-to-now normal sec-high bugs in half? Will people just try to hide the fact they used ASAN? you do cover that generally as "memory corruption based vulnerabilities". Unless we tell people how they can improve their report to get back to full value it would be more honest to just lower our published bounty ranges. [upd: which you did by adding a sub-category showing the lower range]

I don't think the problem is "ASAN", it's evidence of memory corruption without evidence of control or other usefulness. So a random ASAN OOB read is meh, but if you show me (in your POC, not hand-waving) that you can get that extra memory back into your web page to do something with it then maybe that starts looking like a sec-high again. Or an ASAN UAF, but with a testcase that shows you can control a read or jump address.

When we talked about it making these changes I thought that's how you meant to evaluate these, but the way this change is written seems to slam the door on it. I worry it will discourage reporters from bothering to look for bugs at ll, instead of encouraging them to put more effort into proving the bugs they found were more important to fix. It's not the straightforward ASAN bugs I want to discourage, it's the fluffy AI crap where we have to work to figure out what they're claiming.

@mozfreddyb

Copy link
Copy Markdown
Contributor

FWIW, I approve of this landing asap. We can figure out the minor details later. None of my comments are blocking. :)

@dveditz dveditz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I may have misunderstood the conclusion about what changes we were going to make to the program.

<td>
&bullet; UXSS<sup>2</sup>
</td>
<td>$10,000</td>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd still like to see these be converted to "up to $10,000" with no bottom range, and ditto the $20,000 sandbox one. I know in practice we have awarded bounties below the bottom because they are "not quite a full example of that type of bug", but I think it just sets us up for more arguing with the reporter over a binary "it is too a UXSS bug so it's at least 8k", with us having to be defensive about "we didn't mean ones where the victim has to open an obscure dialog and then type ↑↑↓↓←→←→BA".

Yes, we have a footnote explaining we might pay lower in certain circumstance, but I don't like "The big print giveth, and the small print taketh away". Let people see the real range in the chart, and use the footnote to explain the circumstances that take away from the top-line.

I'm commenting here on a line you did not change because this is not quite related to the other changes you are making, although there is a footnote edit related to the UXSS category. In the other cases you've added new sub-categories with their own lower ranges which is another way to do it.

</tbody>
</table>

<p>Note that because advances in vulnerabilitiy detection techniques have made these easier to discover, memory corruption based vulnerabilities, as well as those that can be discovered by an ASAN build, will now be paid at half the rate of the category.</p>

@dveditz dveditz Jun 5, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like making "Note" bold as Freddy suggested, but if we do that the change of emphasis makes the sentence wonky without changing the punctuation. "Note that because..." would have to be "Note: because..." (or maybe a comma, but that seems really old-fashioned).

</tbody>
</table>

<p>Note that because advances in vulnerabilitiy detection techniques have made these easier to discover, memory corruption based vulnerabilities, as well as those that can be discovered by an ASAN build, will now be paid at half the rate of the category.</p>

@dveditz dveditz Jun 5, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Substantively, are we really just whacking all our up-to-now normal sec-high bugs in half? Will people just try to hide the fact they used ASAN? you do cover that generally as "memory corruption based vulnerabilities". Unless we tell people how they can improve their report to get back to full value it would be more honest to just lower our published bounty ranges. [upd: which you did by adding a sub-category showing the lower range]

I don't think the problem is "ASAN", it's evidence of memory corruption without evidence of control or other usefulness. So a random ASAN OOB read is meh, but if you show me (in your POC, not hand-waving) that you can get that extra memory back into your web page to do something with it then maybe that starts looking like a sec-high again. Or an ASAN UAF, but with a testcase that shows you can control a read or jump address.

When we talked about it making these changes I thought that's how you meant to evaluate these, but the way this change is written seems to slam the door on it. I worry it will discourage reporters from bothering to look for bugs at ll, instead of encouraging them to put more effort into proving the bugs they found were more important to fix. It's not the straightforward ASAN bugs I want to discourage, it's the fluffy AI crap where we have to work to figure out what they're claiming.

<p><sup>1</sup> For Highest Impact, bypassing WebExtension Install Prompts excludes local attacks.</p>

<p><sup>2</sup>UXSS is defined as the ability to execute JavaScript in an arbitrary cross-origin context. As mentioned above, complex user interaction or limited capabilities of the vulnerability (such as only being able to inject into a cross-origin domain, but not an arbitrary cross-origin domain) may decrease the bounty award.</p>
<p><sup>2</sup>UXSS is defined as the ability to execute JavaScript in an arbitrary cross-origin context. As mentioned above, complex user interaction or limited capabilities of the vulnerability (such as requiring a compromised content process, or only being able to inject into a cross-origin domain but not an arbitrary cross-origin domain) may decrease the bounty award.</p>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<p><sup>2</sup>UXSS is defined as the ability to execute JavaScript in an arbitrary cross-origin context. As mentioned above, complex user interaction or limited capabilities of the vulnerability (such as requiring a compromised content process, or only being able to inject into a cross-origin domain but not an arbitrary cross-origin domain) may decrease the bounty award.</p>
<p><sup>2</sup>UXSS is defined as the ability of web content to execute JavaScript in an arbitrary cross-origin context. As mentioned above, complex user interaction or limited capabilities of the vulnerability (such as only being able to inject into specific domains but not an arbitrary cross-origin one) may decrease the bounty award. If the UXSS requires a compromised content process then to qualify for Higher Impact the submission must have a POC that includes a novel content process RCE vulnerability.</p>

@stevejalim

Copy link
Copy Markdown
Contributor

Holding off merging as it's unclear if waiting for @dveditz's more recent comments is a blocker.

@mozfreddyb If you need this merged ASAP today (Monday) let me know, np

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants