Out-of-bounds read in Linux kernel - CVE-2021-46984
Published: May 31, 2024
Vulnerability details
The vulnerability allows a local user to perform a denial of service (DoS) attack.
The vulnerability exists due to an out-of-bounds read error within the dd_request_merge() function in block/mq-deadline.c, within the kyber_limit_depth() function in block/kyber-iosched.c, within the __blk_mq_sched_bio_merge() function in block/blk-mq-sched.c, within the bfq_remove_request() function in block/bfq-iosched.c. A local user can perform a denial of service (DoS) attack.
Affected software
SUSE Linux Enterprise Server 12 SP5 LTSS Extended
SUSE Linux Enterprise Server 12 SP5
Oracle Linux
SUSE Linux Enterprise High Performance Computing 15
SUSE Linux Enterprise High Availability Extension 15
SUSE Linux Enterprise Server 15
SUSE Linux Enterprise Server for SAP Applications 15
SUSE Linux Enterprise High Performance Computing LTSS 15
SUSE Linux Enterprise Server for SAP Applications 12
SUSE Linux Enterprise Server 12
SUSE Linux Enterprise High Performance Computing 12
SUSE Manager Retail Branch Server
SUSE Manager Server
SUSE Manager Proxy
SUSE Linux Enterprise Micro
SUSE Linux Enterprise Micro for Rancher
SUSE Enterprise Storage
Red Hat Enterprise Linux for Real Time for NFV
Anolis OS
Red Hat CodeReady Linux Builder for ARM 64
Red Hat CodeReady Linux Builder for Power, little endian
Red Hat CodeReady Linux Builder for x86_64
Red Hat Enterprise Linux for ARM 64
Red Hat Enterprise Linux for Power, little endian
Red Hat Enterprise Linux for IBM z Systems
Red Hat Enterprise Linux for x86_64
Red Hat Enterprise Linux for Real Time
SUSE Linux Enterprise Live Patching
SUSE Linux Enterprise Server 15 SP2 Business Critical Linux
SUSE Linux Enterprise High Performance Computing 15 SP2 LTSS
SUSE Linux Enterprise Server 15 SP2 LTSS
SUSE Linux Enterprise Server 15 SP3 LTSS
SUSE Linux Enterprise Server 15 SP3 Business Critical Linux
openSUSE Leap
openEuler
kgraft-patch-4_12_14-122_269-default
kernel-livepatch-5_3_18-150200_24_188-default
kernel-livepatch-SLE15-SP2_Update_47-debugsource
kernel-livepatch-5_3_18-150200_24_188-default-debuginfo
kernel-livepatch-5_3_18-150300_59_158-default-debuginfo
kernel-livepatch-5_3_18-150300_59_158-default
kernel-livepatch-SLE15-SP3_Update_43-debugsource
kernel-livepatch-5_3_18-150300_59_158-preempt-debuginfo
kernel-livepatch-5_3_18-150300_59_158-preempt
kernel-source
kernel-default-devel-debuginfo
kernel-default-kgraft
kernel-devel
kernel-default-kgraft-devel
kernel-default-man
gfs2-kmp-default-debuginfo
ocfs2-kmp-default
kernel-default-debugsource
kernel-default-debuginfo
dlm-kmp-default-debuginfo
kernel-default-base-debuginfo
ocfs2-kmp-default-debuginfo
kernel-syms
cluster-md-kmp-default-debuginfo
kernel-default
kernel-macros
kernel-default-devel
dlm-kmp-default
cluster-md-kmp-default
kernel-default-base
gfs2-kmp-default
kernel (Red Hat package)
kernel-rt (Red Hat package)
kernel-cross-headers
bpftool
kernel
kernel-core
kernel-tools
kernel-modules-extra
kernel-modules
kernel-headers
kernel-debug-modules-extra
kernel-debug-modules
kernel-debug-devel
kernel-debug-core
kernel-debug
kernel-doc
kernel-abi-stablelists
python3-perf
perf
kernel-tools-libs-devel
kernel-tools-libs
kernel-debuginfo
kernel-tools-debuginfo
bpftool-debuginfo
python3-perf-debuginfo
perf-debuginfo
kernel-tools-devel
python2-perf
kernel-debugsource
python2-perf-debuginfo
kernel-default-livepatch-devel
reiserfs-kmp-default-debuginfo
reiserfs-kmp-default
kernel-docs
kernel-preempt-debuginfo
kernel-obs-build
kernel-obs-build-debugsource
kernel-preempt-devel
kernel-preempt-debugsource
kernel-preempt
kernel-preempt-devel-debuginfo
kernel-default-livepatch
gfs2-kmp-64kb
dtb-cavium
dtb-zte
dlm-kmp-64kb-debuginfo
kernel-64kb-livepatch-devel
kernel-64kb-optional
dtb-arm
kernel-64kb-extra
dtb-rockchip
reiserfs-kmp-64kb
ocfs2-kmp-64kb-debuginfo
dtb-marvell
kernel-64kb-extra-debuginfo
ocfs2-kmp-64kb
dtb-mediatek
dtb-socionext
kernel-64kb-optional-debuginfo
reiserfs-kmp-64kb-debuginfo
kernel-64kb-devel-debuginfo
dtb-broadcom
cluster-md-kmp-64kb
dtb-al
cluster-md-kmp-64kb-debuginfo
dtb-amlogic
dtb-nvidia
dtb-apm
dlm-kmp-64kb
kernel-default-extra
kselftests-kmp-default-debuginfo
kernel-default-extra-debuginfo
kernel-default-optional
kernel-default-optional-debuginfo
kernel-obs-qa
kernel-64kb-debugsource
kselftests-kmp-64kb-debuginfo
kernel-64kb
kernel-kvmsmall-devel
kernel-64kb-debuginfo
kernel-docs-html
kernel-source-vanilla
kernel-kvmsmall
kernel-debug-debuginfo
kernel-debug-livepatch-devel
kernel-64kb-devel
kernel-kvmsmall-livepatch-devel
kernel-kvmsmall-debuginfo
kernel-debug-devel-debuginfo
kernel-kvmsmall-debugsource
kernel-debug-debugsource
kernel-kvmsmall-devel-debuginfo
kselftests-kmp-default
dtb-freescale
cluster-md-kmp-preempt
ocfs2-kmp-preempt-debuginfo
kselftests-kmp-preempt-debuginfo
kernel-zfcpdump
kernel-zfcpdump-debuginfo
kernel-zfcpdump-debugsource
dtb-aarch64
dtb-qcom
dtb-sprd
dtb-renesas
kernel-preempt-livepatch-devel
kselftests-kmp-64kb
dtb-allwinner
dtb-hisilicon
gfs2-kmp-64kb-debuginfo
dtb-lg
dtb-altera
dtb-amd
dtb-exynos
dtb-xilinx
gfs2-kmp-preempt
dlm-kmp-preempt-debuginfo
kernel-preempt-optional
dlm-kmp-preempt
reiserfs-kmp-preempt
cluster-md-kmp-preempt-debuginfo
kernel-preempt-extra
gfs2-kmp-preempt-debuginfo
kernel-preempt-extra-debuginfo
ocfs2-kmp-preempt
kernel-preempt-optional-debuginfo
kselftests-kmp-preempt
reiserfs-kmp-preempt-debuginfo
kernel-default-base-rebuild
kernel-rt
kernel-rt-debugsource
kernel-rt-debuginfo
kernel-source-rt
Cloud Pak for Network Automation
Technical Support Appliance
IBM Cloud Pak for Watson AIOps
Red Hat OpenShift Container Platform
OpenShift Logging
How to mitigate CVE-2021-46984
kernel-livepatch-5_3_18-150200_24_188-default - update to 1-150200.5.3.3
kernel-livepatch-SLE15-SP2_Update_47-debugsource - update to 1-150200.5.3.3
kernel-livepatch-5_3_18-150200_24_188-default-debuginfo - update to 1-150200.5.3.3
kernel-livepatch-5_3_18-150300_59_158-default-debuginfo - update to 1-150300.7.3.5
kernel-livepatch-5_3_18-150300_59_158-default - update to 1-150300.7.3.5
kernel-livepatch-SLE15-SP3_Update_43-debugsource - update to 1-150300.7.3.5
kernel-livepatch-5_3_18-150300_59_158-preempt-debuginfo - update to 1-150300.7.3.5
kernel-livepatch-5_3_18-150300_59_158-preempt - update to 1-150300.7.3.5
Cloud Pak for Network Automation - update to 2.7.7
Technical Support Appliance - update to 3.0.1
IBM Cloud Pak for Watson AIOps - update to 4.7.0
kernel-source - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-default-devel-debuginfo - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-default-kgraft - update to 4.12.14-122.269.1
kernel-devel - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-default-kgraft-devel - update to 4.12.14-122.269.1
kernel-default-man - update to 4.12.14-122.269.1
gfs2-kmp-default-debuginfo - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
ocfs2-kmp-default - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-default-debugsource - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-default-debuginfo - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
dlm-kmp-default-debuginfo - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-default-base-debuginfo - update to 4.12.14-122.269.1
ocfs2-kmp-default-debuginfo - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-syms - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
cluster-md-kmp-default-debuginfo - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-default - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-macros - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-default-devel - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
dlm-kmp-default - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
cluster-md-kmp-default - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-default-base - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1.150200.9.95.3, 5.3.18-150300.59.158.1.150300.18.92.5
gfs2-kmp-default - addressed in versions 4.12.14-122.269.1, 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
Red Hat OpenShift Container Platform - addressed in versions 4.13.52, 4.14.38, 4.15.35
kernel (Red Hat package) - update to 4.18.0-553.22.1.el8_10
kernel-rt (Red Hat package) - update to 4.18.0-553.22.1.rt7.363.el8_10
kernel-cross-headers - update to 4.18.0-553.22.1.0.1
bpftool - update to 4.18.0-553.22.1.0.1
kernel - update to 4.18.0-553.22.1.0.1
kernel-core - update to 4.18.0-553.22.1.0.1
kernel-tools - update to 4.18.0-553.22.1.0.1
kernel-modules-extra - update to 4.18.0-553.22.1.0.1
kernel-modules - update to 4.18.0-553.22.1.0.1
kernel-headers - update to 4.18.0-553.22.1.0.1
kernel-devel - update to 4.18.0-553.22.1.0.1
kernel-debug-modules-extra - update to 4.18.0-553.22.1.0.1
kernel-debug-modules - update to 4.18.0-553.22.1.0.1
kernel-debug-devel - update to 4.18.0-553.22.1.0.1
kernel-debug-core - update to 4.18.0-553.22.1.0.1
kernel-debug - update to 4.18.0-553.22.1.0.1
kernel-doc - update to 4.18.0-553.22.1.0.1
kernel-abi-stablelists - update to 4.18.0-553.22.1.0.1
python3-perf - update to 4.18.0-553.22.1.0.1
perf - update to 4.18.0-553.22.1.0.1
kernel-tools-libs-devel - update to 4.18.0-553.22.1.0.1
kernel-tools-libs - update to 4.18.0-553.22.1.0.1
kernel-source - addressed in versions 4.19.90-2404.2.0.0246, 4.19.90-2404.2.0.0273
kernel - addressed in versions 4.19.90-2404.2.0.0246, 4.19.90-2404.2.0.0273
kernel-devel - addressed in versions 4.19.90-2404.2.0.0246, 4.19.90-2404.2.0.0273
kernel-debuginfo - addressed in versions 4.19.90-2404.2.0.0246, 4.19.90-2404.2.0.0273
bpftool - addressed in versions 4.19.90-2404.2.0.0246, 4.19.90-2404.2.0.0273
kernel-tools-debuginfo - addressed in versions 4.19.90-2404.2.0.0246, 4.19.90-2404.2.0.0273
bpftool-debuginfo - addressed in versions 4.19.90-2404.2.0.0246, 4.19.90-2404.2.0.0273
kernel-tools - addressed in versions 4.19.90-2404.2.0.0246, 4.19.90-2404.2.0.0273
python3-perf-debuginfo - addressed in versions 4.19.90-2404.2.0.0246, 4.19.90-2404.2.0.0273
perf-debuginfo - addressed in versions 4.19.90-2404.2.0.0246, 4.19.90-2404.2.0.0273
kernel-tools-devel - addressed in versions 4.19.90-2404.2.0.0246, 4.19.90-2404.2.0.0273
perf - addressed in versions 4.19.90-2404.2.0.0246, 4.19.90-2404.2.0.0273
python2-perf - addressed in versions 4.19.90-2404.2.0.0246, 4.19.90-2404.2.0.0273
kernel-debugsource - addressed in versions 4.19.90-2404.2.0.0246, 4.19.90-2404.2.0.0273
python2-perf-debuginfo - addressed in versions 4.19.90-2404.2.0.0246, 4.19.90-2404.2.0.0273
python3-perf - addressed in versions 4.19.90-2404.2.0.0246, 4.19.90-2404.2.0.0273
kernel-default-livepatch-devel - addressed in versions 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
reiserfs-kmp-default-debuginfo - addressed in versions 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
reiserfs-kmp-default - addressed in versions 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-docs - addressed in versions 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-preempt-debuginfo - addressed in versions 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-obs-build - addressed in versions 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-obs-build-debugsource - addressed in versions 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-preempt-devel - addressed in versions 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-preempt-debugsource - addressed in versions 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-preempt - addressed in versions 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-preempt-devel-debuginfo - addressed in versions 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
kernel-default-livepatch - addressed in versions 5.3.18-150200.24.188.1, 5.3.18-150300.59.158.1
gfs2-kmp-64kb - update to 5.3.18-150300.59.158.1
dtb-cavium - update to 5.3.18-150300.59.158.1
dtb-zte - update to 5.3.18-150300.59.158.1
dlm-kmp-64kb-debuginfo - update to 5.3.18-150300.59.158.1
kernel-64kb-livepatch-devel - update to 5.3.18-150300.59.158.1
kernel-64kb-optional - update to 5.3.18-150300.59.158.1
dtb-arm - update to 5.3.18-150300.59.158.1
kernel-64kb-extra - update to 5.3.18-150300.59.158.1
dtb-rockchip - update to 5.3.18-150300.59.158.1
reiserfs-kmp-64kb - update to 5.3.18-150300.59.158.1
ocfs2-kmp-64kb-debuginfo - update to 5.3.18-150300.59.158.1
dtb-marvell - update to 5.3.18-150300.59.158.1
kernel-64kb-extra-debuginfo - update to 5.3.18-150300.59.158.1
ocfs2-kmp-64kb - update to 5.3.18-150300.59.158.1
dtb-mediatek - update to 5.3.18-150300.59.158.1
dtb-socionext - update to 5.3.18-150300.59.158.1
kernel-64kb-optional-debuginfo - update to 5.3.18-150300.59.158.1
reiserfs-kmp-64kb-debuginfo - update to 5.3.18-150300.59.158.1
kernel-64kb-devel-debuginfo - update to 5.3.18-150300.59.158.1
dtb-broadcom - update to 5.3.18-150300.59.158.1
cluster-md-kmp-64kb - update to 5.3.18-150300.59.158.1
dtb-al - update to 5.3.18-150300.59.158.1
cluster-md-kmp-64kb-debuginfo - update to 5.3.18-150300.59.158.1
dtb-amlogic - update to 5.3.18-150300.59.158.1
dtb-nvidia - update to 5.3.18-150300.59.158.1
dtb-apm - update to 5.3.18-150300.59.158.1
dlm-kmp-64kb - update to 5.3.18-150300.59.158.1
kernel-default-extra - update to 5.3.18-150300.59.158.1
kselftests-kmp-default-debuginfo - update to 5.3.18-150300.59.158.1
kernel-default-extra-debuginfo - update to 5.3.18-150300.59.158.1
kernel-default-optional - update to 5.3.18-150300.59.158.1
kernel-default-optional-debuginfo - update to 5.3.18-150300.59.158.1
kernel-obs-qa - update to 5.3.18-150300.59.158.1
kernel-64kb-debugsource - update to 5.3.18-150300.59.158.1
kselftests-kmp-64kb-debuginfo - update to 5.3.18-150300.59.158.1
kernel-64kb - update to 5.3.18-150300.59.158.1
kernel-kvmsmall-devel - update to 5.3.18-150300.59.158.1
kernel-64kb-debuginfo - update to 5.3.18-150300.59.158.1
kernel-docs-html - update to 5.3.18-150300.59.158.1
kernel-source-vanilla - update to 5.3.18-150300.59.158.1
kernel-kvmsmall - update to 5.3.18-150300.59.158.1
kernel-debug - update to 5.3.18-150300.59.158.1
kernel-debug-debuginfo - update to 5.3.18-150300.59.158.1
kernel-debug-livepatch-devel - update to 5.3.18-150300.59.158.1
kernel-debug-devel - update to 5.3.18-150300.59.158.1
kernel-64kb-devel - update to 5.3.18-150300.59.158.1
kernel-kvmsmall-livepatch-devel - update to 5.3.18-150300.59.158.1
kernel-kvmsmall-debuginfo - update to 5.3.18-150300.59.158.1
kernel-debug-devel-debuginfo - update to 5.3.18-150300.59.158.1
kernel-kvmsmall-debugsource - update to 5.3.18-150300.59.158.1
kernel-debug-debugsource - update to 5.3.18-150300.59.158.1
kernel-kvmsmall-devel-debuginfo - update to 5.3.18-150300.59.158.1
kselftests-kmp-default - update to 5.3.18-150300.59.158.1
dtb-freescale - update to 5.3.18-150300.59.158.1
cluster-md-kmp-preempt - update to 5.3.18-150300.59.158.1
ocfs2-kmp-preempt-debuginfo - update to 5.3.18-150300.59.158.1
kselftests-kmp-preempt-debuginfo - update to 5.3.18-150300.59.158.1
kernel-zfcpdump - update to 5.3.18-150300.59.158.1
kernel-zfcpdump-debuginfo - update to 5.3.18-150300.59.158.1
kernel-zfcpdump-debugsource - update to 5.3.18-150300.59.158.1
dtb-aarch64 - update to 5.3.18-150300.59.158.1
dtb-qcom - update to 5.3.18-150300.59.158.1
dtb-sprd - update to 5.3.18-150300.59.158.1
dtb-renesas - update to 5.3.18-150300.59.158.1
kernel-preempt-livepatch-devel - update to 5.3.18-150300.59.158.1
kselftests-kmp-64kb - update to 5.3.18-150300.59.158.1
dtb-allwinner - update to 5.3.18-150300.59.158.1
dtb-hisilicon - update to 5.3.18-150300.59.158.1
gfs2-kmp-64kb-debuginfo - update to 5.3.18-150300.59.158.1
dtb-lg - update to 5.3.18-150300.59.158.1
dtb-altera - update to 5.3.18-150300.59.158.1
dtb-amd - update to 5.3.18-150300.59.158.1
dtb-exynos - update to 5.3.18-150300.59.158.1
dtb-xilinx - update to 5.3.18-150300.59.158.1
gfs2-kmp-preempt - update to 5.3.18-150300.59.158.1
dlm-kmp-preempt-debuginfo - update to 5.3.18-150300.59.158.1
kernel-preempt-optional - update to 5.3.18-150300.59.158.1
dlm-kmp-preempt - update to 5.3.18-150300.59.158.1
reiserfs-kmp-preempt - update to 5.3.18-150300.59.158.1
cluster-md-kmp-preempt-debuginfo - update to 5.3.18-150300.59.158.1
kernel-preempt-extra - update to 5.3.18-150300.59.158.1
gfs2-kmp-preempt-debuginfo - update to 5.3.18-150300.59.158.1
kernel-preempt-extra-debuginfo - update to 5.3.18-150300.59.158.1
ocfs2-kmp-preempt - update to 5.3.18-150300.59.158.1
kernel-preempt-optional-debuginfo - update to 5.3.18-150300.59.158.1
kselftests-kmp-preempt - update to 5.3.18-150300.59.158.1
reiserfs-kmp-preempt-debuginfo - update to 5.3.18-150300.59.158.1
kernel-default-base-rebuild - update to 5.3.18-150300.59.158.1.150300.18.92.5
kernel-rt - update to 5.3.18-150300.166.1
kernel-rt-debugsource - update to 5.3.18-150300.166.1
kernel-rt-debuginfo - update to 5.3.18-150300.166.1
kernel-source-rt - update to 5.3.18-150300.166.1
OpenShift Logging - update to 5.6.25
External References
- https://git.kernel.org/stable/c/0b6b4b90b74c27bea968c214d820ba4254b903a5
- https://git.kernel.org/stable/c/54dbe2d2c1fcabf650c7a8b747601da355cd7f9f
- https://git.kernel.org/stable/c/a287cd84e047045f5a4d4da793414e848de627c6
- https://git.kernel.org/stable/c/2ef3c76540c49167a0bc3d5f80d00fd1fc4586df
- https://git.kernel.org/stable/c/efed9a3337e341bd0989161b97453b52567bc59d
Related Security Bulletins
- Out-of-bounds read in Linux kernel block
- SUSE update for the Linux Kernel
- openEuler 20.03 LTS SP1 update for kernel
- openEuler 20.03 LTS SP4 update for kernel
- SUSE update for the Linux Kernel
- SUSE update for the Linux Kernel
- Red Hat Enterprise Linux 8 update for kernel-rt
- Multiple vulnerabilities in Red Hat OpenShift Container Platform 4.15
- Multiple vulnerabilities in Red Hat OpenShift Container Platform 4.14
- Red Hat Enterprise Linux 8 update for kernel
- Multiple vulnerabilities in Oracle Linux
- Multiple vulnerabilities in Red Hat OpenShift Container Platform 4.13
- Multiple vulnerabilities in OpenShift Logging 5.6
- Multiple vulnerabilities in IBM Cloud Pak for Network Automation
- Multiple vulnerabilities in IBM Technical Support Appliance
- Multiple vulnerabilities in IBM Cloud Pak for AIOps
- Anolis OS update for kernel
- SUSE update for the Linux Kernel