Security Severity Ratings

From MozillaWiki
Revision as of 22:21, 6 December 2010 by Clyon (talk | contribs)
Jump to navigation Jump to search

Security bugs are rated by specifying [sg:<rating>] in the "Whiteboard" field in bugzilla. For example, a bug with a Critical severity rating would be marked as [sg:critical]. You might also notice a [ws:<rating>] in the "Whiteboard" field which is used for our Web Applications. The severity rating system can be found on the Web Application Security Severity Rating page.

Severity Ratings Table

Severity Decription Examples
Critical

Run attacker code with local user privilege or install malicious software, requiring no user interaction beyond normal browsing. The big bada boom.

Overflows resulting in native code excution

JavaScript injection into browser chrome

Launching of arbitrary local application with provided arguments

Filetype spoofing where executables can masquerade as benign content types

Installation & execution of plugins/modules with chrome/native privileges, without user consent or via user dialog fatigue

Any crash where random memory or NULL is executed (the top of the stack is not a function)

Any crash where random memory is accessed (these are usually marked as [sg:critical?] because they are harder to exploit)

High

Obtain confidential data from other sites the user is visiting or the local machine, or inject data or code into those sites, requiring no more than normal browsing actions.

Indefinite DoS of the user's system, requiring OS reinstallation or extensive cleanup

Cross-site Scripting (XSS)

Theft of arbitrary files from local system

Spoofing of full URL bar or bypass of SSL integrity checks

Moderate

Disclosure of sensitive information that represents a violation of privacy but by itself does not expose the user or organization to immediate risk.

A vulnerability that combined with another moderate vulnerability could result in an attack of high or critical severity (aka stepping stone).

Indefinite application DoS via corruption of state, requiring application re-installation

Temporary DoS of the user's system, requiring reboot

Disclosure of OS username

Disclosure of browser cache salt

Disclosure of entire browsing history

Detection of arbitrary local files

Launching of arbitrary local application without arguments

Local storage of passwords in unencrypted form

Persistent DoS attacks that prevent the user from starting Firefox or another application in the future

Low

Minor security vulnerabilities such as leaks or spoofs of non-sensitive information.

Detection of previous visit to a specific site

Identification of users by profiling browsing behavior.

Corruption of chrome dialogs or user input without the ability to spoof arbitrary messages

DoS

Temporary Denial of Service attacks that users can avoid by not visiting the site again.

It is not necessary to mark each bug with [sg:dos]; adding the hang or crash keyword is sufficient.

Script that hangs the application for more than 5-10 seconds (without triggering the "slow script" dialog)

Application crash.

Infinite loop of dialogs that a user cannot escape.

Mitigating Circumstances

If there are mitigating circumstances that severely reduce the effectiveness of the exploit, then the exploit could be reduced by one level of severity. Examples of mitigating circumstances include difficulty in reproducing due to very specific timing or load order requirements, complex or unusual set of actions the user would have to take beyond normal browsing behaviors, or unusual software configuration.

As a rough guide, to be considered for reduction in severity an exploit should execute successfully less than 10% of the time. If measures can be taken to improve the reliability of the exploit to over 10% (by combining it with other existing bugs or techniques), then it should not be considered to be mitigated.

Additional Security Status Codes

If a potential security issue has not yet been assigned a severity rating, or a rating is not appropriate, the whiteboard may instead contain one of the following security status codes.

Severity Decription Examples
sg:needinfo

Information contained within the bug is incomplete, and additional information from the original submitter is required to confirm the bug.

Ambiguous or incomplete bug description

Inconsistency in reproducing the issue

sg:want

New features or improvement ideas related to security

User interface refinements

Support for new types of authentication

Code refactoring / cleanup

sg:investigate

DEPRECATED. Use sg:audit for legitimate code audit bugs, otherwise use the most appropriate status code given the bug state.

Further research is required to determine exploitability

Bugs that involve reviewing the codebase to discover potentially dangerous implementation patterns

sg:audit

Bug requires a code audit to investigate potential security problems.

Look for pattern x in library y

Audit file z for string buffer abuse.

sg:nse

Bugs that may not be exploitable security issues but are kept confidential to protect sensitive information.

Bugs that contain sensitive information about the bug submitter or another user

Bugs that are related to security issues currently unfixed in Mozilla products or other products

sg:dupe <bugid>

Designates a duplicate of another security bug.

Copy of an existing bug targeting a different release

Same underlying bug filed independently

sg:vector-X

Flaws in software not controlled by (shipped with) Firefox, but that can cause security problems for people browsing with Firefox.

Bugs in plugins

Bugs in system libraries used by Firefox