Upstream information
Description
In the Linux kernel, the following vulnerability has been resolved:bpf: Detect IP == ksym.end as part of BPF program
Now that bpf_throw kfunc is the first such call instruction that has
noreturn semantics within the verifier, this also kicks in dead code
elimination in unprecedented ways. For one, any instruction following
a bpf_throw call will never be marked as seen. Moreover, if a callchain
ends up throwing, any instructions after the call instruction to the
eventually throwing subprog in callers will also never be marked as
seen.
The tempting way to fix this would be to emit extra 'int3' instructions
which bump the jited_len of a program, and ensure that during runtime
when a program throws, we can discover its boundaries even if the call
instruction to bpf_throw (or to subprogs that always throw) is emitted
as the final instruction in the program.
An example of such a program would be this:
do_something():
...
r0 = 0
exit
foo():
r1 = 0
call bpf_throw
r0 = 0
exit
bar(cond):
if r1 != 0 goto pc+2
call do_something
exit
call foo
r0 = 0 // Never seen by verifier
exit //
main(ctx):
r1 = ...
call bar
r0 = 0
exit
Here, if we do end up throwing, the stacktrace would be the following:
bpf_throw
foo
bar
main
In bar, the final instruction emitted will be the call to foo, as such,
the return address will be the subsequent instruction (which the JIT
emits as int3 on x86). This will end up lying outside the jited_len of
the program, thus, when unwinding, we will fail to discover the return
address as belonging to any program and end up in a panic due to the
unreliable stack unwinding of BPF programs that we never expect.
To remedy this case, make bpf_prog_ksym_find treat IP == ksym.end as
part of the BPF program, so that is_bpf_text_address returns true when
such a case occurs, and we are able to unwind reliably when the final
instruction ends up being a call instruction.
SUSE information
Overall state of this security issue: Resolved
This issue is currently rated as having moderate severity.
CNA (CISA-ADP) | SUSE | |
---|---|---|
Base Score | 6.6 | 5.5 |
Vector | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
Attack Vector | Local | Local |
Attack Complexity | Low | Low |
Privileges Required | Low | Low |
User Interaction | None | None |
Scope | Unchanged | Unchanged |
Confidentiality Impact | High | None |
Integrity Impact | Low | None |
Availability Impact | Low | High |
CVSSv3 Version | 3.1 | 3.1 |
Status of this issue by product and package
Please note that this evaluation state might be work in progress, incomplete or outdated. Also information for service packs in the LTSS phase is only included for issues meeting the LTSS criteria. If in doubt, feel free to contact us for clarification. The updates are grouped by state of their lifecycle. SUSE product lifecycles are documented on the lifecycle page.
Product(s) | Source package | State |
---|---|---|
Products under general support and receiving all security fixes. | ||
SUSE Linux Enterprise Desktop 15 SP5 | kernel-default | Not affected |
SUSE Linux Enterprise Desktop 15 SP5 | kernel-source | Not affected |
SUSE Linux Enterprise Desktop 15 SP6 | kernel-default | Not affected |
SUSE Linux Enterprise Desktop 15 SP6 | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP5 | kernel-default | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP5 | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP5 | kernel-source-azure | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP6 | kernel-default | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP6 | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP6 | kernel-source-azure | Not affected |
SUSE Linux Enterprise Micro 5.1 | kernel-default | Not affected |
SUSE Linux Enterprise Micro 5.1 | kernel-rt | Not affected |
SUSE Linux Enterprise Micro 5.1 | kernel-source-rt | Not affected |
SUSE Linux Enterprise Micro 5.2 | kernel-default | Not affected |
SUSE Linux Enterprise Micro 5.2 | kernel-rt | Not affected |
SUSE Linux Enterprise Micro 5.2 | kernel-source-rt | Not affected |
SUSE Linux Enterprise Micro 5.3 | kernel-default | Not affected |
SUSE Linux Enterprise Micro 5.3 | kernel-rt | Not affected |
SUSE Linux Enterprise Micro 5.3 | kernel-source-rt | Not affected |
SUSE Linux Enterprise Micro 5.4 | kernel-default | Not affected |
SUSE Linux Enterprise Micro 5.4 | kernel-rt | Not affected |
SUSE Linux Enterprise Micro 5.4 | kernel-source-rt | Not affected |
SUSE Linux Enterprise Micro 5.5 | kernel-source-rt | Not affected |
SUSE Linux Enterprise Micro 6.0 | kernel-source | Not affected |
SUSE Linux Enterprise Micro 6.0 | kernel-source-rt | Not affected |
SUSE Linux Enterprise Module for Basesystem 15 SP5 | kernel-default | Not affected |
SUSE Linux Enterprise Module for Basesystem 15 SP5 | kernel-source | Not affected |
SUSE Linux Enterprise Module for Basesystem 15 SP6 | kernel-default | Not affected |
SUSE Linux Enterprise Module for Basesystem 15 SP6 | kernel-source | Not affected |
SUSE Linux Enterprise Module for Development Tools 15 SP5 | kernel-default | Not affected |
SUSE Linux Enterprise Module for Development Tools 15 SP5 | kernel-source | Not affected |
SUSE Linux Enterprise Module for Development Tools 15 SP6 | kernel-default | Not affected |
SUSE Linux Enterprise Module for Development Tools 15 SP6 | kernel-source | Not affected |
SUSE Linux Enterprise Module for Public Cloud 15 SP5 | kernel-source-azure | Not affected |
SUSE Linux Enterprise Module for Public Cloud 15 SP6 | kernel-source-azure | Not affected |
SUSE Linux Enterprise Real Time 15 SP5 | kernel-source-rt | Not affected |
SUSE Linux Enterprise Real Time 15 SP6 | kernel-source-rt | Not affected |
SUSE Linux Enterprise Server 15 SP5 | kernel-default | Not affected |
SUSE Linux Enterprise Server 15 SP5 | kernel-source | Not affected |
SUSE Linux Enterprise Server 15 SP5 | kernel-source-azure | Not affected |
SUSE Linux Enterprise Server 15 SP6 | kernel-default | Not affected |
SUSE Linux Enterprise Server 15 SP6 | kernel-source | Not affected |
SUSE Linux Enterprise Server 15 SP6 | kernel-source-azure | Not affected |
SUSE Linux Enterprise Server for SAP Applications 15 SP5 | kernel-default | Not affected |
SUSE Linux Enterprise Server for SAP Applications 15 SP5 | kernel-source | Not affected |
SUSE Linux Enterprise Server for SAP Applications 15 SP5 | kernel-source-azure | Not affected |
SUSE Linux Enterprise Server for SAP Applications 15 SP6 | kernel-default | Not affected |
SUSE Linux Enterprise Server for SAP Applications 15 SP6 | kernel-source | Not affected |
SUSE Linux Enterprise Server for SAP Applications 15 SP6 | kernel-source-azure | Not affected |
SUSE Manager Proxy 4.3 | kernel-default | Not affected |
SUSE Manager Proxy 4.3 | kernel-source | Not affected |
SUSE Manager Retail Branch Server 4.3 | kernel-default | Not affected |
SUSE Manager Retail Branch Server 4.3 | kernel-source | Not affected |
SUSE Manager Server 4.3 | kernel-default | Not affected |
SUSE Manager Server 4.3 | kernel-source | Not affected |
SUSE Real Time Module 15 SP5 | kernel-source-rt | Not affected |
SUSE Real Time Module 15 SP6 | kernel-source-rt | Not affected |
openSUSE Leap 15.5 | kernel-default | Not affected |
openSUSE Leap 15.5 | kernel-source | Not affected |
openSUSE Leap 15.5 | kernel-source-azure | Not affected |
openSUSE Leap 15.5 | kernel-source-rt | Not affected |
openSUSE Leap 15.6 | kernel-default | Not affected |
openSUSE Leap 15.6 | kernel-source | Not affected |
openSUSE Leap 15.6 | kernel-source-azure | Not affected |
openSUSE Leap 15.6 | kernel-source-rt | Not affected |
Products under Long Term Service Pack support and receiving important and critical security fixes. | ||
SUSE Linux Enterprise Desktop 15 SP4 | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 12 SP5 | kernel-default | Not affected |
SUSE Linux Enterprise High Performance Computing 12 SP5 | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 12 SP5 | kernel-source-azure | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP2 | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | kernel-default | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP3 | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | kernel-default | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP4 | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | kernel-default | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | kernel-default | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | kernel-source | Not affected |
SUSE Linux Enterprise Module for Basesystem 15 SP2 | kernel-source | Not affected |
SUSE Linux Enterprise Module for Basesystem 15 SP3 | kernel-source | Not affected |
SUSE Linux Enterprise Module for Basesystem 15 SP4 | kernel-source | Not affected |
SUSE Linux Enterprise Module for Development Tools 15 SP2 | kernel-source | Not affected |
SUSE Linux Enterprise Module for Development Tools 15 SP3 | kernel-source | Not affected |
SUSE Linux Enterprise Module for Development Tools 15 SP4 | kernel-source | Not affected |
SUSE Linux Enterprise Server 11 SP4 LTSS EXTREME CORE | kernel-default | Not affected |
SUSE Linux Enterprise Server 11 SP4 LTSS EXTREME CORE | kernel-source | Not affected |
SUSE Linux Enterprise Server 12 SP5 | kernel-default | Not affected |
SUSE Linux Enterprise Server 12 SP5 | kernel-source | Not affected |
SUSE Linux Enterprise Server 12 SP5 | kernel-source-azure | Not affected |
SUSE Linux Enterprise Server 12 SP5-LTSS | kernel-source | Not affected |
SUSE Linux Enterprise Server 12 SP5-LTSS | kernel-source-azure | Not affected |
SUSE Linux Enterprise Server 15 SP2 | kernel-source | Not affected |
SUSE Linux Enterprise Server 15 SP2-LTSS | kernel-default | Not affected |
SUSE Linux Enterprise Server 15 SP2-LTSS | kernel-source | Not affected |
SUSE Linux Enterprise Server 15 SP3 | kernel-source | Not affected |
SUSE Linux Enterprise Server 15 SP3-LTSS | kernel-default | Not affected |
SUSE Linux Enterprise Server 15 SP3-LTSS | kernel-source | Not affected |
SUSE Linux Enterprise Server 15 SP4 | kernel-source | Not affected |
SUSE Linux Enterprise Server 15 SP4-LTSS | kernel-default | Not affected |
SUSE Linux Enterprise Server 15 SP4-LTSS | kernel-source | Not affected |
SUSE Linux Enterprise Server for SAP Applications 12 SP5 | kernel-default | Not affected |
SUSE Linux Enterprise Server for SAP Applications 12 SP5 | kernel-source | Not affected |
SUSE Linux Enterprise Server for SAP Applications 12 SP5 | kernel-source-azure | Not affected |
SUSE Linux Enterprise Server for SAP Applications 15 SP2 | kernel-default | Not affected |
SUSE Linux Enterprise Server for SAP Applications 15 SP2 | kernel-source | Not affected |
SUSE Linux Enterprise Server for SAP Applications 15 SP3 | kernel-default | Not affected |
SUSE Linux Enterprise Server for SAP Applications 15 SP3 | kernel-source | Not affected |
SUSE Linux Enterprise Server for SAP Applications 15 SP4 | kernel-default | Not affected |
SUSE Linux Enterprise Server for SAP Applications 15 SP4 | kernel-source | Not affected |
Products past their end of life and not receiving proactive updates anymore. | ||
HPE Helion OpenStack 8 | kernel-source | Not affected |
SUSE CaaS Platform 4.0 | kernel-source | Not affected |
SUSE CaaS Platform Toolchain 3 | kernel-source | Not affected |
SUSE Enterprise Storage 6 | kernel-source | Not affected |
SUSE Enterprise Storage 7 | kernel-source | Not affected |
SUSE Enterprise Storage 7.1 | kernel-default | Not affected |
SUSE Enterprise Storage 7.1 | kernel-source | Not affected |
SUSE Linux Enterprise Desktop 11 SP4 | kernel-source | Not affected |
SUSE Linux Enterprise Desktop 12 SP3 | kernel-source | Not affected |
SUSE Linux Enterprise Desktop 12 SP4 | kernel-source | Not affected |
SUSE Linux Enterprise Desktop 15 | kernel-source | Not affected |
SUSE Linux Enterprise Desktop 15 SP1 | kernel-source | Not affected |
SUSE Linux Enterprise Desktop 15 SP2 | kernel-source | Not affected |
SUSE Linux Enterprise Desktop 15 SP3 | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 15 | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP1 | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP1-ESPOS | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 15 SP1-LTSS | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 15-ESPOS | kernel-source | Not affected |
SUSE Linux Enterprise High Performance Computing 15-LTSS | kernel-source | Not affected |
SUSE Linux Enterprise Micro 5.0 | kernel-default | Not affected |
SUSE Linux Enterprise Module for Basesystem 15 | kernel-source | Not affected |
SUSE Linux Enterprise Module for Basesystem 15 SP1 | kernel-source | Not affected |
SUSE Linux Enterprise Module for Development Tools 15 | kernel-source | Not affected |
SUSE Linux Enterprise Module for Development Tools 15 SP1 | kernel-source | Not affected |
SUSE Linux Enterprise Real Time 12 SP5 | kernel-source-rt | Not affected |
SUSE Linux Enterprise Real Time 15 SP2 | kernel-source | Not affected |
SUSE Linux Enterprise Real Time 15 SP3 | kernel-source | Not affected |
SUSE Linux Enterprise Real Time 15 SP3 | kernel-source-rt | Not affected |
SUSE Linux Enterprise Real Time 15 SP4 | kernel-source | Not affected |
SUSE Linux Enterprise Real Time 15 SP4 | kernel-source-rt | Not affected |
SUSE Linux Enterprise Server 11 SP4 | kernel-source | Not affected |
SUSE Linux Enterprise Server 11 SP4 LTSS | kernel-default | Not affected |
SUSE Linux Enterprise Server 11 SP4 LTSS | kernel-source | Not affected |
SUSE Linux Enterprise Server 11 SP4-LTSS | kernel-source | Not affected |
SUSE Linux Enterprise Server 12 SP3 | kernel-source | Not affected |
SUSE Linux Enterprise Server 12 SP3-BCL | kernel-source | Not affected |
SUSE Linux Enterprise Server 12 SP3-ESPOS | kernel-source | Not affected |
SUSE Linux Enterprise Server 12 SP3-LTSS | kernel-source | Not affected |
SUSE Linux Enterprise Server 12 SP4 | kernel-source | Not affected |
SUSE Linux Enterprise Server 12 SP4-ESPOS | kernel-source | Not affected |
SUSE Linux Enterprise Server 12 SP4-LTSS | kernel-default | Not affected |
SUSE Linux Enterprise Server 12 SP4-LTSS | kernel-source | Not affected |
SUSE Linux Enterprise Server 15 | kernel-source | Not affected |
SUSE Linux Enterprise Server 15 SP1 | kernel-source | Not affected |
SUSE Linux Enterprise Server 15 SP1-BCL | kernel-source | Not affected |
SUSE Linux Enterprise Server 15 SP1-LTSS | kernel-default | Not affected |
SUSE Linux Enterprise Server 15 SP1-LTSS | kernel-source | Not affected |
SUSE Linux Enterprise Server 15 SP2-BCL | kernel-source | Not affected |
SUSE Linux Enterprise Server 15 SP3-BCL | kernel-source | Not affected |
SUSE Linux Enterprise Server 15-LTSS | kernel-default | Not affected |
SUSE Linux Enterprise Server 15-LTSS | kernel-source | Not affected |
SUSE Linux Enterprise Server for SAP Applications 12 SP3 | kernel-source | Not affected |
SUSE Linux Enterprise Server for SAP Applications 12 SP4 | kernel-default | Not affected |
SUSE Linux Enterprise Server for SAP Applications 12 SP4 | kernel-source | Not affected |
SUSE Linux Enterprise Server for SAP Applications 15 | kernel-source | Not affected |
SUSE Linux Enterprise Server for SAP Applications 15 SP1 | kernel-source | Not affected |
SUSE Manager Proxy 4.0 | kernel-source | Not affected |
SUSE Manager Proxy 4.1 | kernel-source | Not affected |
SUSE Manager Proxy 4.2 | kernel-source | Not affected |
SUSE Manager Retail Branch Server 4.0 | kernel-source | Not affected |
SUSE Manager Retail Branch Server 4.1 | kernel-source | Not affected |
SUSE Manager Retail Branch Server 4.2 | kernel-source | Not affected |
SUSE Manager Server 4.0 | kernel-source | Not affected |
SUSE Manager Server 4.1 | kernel-source | Not affected |
SUSE Manager Server 4.2 | kernel-source | Not affected |
SUSE OpenStack Cloud 8 | kernel-source | Not affected |
SUSE OpenStack Cloud 9 | kernel-default | Not affected |
SUSE OpenStack Cloud 9 | kernel-source | Not affected |
SUSE OpenStack Cloud Crowbar 8 | kernel-source | Not affected |
SUSE OpenStack Cloud Crowbar 9 | kernel-default | Not affected |
SUSE OpenStack Cloud Crowbar 9 | kernel-source | Not affected |
SUSE Real Time Module 15 SP3 | kernel-source-rt | Not affected |
SUSE Real Time Module 15 SP4 | kernel-source-rt | Not affected |
openSUSE Leap 15.3 | kernel-source | Not affected |
openSUSE Leap 15.3 | kernel-source-rt | Not affected |
openSUSE Leap 15.4 | kernel-source | Not affected |
openSUSE Leap 15.4 | kernel-source-azure | Not affected |
openSUSE Leap 15.4 | kernel-source-rt | Not affected |
Products at an unknown state of their lifecycle. | ||
SUSE Linux Enterprise Server 12 SP5 LTSS Extended Security | kernel-source | Not affected |
SUSE Linux Enterprise Server 12 SP5 LTSS Extended Security | kernel-source-azure | Not affected |
SUSE Timeline for this CVE
CVE page created: Tue May 21 18:01:23 2024CVE page last modified: Mon Nov 11 20:08:33 2024