SlideShare a Scribd company logo
CVEs are dead, long live the CVE!
Greg Kroah-Hartman
gregkh@linuxfoundation.org
github.com/gregkh/presentation-cve
Disclaimer
All of this is just my personal opinion,
based on working with CVEs since they
were first created in 1999.
Nothing in here reflects the opinion of
the Linux Foundation or any other Linux
kernel developer. But hopefully I can
convince them to agree with me.
CVE
●
One identifier for one vulnerability / exposure
● One description for that vulnerability
●
Dictionary not a database
●
“The way to interoperability and better security
coverage”
Common Vulnerabilities & Exposures
CVE
●
A string everyone can put in their security builtin
Common Vulnerabilities & Exposures
CVE
Better than, “we fixed something described
in the second paragraph on the web page
over there.”
CVE
Handles the “embedded library in our
product has a problem” issue.
CVE
Good for the, “cgi plugin bundled into
innumerable products remote execution
vulnerability” problem.
CVE
“zlib”
CVE format
CVE-YEAR-NUMBER
CVE-2019-12379
NVD
●
Superset of CVEs
● Analysis of CVEs
●
Gives CVEs a “score”
●
Searchable Database
●
Slow to update
National Vulnerability Database
NVD
“National” Vulnerability Database
CNNVD
China National Vulnerability Database
https://www.recordedfuture.com/chinese-vulnerability-reporting/
CVE/NVD problems
●
Missing or rejected vulnerabilities
●
Delayed assignment of identifiers
●
Poor descriptions of vulnerabilities
● Over/Under-inflated vulnerability scores
●
Abuse by engineers to circumvent internal procedures
●
Abuse by developers to pad resumes
●
Difficulty in revoking invalid identifiers
●
Inability to handle ongoing/complex problems
requiring multiple fixes over extended periods of time
●
Run by USA Government
CVE/NVD problems
●
Run by USA Government
CVE/NVD problems
●
Inability to handle ongoing/complex problems
requiring multiple fixes over extended periods of
time
– Spectre 1 has 1 CVE entry (CVE-2017-5753)
– Took 10+ original patches
– 100+ more patches over the past 2 years
– Still being fixed
– NVD does NOT point to the fixes needed
CVE/NVD problems
●
Abuse by developers to pad resumes
●
Difficulty in revoking invalid identifiers
CVE-2019-12379
“An issue was discovered in con_insert_unipair in
drivers/tty/vt/consolemap.c in the Linux kernel
through 5.1.5. There is a memory leak in a certain
case of an ENOMEM outcome of kmalloc.”
commit 84ecc2f6eb1cb12e6d44818f94fa49b50f06e6ac
Author: Gen Zhang <blackgod016574@gmail.com>
Date: Thu May 23 08:34:52 2019 +0800
consolemap: Fix a memory leaking bug in drivers/tty/vt/consolemap.c
In function con_insert_unipair(), when allocation for p2 and p1[n]
fails, ENOMEM is returned, but previously allocated p1 is not freed,
remains as leaking memory. Thus we should free p1 as well when this
allocation fails.
Signed-off-by: Gen Zhang <blackgod016574@gmail.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
diff --git a/drivers/tty/vt/consolemap.c b/drivers/tty/vt/consolemap.c
index b28aa0d289f8..79fcc96cc7c0 100644
--- a/drivers/tty/vt/consolemap.c
+++ b/drivers/tty/vt/consolemap.c
@@ -489,7 +489,11 @@ con_insert_unipair(struct uni_pagedir *p, u_short unicode, u_short fontpos)
p2 = p1[n = (unicode >> 6) & 0x1f];
if (!p2) {
p2 = p1[n] = kmalloc_array(64, sizeof(u16), GFP_KERNEL);
- if (!p2) return -ENOMEM;
+ if (!p2) {
+ kfree(p1);
+ p->uni_pgdir[n] = NULL;
+ return -ENOMEM;
+ }
memset(p2, 0xff, 64*sizeof(u16)); /* No glyphs for the characters (yet) */
}
CVE-2019-12379 timeline
27/05/2019 – CVE published
28/05/2019 – NVD analyzed, score “Medium”
06/06/2019 – Fedora 5.1.6 kernel release
09/06/2019 – Fedora 5.1.7 kernel release
02/07/2019 – *DISPUTED*, link to revert
10/07/2019 – Netapp advisory for 5.1.3 kernel release
(5.1.3 was released 16/05/2019)
commit 15b3cd8ef46ad1b100e0d3c7e38774f330726820
Author: Ben Hutchings <ben@decadent.org.uk>
Date: Tue Jun 4 19:00:39 2019 +0100
Revert "consolemap: Fix a memory leaking bug in drivers/tty/vt/consolemap.c"
This reverts commit 84ecc2f6eb1cb12e6d44818f94fa49b50f06e6ac.
con_insert_unipair() is working with a sparse 3-dimensional array:
- p->uni_pgdir[] is the top layer
- p1 points to a middle layer
- p2 points to a bottom layer
If it needs to allocate a new middle layer, and then fails to allocate
a new bottom layer, it would previously free only p2, and now it frees
both p1 and p2. But since the new middle layer was already registered
in the top layer, it was not leaked.
However, if it looks up an *existing* middle layer and then fails to
allocate a bottom layer, it now frees both p1 and p2 but does *not*
free any other bottom layers under p1. So it *introduces* a memory
leak.
The error path also cleared the wrong index in p->uni_pgdir[],
introducing a use-after-free.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Fixes: 84ecc2f6eb1c ("consolemap: Fix a memory leaking bug in drivers/tty/vt/consolemap.c")
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
diff --git a/drivers/tty/vt/consolemap.c b/drivers/tty/vt/consolemap.c
index 79fcc96cc7c0..b28aa0d289f8 100644
--- a/drivers/tty/vt/consolemap.c
+++ b/drivers/tty/vt/consolemap.c
@@ -489,11 +489,7 @@ con_insert_unipair(struct uni_pagedir *p, u_short unicode, u_short fontpos)
p2 = p1[n = (unicode >> 6) & 0x1f];
if (!p2) {
p2 = p1[n] = kmalloc_array(64, sizeof(u16), GFP_KERNEL);
- if (!p2) {
- kfree(p1);
- p->uni_pgdir[n] = NULL;
- return -ENOMEM;
- }
+ if (!p2) return -ENOMEM;
memset(p2, 0xff, 64*sizeof(u16)); /* No glyphs for the characters (yet) */
}
CVE-2019-12379 timeline
21/05/2019 – original patch sent to lkml
23/05/2019 – v2 of patch sent based on review
24/05/2019 – v2 of patch sent again (v3???)
24/05/2019 – patch merged to tty-next tree
24/05/2019 – “probably the patch should just be removed...”
27/05/2019 – CVE issued
28/05/2019 – NVD analyzed, score “Medium”
04/06/2019 – Revert patch sent to lkml
04/06/2019 – Revert patch applied to tty-next tree
06/06/2019 – Fedora 5.1.7 kernel release
09/06/2019 – Fedora 5.1.8 kernel release
02/07/2019 – *DISPUTED*, link to revert
10/07/2019 – Netapp advisory for 5.1.3 kernel release
21/07/2019 – 5.3-rc1 is released with patch and revert applied
CVE/NVD problems
●
Abuse by engineers to circumvent internal
procedures.
CVE/NVD problems
●
Abuse Hack by Red Hat engineers to circumvent
internal procedures foolish management policies.
Linux kernel CVEs
●
2006-2018, 1005 CVEs assigned
– 41% (414) had a negative “fix date”
– 12 never fixed
– Average fix date, -100 days
– Longest fix dates, -3897 and 2348
– 88 fixed within 1 week
– Standard deviation 405 days
Linux bug fixes
●
≈22 a day
●
5% of upstream commits
●
Stable/longterm releases happen 1-2 times a week
●
Fully tested as unified release
●
Given to you for free!
Linux security fixes
●
Happen at least once a week
●
Look like any other bugfix
●
Many bugs not known to be security “related”
●
No differentiation between bug types
– “bug is a bug is a bug”
●
Very few CVEs ever get assigned for kernel issues
Linux security fixes != CVEs
●
Small fraction of kernel fixes get CVEs
●
If you only cherry-pick CVEs you have an insecure
system
●
CVEs have follow-on fixes not documented
anywhere
“If you are not using a supported
Linux distribution kernel, or a
stable / longterm kernel, you have
an insecure system.”
– me
“If you are not using a supported
Linux distribution kernel, or a
stable / longterm kernel, you have
an insecure system.”
– me
“popular phone” - March 2019, 4.14.85
●
8.785 files changed, 3.380.040 lines added, 159.366 lines
removed
●
Compared to 4.14.108 (May 2019)
– 1759 patches behind
– 36 patches taken
●
f2fs, thermal, mm logging cleanups, exynos specific fixes
– Missed:
●
12 documented CVEs!
– HID and networking
●
Bugfixes for mm core, networking vulnerabilities, wireless fixes,
HID, f2fs, ext4, ARM core, sound, input, USB, spinlock fixes!!!,
netfilter, crypto, UFS, video, and more.
LTS kernels fix problems
●
Bugs are fixed before you realize it
●
Google security team requests for Pixel phones in
2018:
– 92% (201/218) problems were already fixed in an
LTS kernel
– No need for cherry-picking at all
– Remaining issues were due to out-of-tree code
How to “fix” CVEs
●
Ignore them!
How to “fix” CVEs
●
Ignore them!
●
Burn them down!
How to “fix” CVEs
●
Ignore them!
●
Burn them down!
●
Create something new
Something “new” requirements
● Unique identifier
● Distributed
● Able to be ‘revised’ over time
● Searchable
●
Public
commit 15b3cd8ef46ad1b100e0d3c7e38774f330726820
Author: Ben Hutchings <ben@decadent.org.uk>
Date: Tue Jun 4 19:00:39 2019 +0100
Revert "consolemap: Fix a memory leaking bug in drivers/tty/vt/consolemap.c"
This reverts commit 84ecc2f6eb1cb12e6d44818f94fa49b50f06e6ac.
con_insert_unipair() is working with a sparse 3-dimensional array:
- p->uni_pgdir[] is the top layer
- p1 points to a middle layer
- p2 points to a bottom layer
If it needs to allocate a new middle layer, and then fails to allocate
a new bottom layer, it would previously free only p2, and now it frees
both p1 and p2. But since the new middle layer was already registered
in the top layer, it was not leaked.
However, if it looks up an *existing* middle layer and then fails to
allocate a bottom layer, it now frees both p1 and p2 but does *not*
free any other bottom layers under p1. So it *introduces* a memory
leak.
The error path also cleared the wrong index in p->uni_pgdir[],
introducing a use-after-free.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Fixes: 84ecc2f6eb1c ("consolemap: Fix a memory leaking bug in drivers/tty/vt/consolemap.c")
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
diff --git a/drivers/tty/vt/consolemap.c b/drivers/tty/vt/consolemap.c
index 79fcc96cc7c0..b28aa0d289f8 100644
--- a/drivers/tty/vt/consolemap.c
+++ b/drivers/tty/vt/consolemap.c
@@ -489,11 +489,7 @@ con_insert_unipair(struct uni_pagedir *p, u_short unicode, u_short fontpos)
commit 7caac62ed598a196d6ddf8d9c121e12e082cac3a
Author: Wen Huang <huangwenabc@gmail.com>
Date: Wed Aug 28 10:07:51 2019 +0800
mwifiex: Fix three heap overflow at parsing element in cfg80211_ap_settings
mwifiex_update_vs_ie(),mwifiex_set_uap_rates() and
mwifiex_set_wmm_params() call memcpy() without checking
the destination size.Since the source is given from
user-space, this may trigger a heap buffer overflow.
Fix them by putting the length check before performing memcpy().
This fix addresses CVE-2019-14814,CVE-2019-14815,CVE-2019-14816.
Signed-off-by: Wen Huang <huangwenabc@gmail.com>
Acked-by: Ganapathi Bhat <gbhat@marvell.comg>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
commit 941431c491a68e0428bdfb46bbe4cbc52f7bfabb
Author: Wen Huang <huangwenabc@gmail.com>
Date: Wed Aug 28 10:07:51 2019 +0800
mwifiex: Fix three heap overflow at parsing element in cfg80211_ap_settings
commit 7caac62ed598a196d6ddf8d9c121e12e082cac3a upstream.
mwifiex_update_vs_ie(),mwifiex_set_uap_rates() and
mwifiex_set_wmm_params() call memcpy() without checking
the destination size.Since the source is given from
user-space, this may trigger a heap buffer overflow.
Fix them by putting the length check before performing memcpy().
This fix addresses CVE-2019-14814,CVE-2019-14815,CVE-2019-14816.
Signed-off-by: Wen Huang <huangwenabc@gmail.com>
Acked-by: Ganapathi Bhat <gbhat@marvell.comg>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
$ fix_in_what_release 7caac62ed598a196d6ddf8d9c121e12e082cac3a
4.4.194 4.9.194 4.14.146 4.19.75 5.2.17 5.3
commit 52f6f9d74f31078964ca1574f7bb612da7877ac8
Author: Jann Horn <jannh@google.com>
Date: Tue Mar 26 23:03:48 2019 +0100
floppy: fix usercopy direction
As sparse points out, these two copy_from_user() should actually be
copy_to_user().
Fixes: 229b53c9bf4e ("take floppy compat ioctls to sodding floppy.c")
Cc: stable@vger.kernel.org
Acked-by: Alexander Popov <alex.popov@linux.com>
Reviewed-by: Mukesh Ojha <mojha@codeaurora.org>
Signed-off-by: Jann Horn <jannh@google.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
commit c3817ffb10369fac0979f0c4367159c412ccc3d8
Author: Jann Horn <jannh@google.com>
Date: Tue Mar 26 23:03:48 2019 +0100
floppy: fix usercopy direction
commit 52f6f9d74f31078964ca1574f7bb612da7877ac8 upstream.
As sparse points out, these two copy_from_user() should actually be
copy_to_user().
Fixes: 229b53c9bf4e ("take floppy compat ioctls to sodding floppy.c")
Cc: stable@vger.kernel.org
Acked-by: Alexander Popov <alex.popov@linux.com>
Reviewed-by: Mukesh Ojha <mojha@codeaurora.org>
Signed-off-by: Jann Horn <jannh@google.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
$ fix_in_what_release 229b53c9bf4e
4.4.187 4.9.187 4.13
Something “new” requirements
● Unique identifier
● Distributed
● Able to be ‘revised’ over time
● Searchable
●
Public
Git commit id!!!
Something “new” requirements
● Unique identifier
● Distributed
● Able to be ‘revised’ over time
● Searchable
●
Public
●
No one knows what this is
Git commit id!!!
Marketing to the rescue!
Marketing to the rescue!
● Linux Git Kernel id (LGKI)
Marketing to the rescue!
● Linux Git Kernel id (LGKI)
● Linux Kernel id (LKI)
Marketing to the rescue!
● Linux Git Kernel id (LGKI)
● Linux Kernel id (LKI)
● Linux Commit id (LCI)
Marketing to the rescue!
● Linux Git Kernel id (LGKI)
● Linux Kernel id (LKI)
● Linux Commit id (LCI)
● Kernel Git id (KGI)
Marketing to the rescue!
● Linux Git Kernel id (LGKI)
● Linux Kernel id (LKI)
● Linux Commit id (LCI)
● Kernel Git id (KGI)
●
Git Kernel id (GKI)
Marketing to the rescue!
● Linux Git Kernel id (LGKI)
● Linux Kernel id (LKI)
● Linux Commit id (LCI)
● Kernel Git id (KGI)
●
Git Kernel id (GKI)
●
Git Kernel Hash (GKH)
Marketing to the rescue!
● Linux Git Kernel id (LGKI)
● Linux Kernel id (LKI)
● Linux Commit id (LCI)
● Kernel Git id (KGI)
●
Git Kernel id (GKI)
●
Git Kernel Hash (GKH)
●
Git Hash id (GHI)
Marketing to the rescue!
● Linux Git Kernel id (LGKI)
● Linux Kernel id (LKI)
● Linux Commit id (LCI)
● Kernel Git id (KGI)
●
Git Kernel id (GKI)
●
Git Kernel Hash (GKH)
●
Git Hash id (GHI)
●
Change id (CID)
Change ID
● CID-[12 digit hexadecimal number]
● CID-7caac62ed598
~/linux/stable/linux-stable $ generate_cid.sh v4.19..v4.19.1^
CID-0fe5119e267f ("net: bridge: remove ipv6 zero address check in mcast queries")
CID-1f2b5b8e2df4 ("sparc64: Wire up compat getpeername and getsockname.")
CID-5b4fc3882a64 ("sparc64: Make corrupted user stacks more debuggable.")
CID-2b4792eaa9f5 ("sparc64: Export __node_distance.")
CID-713358369382 ("sctp: check policy more carefully when getting pr status")
CID-5ef79151c2fb ("Revert "be2net: remove desc field from be_eq_obj"")
CID-649f0837a8cc ("r8169: fix broken Wake-on-LAN from S5 (poweroff)")
CID-ece23711dd95 ("net: Properly unlink GRO packets on overflow.")
CID-7de414a9dd91 ("net: drop skb on failure in ip_check_defrag()")
CID-a22712a96291 ("mlxsw: core: Fix devlink unregister flow")
CID-ad0b9d94182b ("mlxsw: spectrum_switchdev: Don't ignore deletions of learned MACs")
CID-fb692ec4117f ("net/smc: fix smc_buf_unuse to use the lgr pointer")
CID-4ed591c8ab44 ("net/ipv6: Allow onlink routes to have a device mismatch if it is the default route")
CID-46ebe2834ba5 ("openvswitch: Fix push/pop ethernet validation")
CID-414dd6fb9a1a ("bonding: fix length of actor system")
CID-ff002269a4ee ("vhost: Fix Spectre V1 vulnerability")
CID-da71577545a5 ("rtnetlink: Disallow FDB configuration for non-Ethernet device")
CID-89ab066d4229 ("Revert "net: simplify sock_poll_wait"")
CID-db4f1be3ca9b ("net: udp: fix handling of CHECKSUM_COMPLETE packets")
CID-30549aab146c ("net: stmmac: Fix stmmac_mdio_reset() when building stmmac as modules")
CID-38b4f18d5637 ("net: sched: gred: pass the right attribute to gred_change_table_def()")
CID-d48051c5b837 ("net/mlx5e: fix csum adjustments caused by RXFCS")
CID-ee1abcf68935 ("ipv6/ndisc: Preserve IPv6 control buffer if protocol error handlers are called")
CID-5a2de63fd1a5 ("bridge: do not add port to router list when receives query with source 0.0.0.0")
~/linux/stable/linux-stable $
How to “fix” CVEs
●
Ignore them!
●
Burn them down!
●
Create something new
How to “fix” CVEs
●
Ignore them!
●
Burn them down!
●
Create something new
●
Re-brand what we have been doing for 14 years
How to “fix” CVEs
●
Ignore them!
●
Burn them down!
●
Create something new
●
Re-brand what we have been doing for 14 years
Change ID
●
CID-[12 digit hexadecimal number]
●
CID-7caac62ed598
Change ID
● CID-[12 digit hexadecimal number]
● CID-7caac62ed598

More Related Content

What's hot

Linux kernel modules
Linux kernel modulesLinux kernel modules
Linux kernel modules
Dheryta Jaisinghani
 
Bootloaders
BootloadersBootloaders
Bootloaders
Anil Kumar Pugalia
 
Spi drivers
Spi driversSpi drivers
Spi drivers
pradeep_tewani
 
A practical guide to buildroot
A practical guide to buildrootA practical guide to buildroot
A practical guide to buildroot
Emertxe Information Technologies Pvt Ltd
 
An introduction to ROP
An introduction to ROPAn introduction to ROP
An introduction to ROP
Saumil Shah
 
malloc & vmalloc in Linux
malloc & vmalloc in Linuxmalloc & vmalloc in Linux
malloc & vmalloc in Linux
Adrian Huang
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernel
guest547d74
 
TDD in C - Recently Used List Kata
TDD in C - Recently Used List KataTDD in C - Recently Used List Kata
TDD in C - Recently Used List Kata
Olve Maudal
 
U-Boot Porting on New Hardware
U-Boot Porting on New HardwareU-Boot Porting on New Hardware
U-Boot Porting on New Hardware
RuggedBoardGroup
 
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIKernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Anne Nicolas
 
Not a Security Boundary: Bypassing User Account Control
Not a Security Boundary: Bypassing User Account ControlNot a Security Boundary: Bypassing User Account Control
Not a Security Boundary: Bypassing User Account Control
enigma0x3
 
Easiest way to start with Shell scripting
Easiest way to start with Shell scriptingEasiest way to start with Shell scripting
Easiest way to start with Shell scripting
Akshay Siwal
 
Linux Kernel - Virtual File System
Linux Kernel - Virtual File SystemLinux Kernel - Virtual File System
Linux Kernel - Virtual File System
Adrian Huang
 
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
idsecconf
 
makefiles tutorial
makefiles tutorialmakefiles tutorial
makefiles tutorial
vsubhashini
 
Union FileSystem - A Building Blocks Of a Container
Union FileSystem - A Building Blocks Of a ContainerUnion FileSystem - A Building Blocks Of a Container
Union FileSystem - A Building Blocks Of a Container
Knoldus Inc.
 
Introduction to char device driver
Introduction to char device driverIntroduction to char device driver
Introduction to char device driver
Vandana Salve
 
Page cache in Linux kernel
Page cache in Linux kernelPage cache in Linux kernel
Page cache in Linux kernel
Adrian Huang
 
Operating Systems - A Primer
Operating Systems - A PrimerOperating Systems - A Primer
Operating Systems - A Primer
Saumil Shah
 
Covering Indexes Ordersof Magnitude Improvements
Covering  Indexes  Ordersof Magnitude  ImprovementsCovering  Indexes  Ordersof Magnitude  Improvements
Covering Indexes Ordersof Magnitude Improvements
PerconaPerformance
 

What's hot (20)

Linux kernel modules
Linux kernel modulesLinux kernel modules
Linux kernel modules
 
Bootloaders
BootloadersBootloaders
Bootloaders
 
Spi drivers
Spi driversSpi drivers
Spi drivers
 
A practical guide to buildroot
A practical guide to buildrootA practical guide to buildroot
A practical guide to buildroot
 
An introduction to ROP
An introduction to ROPAn introduction to ROP
An introduction to ROP
 
malloc & vmalloc in Linux
malloc & vmalloc in Linuxmalloc & vmalloc in Linux
malloc & vmalloc in Linux
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernel
 
TDD in C - Recently Used List Kata
TDD in C - Recently Used List KataTDD in C - Recently Used List Kata
TDD in C - Recently Used List Kata
 
U-Boot Porting on New Hardware
U-Boot Porting on New HardwareU-Boot Porting on New Hardware
U-Boot Porting on New Hardware
 
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIKernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
 
Not a Security Boundary: Bypassing User Account Control
Not a Security Boundary: Bypassing User Account ControlNot a Security Boundary: Bypassing User Account Control
Not a Security Boundary: Bypassing User Account Control
 
Easiest way to start with Shell scripting
Easiest way to start with Shell scriptingEasiest way to start with Shell scripting
Easiest way to start with Shell scripting
 
Linux Kernel - Virtual File System
Linux Kernel - Virtual File SystemLinux Kernel - Virtual File System
Linux Kernel - Virtual File System
 
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
 
makefiles tutorial
makefiles tutorialmakefiles tutorial
makefiles tutorial
 
Union FileSystem - A Building Blocks Of a Container
Union FileSystem - A Building Blocks Of a ContainerUnion FileSystem - A Building Blocks Of a Container
Union FileSystem - A Building Blocks Of a Container
 
Introduction to char device driver
Introduction to char device driverIntroduction to char device driver
Introduction to char device driver
 
Page cache in Linux kernel
Page cache in Linux kernelPage cache in Linux kernel
Page cache in Linux kernel
 
Operating Systems - A Primer
Operating Systems - A PrimerOperating Systems - A Primer
Operating Systems - A Primer
 
Covering Indexes Ordersof Magnitude Improvements
Covering  Indexes  Ordersof Magnitude  ImprovementsCovering  Indexes  Ordersof Magnitude  Improvements
Covering Indexes Ordersof Magnitude Improvements
 

Similar to Kernel Recipes 2019 - CVEs are dead, long live the CVE!

Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!
All Things Open
 
Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned  Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned
RightScale
 
Moving from Jenkins 1 to 2 declarative pipeline adventures
Moving from Jenkins 1 to 2 declarative pipeline adventuresMoving from Jenkins 1 to 2 declarative pipeline adventures
Moving from Jenkins 1 to 2 declarative pipeline adventures
Frits Van Der Holst
 
Introduction to Linux Kernel Development
Introduction to Linux Kernel DevelopmentIntroduction to Linux Kernel Development
Introduction to Linux Kernel Development
Levente Kurusa
 
Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021
Jian-Hong Pan
 
Craftsmanship in Computational Work
Craftsmanship in Computational WorkCraftsmanship in Computational Work
Craftsmanship in Computational Work
Yung-Yu Chen
 
introduction-infra-as-a-code using terraform
introduction-infra-as-a-code using terraformintroduction-infra-as-a-code using terraform
introduction-infra-as-a-code using terraform
niyof97
 
Velocity 2012 - Learning WebOps the Hard Way
Velocity 2012 - Learning WebOps the Hard WayVelocity 2012 - Learning WebOps the Hard Way
Velocity 2012 - Learning WebOps the Hard Way
Cosimo Streppone
 
Surge2012
Surge2012Surge2012
Surge2012
davidapacheco
 
2012 04-19 theory-of_operation
2012 04-19 theory-of_operation2012 04-19 theory-of_operation
2012 04-19 theory-of_operation
bobwolff68
 
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesWindows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Peter Hlavaty
 
Systemd for developers
Systemd for developersSystemd for developers
Systemd for developers
Alison Chaiken
 
Os Selbak
Os SelbakOs Selbak
Os Selbak
oscon2007
 
Experience with jemalloc
Experience with jemallocExperience with jemalloc
Experience with jemalloc
Kit Chan
 
Easier, Better, Faster, Safer Deployment with Docker and Immutable Containers
Easier, Better, Faster, Safer Deployment with Docker and Immutable ContainersEasier, Better, Faster, Safer Deployment with Docker and Immutable Containers
Easier, Better, Faster, Safer Deployment with Docker and Immutable Containers
C4Media
 
Making Strongly-typed NETCONF Usable
Making Strongly-typed NETCONF UsableMaking Strongly-typed NETCONF Usable
Making Strongly-typed NETCONF Usable
Open Networking Summit
 
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
Arnaud BUDKIEWICZ
 
Containerize your Blackbox tests
Containerize your Blackbox testsContainerize your Blackbox tests
Containerize your Blackbox tests
Kevin Beeman
 
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
All Things Open
 
Linux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisLinux Crash Dump Capture and Analysis
Linux Crash Dump Capture and Analysis
Paul V. Novarese
 

Similar to Kernel Recipes 2019 - CVEs are dead, long live the CVE! (20)

Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!
 
Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned  Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned
 
Moving from Jenkins 1 to 2 declarative pipeline adventures
Moving from Jenkins 1 to 2 declarative pipeline adventuresMoving from Jenkins 1 to 2 declarative pipeline adventures
Moving from Jenkins 1 to 2 declarative pipeline adventures
 
Introduction to Linux Kernel Development
Introduction to Linux Kernel DevelopmentIntroduction to Linux Kernel Development
Introduction to Linux Kernel Development
 
Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021
 
Craftsmanship in Computational Work
Craftsmanship in Computational WorkCraftsmanship in Computational Work
Craftsmanship in Computational Work
 
introduction-infra-as-a-code using terraform
introduction-infra-as-a-code using terraformintroduction-infra-as-a-code using terraform
introduction-infra-as-a-code using terraform
 
Velocity 2012 - Learning WebOps the Hard Way
Velocity 2012 - Learning WebOps the Hard WayVelocity 2012 - Learning WebOps the Hard Way
Velocity 2012 - Learning WebOps the Hard Way
 
Surge2012
Surge2012Surge2012
Surge2012
 
2012 04-19 theory-of_operation
2012 04-19 theory-of_operation2012 04-19 theory-of_operation
2012 04-19 theory-of_operation
 
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesWindows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
 
Systemd for developers
Systemd for developersSystemd for developers
Systemd for developers
 
Os Selbak
Os SelbakOs Selbak
Os Selbak
 
Experience with jemalloc
Experience with jemallocExperience with jemalloc
Experience with jemalloc
 
Easier, Better, Faster, Safer Deployment with Docker and Immutable Containers
Easier, Better, Faster, Safer Deployment with Docker and Immutable ContainersEasier, Better, Faster, Safer Deployment with Docker and Immutable Containers
Easier, Better, Faster, Safer Deployment with Docker and Immutable Containers
 
Making Strongly-typed NETCONF Usable
Making Strongly-typed NETCONF UsableMaking Strongly-typed NETCONF Usable
Making Strongly-typed NETCONF Usable
 
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
 
Containerize your Blackbox tests
Containerize your Blackbox testsContainerize your Blackbox tests
Containerize your Blackbox tests
 
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
 
Linux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisLinux Crash Dump Capture and Analysis
Linux Crash Dump Capture and Analysis
 

More from Anne Nicolas

Kernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstKernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream first
Anne Nicolas
 
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelKernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Anne Nicolas
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are money
Anne Nicolas
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Anne Nicolas
 
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Anne Nicolas
 
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Anne Nicolas
 
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Anne Nicolas
 
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxEmbedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Anne Nicolas
 
Embedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialEmbedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less special
Anne Nicolas
 
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconEmbedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Anne Nicolas
 
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureEmbedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Anne Nicolas
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops way
Anne Nicolas
 
Embedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerEmbedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmaker
Anne Nicolas
 
Embedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationEmbedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integration
Anne Nicolas
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debugging
Anne Nicolas
 
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaEmbedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Anne Nicolas
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Anne Nicolas
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDP
Anne Nicolas
 
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Anne Nicolas
 
Kernel Recipes 2019 - Formal modeling made easy
Kernel Recipes 2019 - Formal modeling made easyKernel Recipes 2019 - Formal modeling made easy
Kernel Recipes 2019 - Formal modeling made easy
Anne Nicolas
 

More from Anne Nicolas (20)

Kernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstKernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream first
 
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelKernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are money
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and future
 
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
 
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
 
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
 
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxEmbedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
 
Embedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialEmbedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less special
 
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconEmbedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
 
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureEmbedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops way
 
Embedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerEmbedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmaker
 
Embedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationEmbedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integration
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debugging
 
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaEmbedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDP
 
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
 
Kernel Recipes 2019 - Formal modeling made easy
Kernel Recipes 2019 - Formal modeling made easyKernel Recipes 2019 - Formal modeling made easy
Kernel Recipes 2019 - Formal modeling made easy
 

Recently uploaded

All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
ssuserad3af4
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Envertis Software Solutions
 
Top 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptxTop 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptx
devvsandy
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
Ayan Halder
 

Recently uploaded (20)

All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
 
Top 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptxTop 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptx
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
 

Kernel Recipes 2019 - CVEs are dead, long live the CVE!

  • 1. CVEs are dead, long live the CVE! Greg Kroah-Hartman gregkh@linuxfoundation.org github.com/gregkh/presentation-cve
  • 2. Disclaimer All of this is just my personal opinion, based on working with CVEs since they were first created in 1999. Nothing in here reflects the opinion of the Linux Foundation or any other Linux kernel developer. But hopefully I can convince them to agree with me.
  • 3. CVE ● One identifier for one vulnerability / exposure ● One description for that vulnerability ● Dictionary not a database ● “The way to interoperability and better security coverage” Common Vulnerabilities & Exposures
  • 4. CVE ● A string everyone can put in their security builtin Common Vulnerabilities & Exposures
  • 5. CVE Better than, “we fixed something described in the second paragraph on the web page over there.”
  • 6. CVE Handles the “embedded library in our product has a problem” issue.
  • 7. CVE Good for the, “cgi plugin bundled into innumerable products remote execution vulnerability” problem.
  • 10. NVD ● Superset of CVEs ● Analysis of CVEs ● Gives CVEs a “score” ● Searchable Database ● Slow to update National Vulnerability Database
  • 12. CNNVD China National Vulnerability Database https://www.recordedfuture.com/chinese-vulnerability-reporting/
  • 13. CVE/NVD problems ● Missing or rejected vulnerabilities ● Delayed assignment of identifiers ● Poor descriptions of vulnerabilities ● Over/Under-inflated vulnerability scores ● Abuse by engineers to circumvent internal procedures ● Abuse by developers to pad resumes ● Difficulty in revoking invalid identifiers ● Inability to handle ongoing/complex problems requiring multiple fixes over extended periods of time ● Run by USA Government
  • 14. CVE/NVD problems ● Run by USA Government
  • 15. CVE/NVD problems ● Inability to handle ongoing/complex problems requiring multiple fixes over extended periods of time – Spectre 1 has 1 CVE entry (CVE-2017-5753) – Took 10+ original patches – 100+ more patches over the past 2 years – Still being fixed – NVD does NOT point to the fixes needed
  • 16. CVE/NVD problems ● Abuse by developers to pad resumes ● Difficulty in revoking invalid identifiers
  • 17. CVE-2019-12379 “An issue was discovered in con_insert_unipair in drivers/tty/vt/consolemap.c in the Linux kernel through 5.1.5. There is a memory leak in a certain case of an ENOMEM outcome of kmalloc.”
  • 18. commit 84ecc2f6eb1cb12e6d44818f94fa49b50f06e6ac Author: Gen Zhang <blackgod016574@gmail.com> Date: Thu May 23 08:34:52 2019 +0800 consolemap: Fix a memory leaking bug in drivers/tty/vt/consolemap.c In function con_insert_unipair(), when allocation for p2 and p1[n] fails, ENOMEM is returned, but previously allocated p1 is not freed, remains as leaking memory. Thus we should free p1 as well when this allocation fails. Signed-off-by: Gen Zhang <blackgod016574@gmail.com> Reviewed-by: Kees Cook <keescook@chromium.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> diff --git a/drivers/tty/vt/consolemap.c b/drivers/tty/vt/consolemap.c index b28aa0d289f8..79fcc96cc7c0 100644 --- a/drivers/tty/vt/consolemap.c +++ b/drivers/tty/vt/consolemap.c @@ -489,7 +489,11 @@ con_insert_unipair(struct uni_pagedir *p, u_short unicode, u_short fontpos) p2 = p1[n = (unicode >> 6) & 0x1f]; if (!p2) { p2 = p1[n] = kmalloc_array(64, sizeof(u16), GFP_KERNEL); - if (!p2) return -ENOMEM; + if (!p2) { + kfree(p1); + p->uni_pgdir[n] = NULL; + return -ENOMEM; + } memset(p2, 0xff, 64*sizeof(u16)); /* No glyphs for the characters (yet) */ }
  • 19. CVE-2019-12379 timeline 27/05/2019 – CVE published 28/05/2019 – NVD analyzed, score “Medium” 06/06/2019 – Fedora 5.1.6 kernel release 09/06/2019 – Fedora 5.1.7 kernel release 02/07/2019 – *DISPUTED*, link to revert 10/07/2019 – Netapp advisory for 5.1.3 kernel release (5.1.3 was released 16/05/2019)
  • 20. commit 15b3cd8ef46ad1b100e0d3c7e38774f330726820 Author: Ben Hutchings <ben@decadent.org.uk> Date: Tue Jun 4 19:00:39 2019 +0100 Revert "consolemap: Fix a memory leaking bug in drivers/tty/vt/consolemap.c" This reverts commit 84ecc2f6eb1cb12e6d44818f94fa49b50f06e6ac. con_insert_unipair() is working with a sparse 3-dimensional array: - p->uni_pgdir[] is the top layer - p1 points to a middle layer - p2 points to a bottom layer If it needs to allocate a new middle layer, and then fails to allocate a new bottom layer, it would previously free only p2, and now it frees both p1 and p2. But since the new middle layer was already registered in the top layer, it was not leaked. However, if it looks up an *existing* middle layer and then fails to allocate a bottom layer, it now frees both p1 and p2 but does *not* free any other bottom layers under p1. So it *introduces* a memory leak. The error path also cleared the wrong index in p->uni_pgdir[], introducing a use-after-free. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Fixes: 84ecc2f6eb1c ("consolemap: Fix a memory leaking bug in drivers/tty/vt/consolemap.c") Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> diff --git a/drivers/tty/vt/consolemap.c b/drivers/tty/vt/consolemap.c index 79fcc96cc7c0..b28aa0d289f8 100644 --- a/drivers/tty/vt/consolemap.c +++ b/drivers/tty/vt/consolemap.c @@ -489,11 +489,7 @@ con_insert_unipair(struct uni_pagedir *p, u_short unicode, u_short fontpos) p2 = p1[n = (unicode >> 6) & 0x1f]; if (!p2) { p2 = p1[n] = kmalloc_array(64, sizeof(u16), GFP_KERNEL); - if (!p2) { - kfree(p1); - p->uni_pgdir[n] = NULL; - return -ENOMEM; - } + if (!p2) return -ENOMEM; memset(p2, 0xff, 64*sizeof(u16)); /* No glyphs for the characters (yet) */ }
  • 21. CVE-2019-12379 timeline 21/05/2019 – original patch sent to lkml 23/05/2019 – v2 of patch sent based on review 24/05/2019 – v2 of patch sent again (v3???) 24/05/2019 – patch merged to tty-next tree 24/05/2019 – “probably the patch should just be removed...” 27/05/2019 – CVE issued 28/05/2019 – NVD analyzed, score “Medium” 04/06/2019 – Revert patch sent to lkml 04/06/2019 – Revert patch applied to tty-next tree 06/06/2019 – Fedora 5.1.7 kernel release 09/06/2019 – Fedora 5.1.8 kernel release 02/07/2019 – *DISPUTED*, link to revert 10/07/2019 – Netapp advisory for 5.1.3 kernel release 21/07/2019 – 5.3-rc1 is released with patch and revert applied
  • 22. CVE/NVD problems ● Abuse by engineers to circumvent internal procedures.
  • 23. CVE/NVD problems ● Abuse Hack by Red Hat engineers to circumvent internal procedures foolish management policies.
  • 24. Linux kernel CVEs ● 2006-2018, 1005 CVEs assigned – 41% (414) had a negative “fix date” – 12 never fixed – Average fix date, -100 days – Longest fix dates, -3897 and 2348 – 88 fixed within 1 week – Standard deviation 405 days
  • 25. Linux bug fixes ● ≈22 a day ● 5% of upstream commits ● Stable/longterm releases happen 1-2 times a week ● Fully tested as unified release ● Given to you for free!
  • 26. Linux security fixes ● Happen at least once a week ● Look like any other bugfix ● Many bugs not known to be security “related” ● No differentiation between bug types – “bug is a bug is a bug” ● Very few CVEs ever get assigned for kernel issues
  • 27. Linux security fixes != CVEs ● Small fraction of kernel fixes get CVEs ● If you only cherry-pick CVEs you have an insecure system ● CVEs have follow-on fixes not documented anywhere
  • 28. “If you are not using a supported Linux distribution kernel, or a stable / longterm kernel, you have an insecure system.” – me
  • 29. “If you are not using a supported Linux distribution kernel, or a stable / longterm kernel, you have an insecure system.” – me
  • 30. “popular phone” - March 2019, 4.14.85 ● 8.785 files changed, 3.380.040 lines added, 159.366 lines removed ● Compared to 4.14.108 (May 2019) – 1759 patches behind – 36 patches taken ● f2fs, thermal, mm logging cleanups, exynos specific fixes – Missed: ● 12 documented CVEs! – HID and networking ● Bugfixes for mm core, networking vulnerabilities, wireless fixes, HID, f2fs, ext4, ARM core, sound, input, USB, spinlock fixes!!!, netfilter, crypto, UFS, video, and more.
  • 31. LTS kernels fix problems ● Bugs are fixed before you realize it ● Google security team requests for Pixel phones in 2018: – 92% (201/218) problems were already fixed in an LTS kernel – No need for cherry-picking at all – Remaining issues were due to out-of-tree code
  • 32. How to “fix” CVEs ● Ignore them!
  • 33. How to “fix” CVEs ● Ignore them! ● Burn them down!
  • 34. How to “fix” CVEs ● Ignore them! ● Burn them down! ● Create something new
  • 35. Something “new” requirements ● Unique identifier ● Distributed ● Able to be ‘revised’ over time ● Searchable ● Public
  • 36. commit 15b3cd8ef46ad1b100e0d3c7e38774f330726820 Author: Ben Hutchings <ben@decadent.org.uk> Date: Tue Jun 4 19:00:39 2019 +0100 Revert "consolemap: Fix a memory leaking bug in drivers/tty/vt/consolemap.c" This reverts commit 84ecc2f6eb1cb12e6d44818f94fa49b50f06e6ac. con_insert_unipair() is working with a sparse 3-dimensional array: - p->uni_pgdir[] is the top layer - p1 points to a middle layer - p2 points to a bottom layer If it needs to allocate a new middle layer, and then fails to allocate a new bottom layer, it would previously free only p2, and now it frees both p1 and p2. But since the new middle layer was already registered in the top layer, it was not leaked. However, if it looks up an *existing* middle layer and then fails to allocate a bottom layer, it now frees both p1 and p2 but does *not* free any other bottom layers under p1. So it *introduces* a memory leak. The error path also cleared the wrong index in p->uni_pgdir[], introducing a use-after-free. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Fixes: 84ecc2f6eb1c ("consolemap: Fix a memory leaking bug in drivers/tty/vt/consolemap.c") Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> diff --git a/drivers/tty/vt/consolemap.c b/drivers/tty/vt/consolemap.c index 79fcc96cc7c0..b28aa0d289f8 100644 --- a/drivers/tty/vt/consolemap.c +++ b/drivers/tty/vt/consolemap.c @@ -489,11 +489,7 @@ con_insert_unipair(struct uni_pagedir *p, u_short unicode, u_short fontpos)
  • 37.
  • 38. commit 7caac62ed598a196d6ddf8d9c121e12e082cac3a Author: Wen Huang <huangwenabc@gmail.com> Date: Wed Aug 28 10:07:51 2019 +0800 mwifiex: Fix three heap overflow at parsing element in cfg80211_ap_settings mwifiex_update_vs_ie(),mwifiex_set_uap_rates() and mwifiex_set_wmm_params() call memcpy() without checking the destination size.Since the source is given from user-space, this may trigger a heap buffer overflow. Fix them by putting the length check before performing memcpy(). This fix addresses CVE-2019-14814,CVE-2019-14815,CVE-2019-14816. Signed-off-by: Wen Huang <huangwenabc@gmail.com> Acked-by: Ganapathi Bhat <gbhat@marvell.comg> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
  • 39. commit 941431c491a68e0428bdfb46bbe4cbc52f7bfabb Author: Wen Huang <huangwenabc@gmail.com> Date: Wed Aug 28 10:07:51 2019 +0800 mwifiex: Fix three heap overflow at parsing element in cfg80211_ap_settings commit 7caac62ed598a196d6ddf8d9c121e12e082cac3a upstream. mwifiex_update_vs_ie(),mwifiex_set_uap_rates() and mwifiex_set_wmm_params() call memcpy() without checking the destination size.Since the source is given from user-space, this may trigger a heap buffer overflow. Fix them by putting the length check before performing memcpy(). This fix addresses CVE-2019-14814,CVE-2019-14815,CVE-2019-14816. Signed-off-by: Wen Huang <huangwenabc@gmail.com> Acked-by: Ganapathi Bhat <gbhat@marvell.comg> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • 41. commit 52f6f9d74f31078964ca1574f7bb612da7877ac8 Author: Jann Horn <jannh@google.com> Date: Tue Mar 26 23:03:48 2019 +0100 floppy: fix usercopy direction As sparse points out, these two copy_from_user() should actually be copy_to_user(). Fixes: 229b53c9bf4e ("take floppy compat ioctls to sodding floppy.c") Cc: stable@vger.kernel.org Acked-by: Alexander Popov <alex.popov@linux.com> Reviewed-by: Mukesh Ojha <mojha@codeaurora.org> Signed-off-by: Jann Horn <jannh@google.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
  • 42. commit c3817ffb10369fac0979f0c4367159c412ccc3d8 Author: Jann Horn <jannh@google.com> Date: Tue Mar 26 23:03:48 2019 +0100 floppy: fix usercopy direction commit 52f6f9d74f31078964ca1574f7bb612da7877ac8 upstream. As sparse points out, these two copy_from_user() should actually be copy_to_user(). Fixes: 229b53c9bf4e ("take floppy compat ioctls to sodding floppy.c") Cc: stable@vger.kernel.org Acked-by: Alexander Popov <alex.popov@linux.com> Reviewed-by: Mukesh Ojha <mojha@codeaurora.org> Signed-off-by: Jann Horn <jannh@google.com> Signed-off-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • 44. Something “new” requirements ● Unique identifier ● Distributed ● Able to be ‘revised’ over time ● Searchable ● Public Git commit id!!!
  • 45. Something “new” requirements ● Unique identifier ● Distributed ● Able to be ‘revised’ over time ● Searchable ● Public ● No one knows what this is Git commit id!!!
  • 46. Marketing to the rescue!
  • 47. Marketing to the rescue! ● Linux Git Kernel id (LGKI)
  • 48. Marketing to the rescue! ● Linux Git Kernel id (LGKI) ● Linux Kernel id (LKI)
  • 49. Marketing to the rescue! ● Linux Git Kernel id (LGKI) ● Linux Kernel id (LKI) ● Linux Commit id (LCI)
  • 50. Marketing to the rescue! ● Linux Git Kernel id (LGKI) ● Linux Kernel id (LKI) ● Linux Commit id (LCI) ● Kernel Git id (KGI)
  • 51. Marketing to the rescue! ● Linux Git Kernel id (LGKI) ● Linux Kernel id (LKI) ● Linux Commit id (LCI) ● Kernel Git id (KGI) ● Git Kernel id (GKI)
  • 52. Marketing to the rescue! ● Linux Git Kernel id (LGKI) ● Linux Kernel id (LKI) ● Linux Commit id (LCI) ● Kernel Git id (KGI) ● Git Kernel id (GKI) ● Git Kernel Hash (GKH)
  • 53. Marketing to the rescue! ● Linux Git Kernel id (LGKI) ● Linux Kernel id (LKI) ● Linux Commit id (LCI) ● Kernel Git id (KGI) ● Git Kernel id (GKI) ● Git Kernel Hash (GKH) ● Git Hash id (GHI)
  • 54. Marketing to the rescue! ● Linux Git Kernel id (LGKI) ● Linux Kernel id (LKI) ● Linux Commit id (LCI) ● Kernel Git id (KGI) ● Git Kernel id (GKI) ● Git Kernel Hash (GKH) ● Git Hash id (GHI) ● Change id (CID)
  • 55. Change ID ● CID-[12 digit hexadecimal number] ● CID-7caac62ed598
  • 56. ~/linux/stable/linux-stable $ generate_cid.sh v4.19..v4.19.1^ CID-0fe5119e267f ("net: bridge: remove ipv6 zero address check in mcast queries") CID-1f2b5b8e2df4 ("sparc64: Wire up compat getpeername and getsockname.") CID-5b4fc3882a64 ("sparc64: Make corrupted user stacks more debuggable.") CID-2b4792eaa9f5 ("sparc64: Export __node_distance.") CID-713358369382 ("sctp: check policy more carefully when getting pr status") CID-5ef79151c2fb ("Revert "be2net: remove desc field from be_eq_obj"") CID-649f0837a8cc ("r8169: fix broken Wake-on-LAN from S5 (poweroff)") CID-ece23711dd95 ("net: Properly unlink GRO packets on overflow.") CID-7de414a9dd91 ("net: drop skb on failure in ip_check_defrag()") CID-a22712a96291 ("mlxsw: core: Fix devlink unregister flow") CID-ad0b9d94182b ("mlxsw: spectrum_switchdev: Don't ignore deletions of learned MACs") CID-fb692ec4117f ("net/smc: fix smc_buf_unuse to use the lgr pointer") CID-4ed591c8ab44 ("net/ipv6: Allow onlink routes to have a device mismatch if it is the default route") CID-46ebe2834ba5 ("openvswitch: Fix push/pop ethernet validation") CID-414dd6fb9a1a ("bonding: fix length of actor system") CID-ff002269a4ee ("vhost: Fix Spectre V1 vulnerability") CID-da71577545a5 ("rtnetlink: Disallow FDB configuration for non-Ethernet device") CID-89ab066d4229 ("Revert "net: simplify sock_poll_wait"") CID-db4f1be3ca9b ("net: udp: fix handling of CHECKSUM_COMPLETE packets") CID-30549aab146c ("net: stmmac: Fix stmmac_mdio_reset() when building stmmac as modules") CID-38b4f18d5637 ("net: sched: gred: pass the right attribute to gred_change_table_def()") CID-d48051c5b837 ("net/mlx5e: fix csum adjustments caused by RXFCS") CID-ee1abcf68935 ("ipv6/ndisc: Preserve IPv6 control buffer if protocol error handlers are called") CID-5a2de63fd1a5 ("bridge: do not add port to router list when receives query with source 0.0.0.0") ~/linux/stable/linux-stable $
  • 57. How to “fix” CVEs ● Ignore them! ● Burn them down! ● Create something new
  • 58. How to “fix” CVEs ● Ignore them! ● Burn them down! ● Create something new ● Re-brand what we have been doing for 14 years
  • 59. How to “fix” CVEs ● Ignore them! ● Burn them down! ● Create something new ● Re-brand what we have been doing for 14 years Change ID ● CID-[12 digit hexadecimal number] ● CID-7caac62ed598
  • 60.
  • 61. Change ID ● CID-[12 digit hexadecimal number] ● CID-7caac62ed598