Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
165 changes: 99 additions & 66 deletions cves/kernel/CVE-2016-3135.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ curated_instructions: |
This will enable additional editorial checks on this file to make sure you
fill everything out properly. If you are a student, we cannot accept your work
as finished unless curated is properly updated.
curation_level: 0
curation_level: 2
reported_instructions: |
What date was the vulnerability reported to the security team? Look at the
security bulletins and bug reports. It is not necessarily the same day that
the CVE was created. Leave blank if no date is given.

Please enter your date in YYYY-MM-DD format.
reported_date:
reported_date: '2016-03-09'
announced_instructions: |
Was there a date that this vulnerability was announced to the world? You can
find this in changelogs, blogs, bug reports, or perhaps the CVE date.
Expand Down Expand Up @@ -55,7 +55,14 @@ description_instructions: |

Your target audience is people just like you before you took any course in
security
description:
description: |
The vulnerability occurred during memory allocation where the size of the
object being allocated was not properly checked. If the requested size of
the allocation was too small, the memory heap (The place where programs
store information) could be corrupted due to integer overflow. Integer
overflow is where the size of an integer is greater than the memory
allocated for it and can corrupt other pieces of information within the heap.
This can lead to various attacks all throughout the system.
bounty_instructions: |
If you came across any indications that a bounty was paid out for this
vulnerability, fill it out here. Or correct it if the information already here
Expand Down Expand Up @@ -84,14 +91,8 @@ fixes_instructions: |

Place any notes you would like to make in the notes field.
fixes:
- commit:
note:
- commit:
note:
- commit: d157bd761585605b7882935ffb86286919f62ea1
note: |
Taken from NVD references list with Git commit. If you are
curating, please fact-check that this commit fixes the vulnerability and replace this comment with 'Manually confirmed'
note: 'Manually Confirmed'
vcc_instructions: |
The vulnerability-contributing commits.

Expand All @@ -106,19 +107,17 @@ vcc_instructions: |
Place any notes you would like to make in the notes field.
vccs:
- commit: 2e4e6a17af35be359cc8f1c924f8f198fbd478cc
note: Discovered automatically by archeogit.
note: 'Manually Confirmed'
- commit: 711bdde6a884354ddae8da2fcb495b2a9364cc90
note: Discovered automatically by archeogit.
- commit: 4481374ce88ba8f460c8b89f2572027bd27057d0
note: Discovered automatically by archeogit.
note: 'Manually Confirmed'
upvotes_instructions: |
For the first round, ignore this upvotes number.

For the second round of reviewing, you will be giving a certain amount of
upvotes to each vulnerability you see. Your peers will tell you how
interesting they think this vulnerability is, and you'll add that to the
upvotes score on your branch.
upvotes:
upvotes: 4
unit_tested:
question: |
Were automated unit tests involved in this vulnerability?
Expand All @@ -133,10 +132,10 @@ unit_tested:

For the fix_answer below, check if the fix for the vulnerability involves
adding or improving an automated test to ensure this doesn't happen again.
code:
code_answer:
fix:
fix_answer:
code: false
code_answer: 'No tests were checking for this case or the surroundings.'
fix: false
fix_answer: 'No tests added or improved as a result of this vulnerability.'
discovered:
question: |
How was this vulnerability discovered?
Expand All @@ -151,10 +150,14 @@ discovered:

If there is no evidence as to how this vulnerability was found, then please
explain where you looked.
answer:
automated:
contest:
developer:
answer: |
This vulnerability was found by a Google employee working on Project Zero.
They informed the Linux team on 2016-03-09 of two vulnerabilities including
this one and gave the dev team 90 days to fix the issue before it would
go public.
automated: false
contest: false
developer: false
autodiscoverable:
instructions: |
Is it plausible that a fully automated tool could have discovered
Expand All @@ -171,8 +174,13 @@ autodiscoverable:

The answer field should be boolean. In answer_note, please explain
why you come to that conclusion.
note:
answer:
note: |
The developer could use tools to discover the potential for integer
overflow. Since the problem was a common missing check, tools have
been developed that can detect these issues. A fuzzing tool could input
values that typically cause integer overflows and the vulnerability could
have been spotted earlier.
answer: true
specification:
instructions: |
Is there mention of a violation of a specification? For example, the POSIX
Expand All @@ -188,8 +196,8 @@ specification:

The answer field should be boolean. In answer_note, please explain
why you come to that conclusion.
note:
answer:
note: 'No mention of specification violations.'
answer: false
subsystem:
question: |
What subsystems was the mistake in? These are WITHIN linux kernel
Expand Down Expand Up @@ -223,8 +231,9 @@ subsystem:
e.g.
name: ["subsystemA", "subsystemB"] # ok
name: subsystemA # also ok
name:
note:
name: ["net", "netfilter"]
note: |
The vulnerability takes place within both net and netfilter subsystems.
interesting_commits:
question: |
Are there any interesting commits between your VCC(s) and fix(es)?
Expand All @@ -240,9 +249,9 @@ interesting_commits:
* Anything else you find interesting.
commits:
- commit:
note:
- commit:
note:
note: |
No interesting commits or conversations between the fixers and
the VCC.
i18n:
question: |
Was the feature impacted by this vulnerability about internationalization
Expand All @@ -255,8 +264,8 @@ i18n:
Answer should be true or false
Write a note about how you came to the conclusions you did, regardless of
what your answer was.
answer:
note:
answer: false
note: It does not involve translation or unicode problems.
sandbox:
question: |
Did this vulnerability violate a sandboxing feature that the system
Expand All @@ -270,8 +279,12 @@ sandbox:
Answer should be true or false
Write a note about how you came to the conclusions you did, regardless of
what your answer was.
answer:
note:
answer: true
note: |
It is mentioned that the memory heap corruption could be used to
gain privileges. This can be done by manipulating environment variables
or taking information leaking from the heap to gain privileges.

ipc:
question: |
Did the feature that this vulnerability affected use inter-process
Expand All @@ -282,8 +295,10 @@ ipc:
Answer must be true or false.
Write a note about how you came to the conclusions you did, regardless of
what your answer was.
answer:
note:
answer: true
note: |
The vulnerability involves sockets although the issue
is not an IPC problem directly.
discussion:
question: |
Was there any discussion surrounding this?
Expand All @@ -309,9 +324,9 @@ discussion:

Put any links to disagreements you found in the notes section, or any other
comment you want to make.
discussed_as_security:
any_discussion:
note:
discussed_as_security: false
any_discussion: false
note: 'No discussions about this vulnerability.'
vouch:
question: |
Was there any part of the fix that involved one person vouching for
Expand All @@ -324,8 +339,10 @@ vouch:

Answer must be true or false.
Write a note about how you came to the conclusions you did, regardless of what your answer was.
answer:
note:
answer: true
note: |
The commits reference advice from Ben Hawkes (Google employee) and there are sign-offs
from Florian Westphal and Pablo Neira Ayuso.
stacktrace:
question: |
Are there any stacktraces in the bug reports?
Expand All @@ -339,9 +356,9 @@ stacktrace:
Answer must be true or false.
Write a note about how you came to the conclusions you did, regardless of
what your answer was.
any_stacktraces:
stacktrace_with_fix:
note:
any_stacktraces: false
stacktrace_with_fix: false
note: 'No stacktraces are mentioned.'
forgotten_check:
question: |
Does the fix for the vulnerability involve adding a forgotten check?
Expand All @@ -360,8 +377,10 @@ forgotten_check:
Answer must be true or false.
Write a note about how you came to the conclusions you did, regardless of
what your answer was.
answer:
note:
answer: true
note: |
The fix involves a small if statement that checks whether the size
of the memory allocated for the object is correct. If not, it returns NULL.
order_of_operations:
question: |
Does the fix for the vulnerability involve correcting an order of
Expand All @@ -373,8 +392,8 @@ order_of_operations:
Answer must be true or false.
Write a note about how you came to the conclusions you did, regardless of
what your answer was.
answer:
note:
answer: false
note: 'The order of operations stay the same.'
lessons:
question: |
Are there any common lessons we have learned from class that apply to this
Expand All @@ -391,38 +410,45 @@ lessons:
If you think of another lesson we covered in class that applies here, feel
free to give it a small name and add one in the same format as these.
defense_in_depth:
applies:
note:
applies: true
note: |
More layers of defense could have been in place. Once this one part
fails, a lot of issues could arise.
least_privilege:
applies:
applies: false
note:
frameworks_are_optional:
applies:
applies: false
note:
native_wrappers:
applies:
applies: false
note:
distrust_input:
applies:
note:
applies: true
note: |
The size to allocate memory for was not distrusted and invalid values
could be entered into it creating heap corruption. The fix involved
lowering the trust.
security_by_obscurity:
applies:
applies: false
note:
serial_killer:
applies:
applies: false
note:
environment_variables:
applies:
applies: false
note:
secure_by_default:
applies:
applies: false
note:
yagni:
applies:
applies: false
note:
complex_inputs:
applies:
note:
applies: true
note: |
Unintended inputs were not being checked which led to this
vulnerability.
mistakes:
question: |
In your opinion, after all of this research, what mistakes were made that
Expand Down Expand Up @@ -452,7 +478,14 @@ mistakes:

Write a thoughtful entry here that people in the software engineering
industry would find interesting.
answer:
answer: |
The mistake made is one that all coders run into at some point. Failing
to recognize situations where inputs could break the system is easy to
come across and often takes a lot of extra time and brainpower to find.
This vulnerability seems to have been brought about by a small lapse in
attention that had far-reaching consequences. The CWE-190 suggests
mitigations like strictly defining the bounds and this was not performed
correctly until the fix.
CWE_instructions: |
Please go to http://cwe.mitre.org and find the most specific, appropriate CWE
entry that describes your vulnerability. We recommend going to
Expand All @@ -469,7 +502,7 @@ CWE_instructions: |
CWE: [123, 456] # also ok
CWE: 123 # also ok
CWE:
- 189
- [189, 190]
CWE_note: |
CWE as registered in the NVD. If you are curating, check that this
is correct and replace this comment with "Manually confirmed".
Expand Down
Loading