# Security Policy

## Supported Versions

Only the latest version is supported.
[Firefox might use a slightly older version](https://hg.mozilla.org/mozilla-central/file/tip/package.json), which is supported-ish.

## Our Threat Model

### What is considered a vulnerability?

We assume that a project which makes use of this plugin to apply
a reasonable amount of scrutiny to all patches that are accepted.
We understand that this is a fuzzy line and the level of expected
judgement and sensitivity to security issues will vary between
projects and reviewers.

JavaScript static analysis is always very limited. On top we are
limiting ourselves to the APIs that are provided by eslint.
Most notable, there's no constant folding, so we can't allow variables
that have been defined statically in different code paths or different
files.

Here's a a couple of examples which we do **not** consider a bug in the linter:

```js
foo['inner'+'HTML'] = evil; // no way to resolve concatenation
eval(atob(...)) // use eslint no-eval rules please.

function(d) { return document }
d.write(evil); // no way to resolve "d" statically
```

## Reporting a Vulnerability

### Bug Bounty / Vulnerability Rewards

Momentarily, we do not offer a bug bounty for security issues with this linter rule.
Note that projects who depend on this linter _might_.

### Consumers of this linter plugin

If what you found is leading to a vulnerability in any of the project that
make use of this library, please follow the rules for that respective project.
I.e., for Firefox please follow the [Mozilla Client Bug Bounty FAQ and use the
linked bugzilla submission form](https://www.mozilla.org/en-US/security/client-bug-bounty/#claiming-a-bounty)
(requires you to create an account).

### Sneaking your _obfuscated_ code past this linter

Hey, did you read "What is considered a vulnerability", above?

### Sneaking your innocent looking code past the linter

If what you found constitues in a code pattern that eslint should complain about, but doesn't,
[please file a private bug Bugzilla using this form][bugzilla-enter-private-issue] (requires creating an account).

[bugzilla-enter-private-issue]: https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&bug_ignored=0&bug_severity=--&bug_status=UNCONFIRMED&bug_type=defect&cf_fission_milestone=---&cf_fx_iteration=---&cf_fx_points=---&cf_root_cause=---&cf_status_firefox77=---&cf_status_firefox78=---&cf_status_firefox79=---&cf_status_firefox_esr68=---&cf_status_firefox_esr78=---&cf_status_thunderbird_esr60=---&cf_status_thunderbird_esr68=---&cf_tracking_firefox77=---&cf_tracking_firefox78=---&cf_tracking_firefox79=---&cf_tracking_firefox_esr68=---&cf_tracking_firefox_esr78=---&cf_tracking_firefox_relnote=---&cf_tracking_thunderbird_esr60=---&cf_tracking_thunderbird_esr68=---&component=Lint%20and%20Formatting&contenttypemethod=list&contenttypeselection=text%2Fplain&defined_groups=1&filed_via=standard_form&flag_type-203=X&flag_type-37=X&flag_type-4=X&flag_type-41=X&flag_type-607=X&flag_type-721=X&flag_type-737=X&flag_type-787=X&flag_type-799=X&flag_type-800=X&flag_type-803=X&flag_type-846=X&flag_type-855=X&flag_type-864=X&flag_type-913=X&flag_type-930=X&flag_type-936=X&flag_type-941=X&flag_type-945=X&form_name=enter_bug&groups=firefox-core-security&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=Unspecified&priority=--&product=Firefox%20Build%20System&rep_platform=Unspecified&status_whiteboard=%5Beslint-plugin-no-unsanitized%5D&target_milestone=---&version=unspecified
