Security Severity Ratings

From MozillaWiki
Jump to: navigation, search

Severity Ratings

Severity Ratings & Examples

The following items are keywords for the severity of an issue.

Exploitable vulnerabilities which can lead to the widespread compromise of many users requiring no more than normal browsing actions. This includes both "full chains" with a content process remote code execution combined with a sandbox escape, as well as sandbox bypasses where remote code execution is achieved directly in an unsandboxed process.
sec-critical 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
  • The severity of web application bugs can depend on the value of the data that could be compromised. Flaws that could be considered critical include
    • XSS (Stored)
    • CSRF
    • Code Injection
    • Authentication Flaws (which lead to account compromise)
    • Session Management Flaws (which lead to account compromise)
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. Exploitable web vulnerabilities that can lead to the targeted compromise of a small number of users. Sandbox escapes which require the attacker to already have arbitrary code execution in the content process.
sec-high 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
  • XSS (Reflected)
  • Failure to use TLS where needed to ensure confidential/security
  • Memory corruption in a parent process IPC method which a malicious content process could exploit.
Vulnerabilities which can provide an attacker additional information or positioning that could be used in combination with other vulnerabilities. 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. The lack of standard defense in depth techniques and security controls. Client bugs that might have high or critical results but require the user perform unusual or complex actions to trigger.
sec-moderate 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
  • Missing Additional Security Controls (x-frame options, SECURE/HTTPOnly flags, etc)
  • Error Handling Issues
Minor security vulnerabilities such as leaks or spoofs of non-sensitive information. Missing best practice security controls
sec-low 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
  • Lack of proper input validation (not resulting in XSS or injection)
  • Content spoofing (non-html)
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
sec-other Examples:
  • Flaws we need to track that are not in our code base
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 Status Codes, Whiteboard Tracking Tags & Flags

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.

Shared Keywords

Shared Keywords
Code Description Examples
sec-audit Bug requires a code audit to investigate potential security problems. DO NOT USE for an actual vulnerability; if a bug has or might have a sec-low/sec-moderate/sec-high/sec-critical rating then it is not a sec-audit bug. Such a vulnerability might spawn a separate sec-audit bug as a task item to scan for the same pattern elsewhere in the code. Look for pattern x in library y

Audit file z for string buffer abuse.

sec-vector Flaws not in Mozilla controlled software, but can cause security problems for Mozilla users. Bugs in plugins

Bugs in system libraries used by Firefox

sec-want New features or improvement ideas related to security User interface refinements

Support for new types of authentication

Code refactoring / cleanup

sec-incident Issues resulting in an incident response or 'chemspill' actions by the security team. Sever compromise

Code issues that would cause client code to be respun.

sec-review-needed replaced with sec-review flag ? 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 replaced with sec-review flag + 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.

Group Keywords

Group Keywords
Code Description Examples
csectype- Client Security (ie. Firefox, Thunderbird, etc)
Code Description
csectype-bounds client security issues due to incorrect boundary conditions (read or write)
csectype-disclosure Disclosure of sensitive user data, personal information, etc in a client product.
csectype-dos Used to tag client Denial of Service bugs. For web server denial of service bugs please use wsec-dos as these tend to be more severe. Search 28
csectype-intoverflow client security issues due to integer overflow
csectype-oom A client crash or hang that occurs in Out Of Memory conditions Search 2
csectype-other client security issues that don't fit into other categories
csectype-priv-escalation client privilege escalation security issues
csectype-sop violations of the client Same Origin Policy (Universal-XSS bugs, for example).
csectype-uaf client security issues due to a use-after-free Search 1
csectype-ui-redress client security issues due to UI Redress attacks, either site-on-site ("clickjacking" and friends) or manipulation of the browser UI to fool users into taking the wrong action.
csectype-uninitialized client security issues due to use of uninitialized memory
csectype-wildptr client security issues due to pointer misuse not otherwise covered (see csectype-uaf, csectype-uninitialized, csectype-intoverflow, csectype-bounds)
wsec- Web Security (Web Sites, Web Services, etc)
Code Description
wsec-authentication Website or server authentication security issues (lockouts, password policy, etc)
wsec-authorization web/server authorization security issues
wsec-cookie Cookie related errors (HTTPOnly / Secure Flag, incorrect domain / path)
wsec-crossdomain Issue such as x-frame-options, crossdomain.xml, cross site sharing settings
wsec-crypto Crypto related items such as password hashing
wsec-csrf Cross-Site Request Forgery (CSRF) bugs in server products
wsec-disclosure Disclosure of sensitive data, personal information, etc from a web service
wsec-dos Used to denote web server Denial of Service bugs. For similar bugs in client software please use csectype-dos instead.
wsec-errorhandling Any error handling issue
wsec-impersonation Impersonation / Spoofing attacks (UI Redress, etc)
wsec-injection Injection attacks other than SQLi or XSS
wsec-input Failure to perform input validation. Most often you will probably use the xss tag instead
wsec-logging Logging issues such as requests for CEF log points.
wsec-other web/server security issues that don't fit into other categories
wsec-session Issues related to sesson management (Session fixation, etc)
wsec-sqli SQL Injection
wsec-ssrf Server Side Request Forgery (SSRF) bugs in server products. CWE-918
wsec-xss Cross-Site Scripting (XSS) bugs in server products
opsec- Operations Security (Mozilla owned & operated severs and services)
Code Description
opsec-access The identified issue is an access violation.

Whiteboard Tags

Whiteboard Tags
Code Description Examples
sec-assigned:UserAlias depricated for sec-review? flag with alias This designates the assigned security resource that is accountable for actions to be taken on the designated item. When possible the bug will be assigned to the security contact for action. This will be used when that is not possible or practical. sec-review?:curtisk@blah.bah indicates that curtisk is the accountable party for action
[Q2] This designates a bug as being identified as a request to be done or targeted for a given operational quarter. If no year is given it is for the current year. [Q2] indicates second quarter of the current calendar year, [Q1-2013] would be used to indicate a target for an upcoming quarter that has not occurred.
[k90] This designates a bug as being part of the Kilimanjaro effort so that it can be tracked, triaged and given appropriate priority and attention.
[basecamp] This designates a bug as being part of the basecamp sub effort of the Kilimanjaro effort.
[fennec] This designates a bug as being a critical bug for the efforts around our mobile browser project. This could be combined with either the [k9o] or [basecamp] tags as a bug could be part of both.
[triage needed] Used to mark a bug for weekly triage meeting.
[pending secreview] deprecated Indicates a secreview or tasks related to said review are yet to be completed.
[start mm/dd/yyyy][target mm/dd/yyyy] This indicates that expected dates to start and complete work on a given review or security bug. [start 01/29/2013][target 02/09/2013] indicates work will start on 29-Jan and expected target for completion on 09-Feb
[completed secreview] deprecated Indicates the given secreview or related tasks have been completed
mentorship Indicates that a given bug is part of our security mentorship program. The assignee of said bug is the Mozilla mentor for such a bug.
[score:##] deprecated This indicates the relative severity score for risk rating bugs per the calculator at [score:30:moderate] shows that the issue has a numerical score of 30 and a severity of moderate.
[FX] Indicates an item related to Firefox
[FXOS] Indicates an item related to Firefox OS
[Web] Indicates an item related to our Web properties
u= c= p= These items are used to allow bugs to be tracked by for work tracking (more info).
s= This tag is used in conjunction with the tags above to indicate which sprint a given bug has been assigned. s=13q4.1 indicates the bug is in the year 2013, 4th quarter and sprint 1. Each sprint is 2 weeks long and it's calendar dates can be tracked on

Feature Page Codes

Feature Page Codes
Code Description Examples
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


Flag Description Settings
sec-review Security review - Requesting action from the security assurance team or showing the results of said action
Setting Description
'?' Request for the security team to review the requested bug for action
'+' Bug has been reviewed, actions are done and the security team has no further concerns at this time
'-' But has been reviewed and found to be deficient in a security metric that should be mitigated
sec-bounty Shows the status of a bug with regards to a bounty payout per our bounty guidlines
Setting Description
'?' Bug is nominated for review by the bounty committee
'+' Bug has been accepted and a payment will be made
'-' Bug does not meet criteria and a payment will not be made