Security Severity Ratings/Security Severity Ratings/archive

From MozillaWiki
Jump to: navigation, search

Changed May-3-2011

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

sg:critical
Run attacker code with local user privilege or install malicious software, requiring no user interaction beyond normal browsing.

Examples:

  • Overflows resulting in native code execution
  • 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
  • Any bug where random memory is written to is critical
  • Any bug where random memory is read from and then used in a subsequent memory or jump operation (offset, array, etc) is critical
sg: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

Examples:

  • Cross-site Scripting (XSS)
  • Theft of arbitrary files from local system
  • Spoofing of full URL bar or bypass of SSL integrity checks
  • Memory read that results in data being written into an inert container (ie string or image) that is subsequently accessible to content
sg:moderate
Disclosure of sensitive information that represents a violation of privacy but by itself does not expose the user or organization to immediate risk. The vulnerability combined with another moderate vulnerability could result in an attack of high or critical severity (aka stepping stone). Indefinite application Denial of Service (DoS) via corruption of state, requiring application re-installation or temporary DoS of the user's system, requiring reboot

Examples:

  • 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
sg:low
Minor security vulnerabilities such as leaks or spoofs of non-sensitive information.

Examples:

  • 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
sg:dos (Denial of Service)
Temporary Denial of Service attacks that users can avoid by not visiting the site again.

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

Examples:

  • 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.

Code Description 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: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

Bugzilla Codes
sec-review-needed A security review is needed for the bug, this could mean a variety of things. If there is no secr:<username> in the whiteboard the item has not been triaged and action is unknown. Once triaged a note will be placed in the bug as to the action to be taken
sec-review-complete The security review / actions desired have been completed. This will result in either a link to the notes from security actions or a note from the assigned resource in the bug.
secr:<username> This designates the assigned security resource that is accountable for actions to be taken on the designated item [secr:curtisk] indicates that curtisk is the accountable party for action
Feature Page Codes
sec-review-needed A security review is needed for the feature, this could mean a variety of things. If there is no <username> in the notes then a full review needs to be scheduled, if a <username> is present than that person will follow-up with the feature team on whatever task is needed.
sec-review-complete The security review / actions desired have been completed. This will result in a link to the notes from security actions or a note from the assigned resource.
sec-review-active There are active tasks associated with the review that are yet to be completed in order for the review to be seen as completed. These will be captured in the "Action Items" section of the review notes.
sec-review-sched Security review tasks have been scheduled, if this is a full security review the date of the scheduled review will be present in the security notes.
sec-review-unnecessary After triage it was felt the feature needed no review or security actions.
Security health: <blank> There are no notes or status is unknown. Color: <None>
Security health: OK The tasks are on schedule or completed and are considered non-blocking. Color: Green
Security health: Blocked Some aspect of the security review has given cause to block the feature from further work or landing. The reasons will be listed in the security notes or linked to a larger review outcome for follow-up. Color: Yellow
Security health: At Risk Some aspect of the security review may cause the feature to be blocked or put the feature at risk of being off schedule.The reasons will be listed in the security notes or linked to a larger review outcome for follow-up. Color: Red
Security health: Assigned Security tasks have been assigned to a member of the team to followup. The name of this resource will be in the security notes. Color: Teal

Changed Oct-31-2011

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

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