1534 lines
69 KiB
XML
1534 lines
69 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<cvrfdoc xmlns="http://www.icasi.org/CVRF/schema/cvrf/1.1" xmlns:cvrf="http://www.icasi.org/CVRF/schema/cvrf/1.1">
|
|
<DocumentTitle xml:lang="en">An update for kernel is now available for openEuler-22.03-LTS-SP2</DocumentTitle>
|
|
<DocumentType>Security Advisory</DocumentType>
|
|
<DocumentPublisher Type="Vendor">
|
|
<ContactDetails>openeuler-security@openeuler.org</ContactDetails>
|
|
<IssuingAuthority>openEuler security committee</IssuingAuthority>
|
|
</DocumentPublisher>
|
|
<DocumentTracking>
|
|
<Identification>
|
|
<ID>openEuler-SA-2024-1396</ID>
|
|
</Identification>
|
|
<Status>Final</Status>
|
|
<Version>1.0</Version>
|
|
<RevisionHistory>
|
|
<Revision>
|
|
<Number>1.0</Number>
|
|
<Date>2024-04-12</Date>
|
|
<Description>Initial</Description>
|
|
</Revision>
|
|
</RevisionHistory>
|
|
<InitialReleaseDate>2024-04-12</InitialReleaseDate>
|
|
<CurrentReleaseDate>2024-04-12</CurrentReleaseDate>
|
|
<Generator>
|
|
<Engine>openEuler SA Tool V1.0</Engine>
|
|
<Date>2024-04-12</Date>
|
|
</Generator>
|
|
</DocumentTracking>
|
|
<DocumentNotes>
|
|
<Note Title="Synopsis" Type="General" Ordinal="1" xml:lang="en">kernel security update</Note>
|
|
<Note Title="Summary" Type="General" Ordinal="2" xml:lang="en">An update for kernel is now available for openEuler-22.03-LTS-SP2.</Note>
|
|
<Note Title="Description" Type="General" Ordinal="3" xml:lang="en">The Linux Kernel, the operating system core itself.
|
|
|
|
Security Fix(es):
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
ALSA: hda: intel-sdw-acpi: harden detection of controller
|
|
|
|
The existing code currently sets a pointer to an ACPI handle before
|
|
checking that it's actually a SoundWire controller. This can lead to
|
|
issues where the graph walk continues and eventually fails, but the
|
|
pointer was set already.
|
|
|
|
This patch changes the logic so that the information provided to
|
|
the caller is set when a controller is found.(CVE-2021-46926)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
ASoC: q6afe-clocks: fix reprobing of the driver
|
|
|
|
Q6afe-clocks driver can get reprobed. For example if the APR services
|
|
are restarted after the firmware crash. However currently Q6afe-clocks
|
|
driver will oops because hw.init will get cleared during first _probe
|
|
call. Rewrite the driver to fill the clock data at runtime rather than
|
|
using big static array of clocks.(CVE-2021-47037)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
apparmor: avoid crash when parsed profile name is empty
|
|
|
|
When processing a packed profile in unpack_profile() described like
|
|
|
|
"profile :ns::samba-dcerpcd /usr/lib*/samba/{,samba/}samba-dcerpcd {...}"
|
|
|
|
a string ":samba-dcerpcd" is unpacked as a fully-qualified name and then
|
|
passed to aa_splitn_fqname().
|
|
|
|
aa_splitn_fqname() treats ":samba-dcerpcd" as only containing a namespace.
|
|
Thus it returns NULL for tmpname, meanwhile tmpns is non-NULL. Later
|
|
aa_alloc_profile() crashes as the new profile name is NULL now.
|
|
|
|
general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN NOPTI
|
|
KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
|
|
CPU: 6 PID: 1657 Comm: apparmor_parser Not tainted 6.7.0-rc2-dirty #16
|
|
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-3-gd478f380-rebuilt.opensuse.org 04/01/2014
|
|
RIP: 0010:strlen+0x1e/0xa0
|
|
Call Trace:
|
|
<TASK>
|
|
? strlen+0x1e/0xa0
|
|
aa_policy_init+0x1bb/0x230
|
|
aa_alloc_profile+0xb1/0x480
|
|
unpack_profile+0x3bc/0x4960
|
|
aa_unpack+0x309/0x15e0
|
|
aa_replace_profiles+0x213/0x33c0
|
|
policy_update+0x261/0x370
|
|
profile_replace+0x20e/0x2a0
|
|
vfs_write+0x2af/0xe00
|
|
ksys_write+0x126/0x250
|
|
do_syscall_64+0x46/0xf0
|
|
entry_SYSCALL_64_after_hwframe+0x6e/0x76
|
|
</TASK>
|
|
---[ end trace 0000000000000000 ]---
|
|
RIP: 0010:strlen+0x1e/0xa0
|
|
|
|
It seems such behaviour of aa_splitn_fqname() is expected and checked in
|
|
other places where it is called (e.g. aa_remove_profiles). Well, there
|
|
is an explicit comment "a ns name without a following profile is allowed"
|
|
inside.
|
|
|
|
AFAICS, nothing can prevent unpacked "name" to be in form like
|
|
":samba-dcerpcd" - it is passed from userspace.
|
|
|
|
Deny the whole profile set replacement in such case and inform user with
|
|
EPROTO and an explaining message.
|
|
|
|
Found by Linux Verification Center (linuxtesting.org).(CVE-2023-52443)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length
|
|
|
|
If the host sends an H2CData command with an invalid DATAL,
|
|
the kernel may crash in nvmet_tcp_build_pdu_iovec().
|
|
|
|
Unable to handle kernel NULL pointer dereference at
|
|
virtual address 0000000000000000
|
|
lr : nvmet_tcp_io_work+0x6ac/0x718 [nvmet_tcp]
|
|
Call trace:
|
|
process_one_work+0x174/0x3c8
|
|
worker_thread+0x2d0/0x3e8
|
|
kthread+0x104/0x110
|
|
|
|
Fix the bug by raising a fatal error if DATAL isn't coherent
|
|
with the packet size.
|
|
Also, the PDU length should never exceed the MAXH2CDATA parameter which
|
|
has been communicated to the host in nvmet_tcp_handle_icreq().(CVE-2023-52454)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
serial: imx: fix tx statemachine deadlock
|
|
|
|
When using the serial port as RS485 port, the tx statemachine is used to
|
|
control the RTS pin to drive the RS485 transceiver TX_EN pin. When the
|
|
TTY port is closed in the middle of a transmission (for instance during
|
|
userland application crash), imx_uart_shutdown disables the interface
|
|
and disables the Transmission Complete interrupt. afer that,
|
|
imx_uart_stop_tx bails on an incomplete transmission, to be retriggered
|
|
by the TC interrupt. This interrupt is disabled and therefore the tx
|
|
statemachine never transitions out of SEND. The statemachine is in
|
|
deadlock now, and the TX_EN remains low, making the interface useless.
|
|
|
|
imx_uart_stop_tx now checks for incomplete transmission AND whether TC
|
|
interrupts are enabled before bailing to be retriggered. This makes sure
|
|
the state machine handling is reached, and is properly set to
|
|
WAIT_AFTER_SEND.(CVE-2023-52456)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
serial: 8250: omap: Don't skip resource freeing if pm_runtime_resume_and_get() failed
|
|
|
|
Returning an error code from .remove() makes the driver core emit the
|
|
little helpful error message:
|
|
|
|
remove callback returned a non-zero value. This will be ignored.
|
|
|
|
and then remove the device anyhow. So all resources that were not freed
|
|
are leaked in this case. Skipping serial8250_unregister_port() has the
|
|
potential to keep enough of the UART around to trigger a use-after-free.
|
|
|
|
So replace the error return (and with it the little helpful error
|
|
message) by a more useful error message and continue to cleanup.(CVE-2023-52457)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
bpf: fix check for attempt to corrupt spilled pointer
|
|
|
|
When register is spilled onto a stack as a 1/2/4-byte register, we set
|
|
slot_type[BPF_REG_SIZE - 1] (plus potentially few more below it,
|
|
depending on actual spill size). So to check if some stack slot has
|
|
spilled register we need to consult slot_type[7], not slot_type[0].
|
|
|
|
To avoid the need to remember and double-check this in the future, just
|
|
use is_spilled_reg() helper.(CVE-2023-52462)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
mfd: syscon: Fix null pointer dereference in of_syscon_register()
|
|
|
|
kasprintf() returns a pointer to dynamically allocated memory
|
|
which can be NULL upon failure.(CVE-2023-52467)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
drivers/amd/pm: fix a use-after-free in kv_parse_power_table
|
|
|
|
When ps allocated by kzalloc equals to NULL, kv_parse_power_table
|
|
frees adev->pm.dpm.ps that allocated before. However, after the control
|
|
flow goes through the following call chains:
|
|
|
|
kv_parse_power_table
|
|
|-> kv_dpm_init
|
|
|-> kv_dpm_sw_init
|
|
|-> kv_dpm_fini
|
|
|
|
The adev->pm.dpm.ps is used in the for loop of kv_dpm_fini after its
|
|
first free in kv_parse_power_table and causes a use-after-free bug.(CVE-2023-52469)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
perf/x86/lbr: Filter vsyscall addresses
|
|
|
|
We found that a panic can occur when a vsyscall is made while LBR sampling
|
|
is active. If the vsyscall is interrupted (NMI) for perf sampling, this
|
|
call sequence can occur (most recent at top):
|
|
|
|
__insn_get_emulate_prefix()
|
|
insn_get_emulate_prefix()
|
|
insn_get_prefixes()
|
|
insn_get_opcode()
|
|
decode_branch_type()
|
|
get_branch_type()
|
|
intel_pmu_lbr_filter()
|
|
intel_pmu_handle_irq()
|
|
perf_event_nmi_handler()
|
|
|
|
Within __insn_get_emulate_prefix() at frame 0, a macro is called:
|
|
|
|
peek_nbyte_next(insn_byte_t, insn, i)
|
|
|
|
Within this macro, this dereference occurs:
|
|
|
|
(insn)->next_byte
|
|
|
|
Inspecting registers at this point, the value of the next_byte field is the
|
|
address of the vsyscall made, for example the location of the vsyscall
|
|
version of gettimeofday() at 0xffffffffff600000. The access to an address
|
|
in the vsyscall region will trigger an oops due to an unhandled page fault.
|
|
|
|
To fix the bug, filtering for vsyscalls can be done when
|
|
determining the branch type. This patch will return
|
|
a "none" branch if a kernel address if found to lie in the
|
|
vsyscall region.(CVE-2023-52476)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
ksmbd: fix uaf in smb20_oplock_break_ack
|
|
|
|
drop reference after use opinfo.(CVE-2023-52479)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
iommu/arm-smmu-v3: Fix soft lockup triggered by arm_smmu_mm_invalidate_range
|
|
|
|
When running an SVA case, the following soft lockup is triggered:
|
|
--------------------------------------------------------------------
|
|
watchdog: BUG: soft lockup - CPU#244 stuck for 26s!
|
|
pstate: 83400009 (Nzcv daif +PAN -UAO +TCO +DIT -SSBS BTYPE=--)
|
|
pc : arm_smmu_cmdq_issue_cmdlist+0x178/0xa50
|
|
lr : arm_smmu_cmdq_issue_cmdlist+0x150/0xa50
|
|
sp : ffff8000d83ef290
|
|
x29: ffff8000d83ef290 x28: 000000003b9aca00 x27: 0000000000000000
|
|
x26: ffff8000d83ef3c0 x25: da86c0812194a0e8 x24: 0000000000000000
|
|
x23: 0000000000000040 x22: ffff8000d83ef340 x21: ffff0000c63980c0
|
|
x20: 0000000000000001 x19: ffff0000c6398080 x18: 0000000000000000
|
|
x17: 0000000000000000 x16: 0000000000000000 x15: ffff3000b4a3bbb0
|
|
x14: ffff3000b4a30888 x13: ffff3000b4a3cf60 x12: 0000000000000000
|
|
x11: 0000000000000000 x10: 0000000000000000 x9 : ffffc08120e4d6bc
|
|
x8 : 0000000000000000 x7 : 0000000000000000 x6 : 0000000000048cfa
|
|
x5 : 0000000000000000 x4 : 0000000000000001 x3 : 000000000000000a
|
|
x2 : 0000000080000000 x1 : 0000000000000000 x0 : 0000000000000001
|
|
Call trace:
|
|
arm_smmu_cmdq_issue_cmdlist+0x178/0xa50
|
|
__arm_smmu_tlb_inv_range+0x118/0x254
|
|
arm_smmu_tlb_inv_range_asid+0x6c/0x130
|
|
arm_smmu_mm_invalidate_range+0xa0/0xa4
|
|
__mmu_notifier_invalidate_range_end+0x88/0x120
|
|
unmap_vmas+0x194/0x1e0
|
|
unmap_region+0xb4/0x144
|
|
do_mas_align_munmap+0x290/0x490
|
|
do_mas_munmap+0xbc/0x124
|
|
__vm_munmap+0xa8/0x19c
|
|
__arm64_sys_munmap+0x28/0x50
|
|
invoke_syscall+0x78/0x11c
|
|
el0_svc_common.constprop.0+0x58/0x1c0
|
|
do_el0_svc+0x34/0x60
|
|
el0_svc+0x2c/0xd4
|
|
el0t_64_sync_handler+0x114/0x140
|
|
el0t_64_sync+0x1a4/0x1a8
|
|
--------------------------------------------------------------------
|
|
|
|
Note that since 6.6-rc1 the arm_smmu_mm_invalidate_range above is renamed
|
|
to "arm_smmu_mm_arch_invalidate_secondary_tlbs", yet the problem remains.
|
|
|
|
The commit 06ff87bae8d3 ("arm64: mm: remove unused functions and variable
|
|
protoypes") fixed a similar lockup on the CPU MMU side. Yet, it can occur
|
|
to SMMU too, since arm_smmu_mm_arch_invalidate_secondary_tlbs() is called
|
|
typically next to MMU tlb flush function, e.g.
|
|
tlb_flush_mmu_tlbonly {
|
|
tlb_flush {
|
|
__flush_tlb_range {
|
|
// check MAX_TLBI_OPS
|
|
}
|
|
}
|
|
mmu_notifier_arch_invalidate_secondary_tlbs {
|
|
arm_smmu_mm_arch_invalidate_secondary_tlbs {
|
|
// does not check MAX_TLBI_OPS
|
|
}
|
|
}
|
|
}
|
|
|
|
Clone a CMDQ_MAX_TLBI_OPS from the MAX_TLBI_OPS in tlbflush.h, since in an
|
|
SVA case SMMU uses the CPU page table, so it makes sense to align with the
|
|
tlbflush code. Then, replace per-page TLBI commands with a single per-asid
|
|
TLBI command, if the request size hits this threshold.(CVE-2023-52484)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
tls: fix race between tx work scheduling and socket close
|
|
|
|
Similarly to previous commit, the submitting thread (recvmsg/sendmsg)
|
|
may exit as soon as the async crypto handler calls complete().
|
|
Reorder scheduling the work before calling complete().
|
|
This seems more logical in the first place, as it's
|
|
the inverse order of what the submitting thread will do.(CVE-2024-26585)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
bpf: Reject variable offset alu on PTR_TO_FLOW_KEYS
|
|
|
|
For PTR_TO_FLOW_KEYS, check_flow_keys_access() only uses fixed off
|
|
for validation. However, variable offset ptr alu is not prohibited
|
|
for this ptr kind. So the variable offset is not checked.
|
|
|
|
The following prog is accepted:
|
|
|
|
func#0 @0
|
|
0: R1=ctx() R10=fp0
|
|
0: (bf) r6 = r1 ; R1=ctx() R6_w=ctx()
|
|
1: (79) r7 = *(u64 *)(r6 +144) ; R6_w=ctx() R7_w=flow_keys()
|
|
2: (b7) r8 = 1024 ; R8_w=1024
|
|
3: (37) r8 /= 1 ; R8_w=scalar()
|
|
4: (57) r8 &= 1024 ; R8_w=scalar(smin=smin32=0,
|
|
smax=umax=smax32=umax32=1024,var_off=(0x0; 0x400))
|
|
5: (0f) r7 += r8
|
|
mark_precise: frame0: last_idx 5 first_idx 0 subseq_idx -1
|
|
mark_precise: frame0: regs=r8 stack= before 4: (57) r8 &= 1024
|
|
mark_precise: frame0: regs=r8 stack= before 3: (37) r8 /= 1
|
|
mark_precise: frame0: regs=r8 stack= before 2: (b7) r8 = 1024
|
|
6: R7_w=flow_keys(smin=smin32=0,smax=umax=smax32=umax32=1024,var_off
|
|
=(0x0; 0x400)) R8_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=1024,
|
|
var_off=(0x0; 0x400))
|
|
6: (79) r0 = *(u64 *)(r7 +0) ; R0_w=scalar()
|
|
7: (95) exit
|
|
|
|
This prog loads flow_keys to r7, and adds the variable offset r8
|
|
to r7, and finally causes out-of-bounds access:
|
|
|
|
BUG: unable to handle page fault for address: ffffc90014c80038
|
|
[...]
|
|
Call Trace:
|
|
<TASK>
|
|
bpf_dispatcher_nop_func include/linux/bpf.h:1231 [inline]
|
|
__bpf_prog_run include/linux/filter.h:651 [inline]
|
|
bpf_prog_run include/linux/filter.h:658 [inline]
|
|
bpf_prog_run_pin_on_cpu include/linux/filter.h:675 [inline]
|
|
bpf_flow_dissect+0x15f/0x350 net/core/flow_dissector.c:991
|
|
bpf_prog_test_run_flow_dissector+0x39d/0x620 net/bpf/test_run.c:1359
|
|
bpf_prog_test_run kernel/bpf/syscall.c:4107 [inline]
|
|
__sys_bpf+0xf8f/0x4560 kernel/bpf/syscall.c:5475
|
|
__do_sys_bpf kernel/bpf/syscall.c:5561 [inline]
|
|
__se_sys_bpf kernel/bpf/syscall.c:5559 [inline]
|
|
__x64_sys_bpf+0x73/0xb0 kernel/bpf/syscall.c:5559
|
|
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
|
|
do_syscall_64+0x3f/0x110 arch/x86/entry/common.c:83
|
|
entry_SYSCALL_64_after_hwframe+0x63/0x6b
|
|
|
|
Fix this by rejecting ptr alu with variable offset on flow_keys.
|
|
Applying the patch rejects the program with "R7 pointer arithmetic
|
|
on flow_keys prohibited".(CVE-2024-26589)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
i2c: i801: Fix block process call transactions
|
|
|
|
According to the Intel datasheets, software must reset the block
|
|
buffer index twice for block process call transactions: once before
|
|
writing the outgoing data to the buffer, and once again before
|
|
reading the incoming data from the buffer.
|
|
|
|
The driver is currently missing the second reset, causing the wrong
|
|
portion of the block buffer to be read.(CVE-2024-26593)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
net: qualcomm: rmnet: fix global oob in rmnet_policy
|
|
|
|
The variable rmnet_link_ops assign a *bigger* maxtype which leads to a
|
|
global out-of-bounds read when parsing the netlink attributes. See bug
|
|
trace below:
|
|
|
|
==================================================================
|
|
BUG: KASAN: global-out-of-bounds in validate_nla lib/nlattr.c:386 [inline]
|
|
BUG: KASAN: global-out-of-bounds in __nla_validate_parse+0x24af/0x2750 lib/nlattr.c:600
|
|
Read of size 1 at addr ffffffff92c438d0 by task syz-executor.6/84207
|
|
|
|
CPU: 0 PID: 84207 Comm: syz-executor.6 Tainted: G N 6.1.0 #3
|
|
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014
|
|
Call Trace:
|
|
<TASK>
|
|
__dump_stack lib/dump_stack.c:88 [inline]
|
|
dump_stack_lvl+0x8b/0xb3 lib/dump_stack.c:106
|
|
print_address_description mm/kasan/report.c:284 [inline]
|
|
print_report+0x172/0x475 mm/kasan/report.c:395
|
|
kasan_report+0xbb/0x1c0 mm/kasan/report.c:495
|
|
validate_nla lib/nlattr.c:386 [inline]
|
|
__nla_validate_parse+0x24af/0x2750 lib/nlattr.c:600
|
|
__nla_parse+0x3e/0x50 lib/nlattr.c:697
|
|
nla_parse_nested_deprecated include/net/netlink.h:1248 [inline]
|
|
__rtnl_newlink+0x50a/0x1880 net/core/rtnetlink.c:3485
|
|
rtnl_newlink+0x64/0xa0 net/core/rtnetlink.c:3594
|
|
rtnetlink_rcv_msg+0x43c/0xd70 net/core/rtnetlink.c:6091
|
|
netlink_rcv_skb+0x14f/0x410 net/netlink/af_netlink.c:2540
|
|
netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline]
|
|
netlink_unicast+0x54e/0x800 net/netlink/af_netlink.c:1345
|
|
netlink_sendmsg+0x930/0xe50 net/netlink/af_netlink.c:1921
|
|
sock_sendmsg_nosec net/socket.c:714 [inline]
|
|
sock_sendmsg+0x154/0x190 net/socket.c:734
|
|
____sys_sendmsg+0x6df/0x840 net/socket.c:2482
|
|
___sys_sendmsg+0x110/0x1b0 net/socket.c:2536
|
|
__sys_sendmsg+0xf3/0x1c0 net/socket.c:2565
|
|
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
|
|
do_syscall_64+0x3b/0x90 arch/x86/entry/common.c:80
|
|
entry_SYSCALL_64_after_hwframe+0x63/0xcd
|
|
RIP: 0033:0x7fdcf2072359
|
|
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 f1 19 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48
|
|
RSP: 002b:00007fdcf13e3168 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
|
|
RAX: ffffffffffffffda RBX: 00007fdcf219ff80 RCX: 00007fdcf2072359
|
|
RDX: 0000000000000000 RSI: 0000000020000200 RDI: 0000000000000003
|
|
RBP: 00007fdcf20bd493 R08: 0000000000000000 R09: 0000000000000000
|
|
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
|
|
R13: 00007fffbb8d7bdf R14: 00007fdcf13e3300 R15: 0000000000022000
|
|
</TASK>
|
|
|
|
The buggy address belongs to the variable:
|
|
rmnet_policy+0x30/0xe0
|
|
|
|
The buggy address belongs to the physical page:
|
|
page:0000000065bdeb3c refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x155243
|
|
flags: 0x200000000001000(reserved|node=0|zone=2)
|
|
raw: 0200000000001000 ffffea00055490c8 ffffea00055490c8 0000000000000000
|
|
raw: 0000000000000000 0000000000000000 00000001ffffffff 0000000000000000
|
|
page dumped because: kasan: bad access detected
|
|
|
|
Memory state around the buggy address:
|
|
ffffffff92c43780: f9 f9 f9 f9 00 00 00 02 f9 f9 f9 f9 00 00 00 07
|
|
ffffffff92c43800: f9 f9 f9 f9 00 00 00 05 f9 f9 f9 f9 06 f9 f9 f9
|
|
>ffffffff92c43880: f9 f9 f9 f9 00 00 00 00 00 00 f9 f9 f9 f9 f9 f9
|
|
^
|
|
ffffffff92c43900: 00 00 00 00 00 00 00 00 07 f9 f9 f9 f9 f9 f9 f9
|
|
ffffffff92c43980: 00 00 00 07 f9 f9 f9 f9 00 00 00 05 f9 f9 f9 f9
|
|
|
|
According to the comment of `nla_parse_nested_deprecated`, the maxtype
|
|
should be len(destination array) - 1. Hence use `IFLA_RMNET_MAX` here.(CVE-2024-26597)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP
|
|
|
|
If the external phy working together with phy-omap-usb2 does not implement
|
|
send_srp(), we may still attempt to call it. This can happen on an idle
|
|
Ethernet gadget triggering a wakeup for example:
|
|
|
|
configfs-gadget.g1 gadget.0: ECM Suspend
|
|
configfs-gadget.g1 gadget.0: Port suspended. Triggering wakeup
|
|
...
|
|
Unable to handle kernel NULL pointer dereference at virtual address
|
|
00000000 when execute
|
|
...
|
|
PC is at 0x0
|
|
LR is at musb_gadget_wakeup+0x1d4/0x254 [musb_hdrc]
|
|
...
|
|
musb_gadget_wakeup [musb_hdrc] from usb_gadget_wakeup+0x1c/0x3c [udc_core]
|
|
usb_gadget_wakeup [udc_core] from eth_start_xmit+0x3b0/0x3d4 [u_ether]
|
|
eth_start_xmit [u_ether] from dev_hard_start_xmit+0x94/0x24c
|
|
dev_hard_start_xmit from sch_direct_xmit+0x104/0x2e4
|
|
sch_direct_xmit from __dev_queue_xmit+0x334/0xd88
|
|
__dev_queue_xmit from arp_solicit+0xf0/0x268
|
|
arp_solicit from neigh_probe+0x54/0x7c
|
|
neigh_probe from __neigh_event_send+0x22c/0x47c
|
|
__neigh_event_send from neigh_resolve_output+0x14c/0x1c0
|
|
neigh_resolve_output from ip_finish_output2+0x1c8/0x628
|
|
ip_finish_output2 from ip_send_skb+0x40/0xd8
|
|
ip_send_skb from udp_send_skb+0x124/0x340
|
|
udp_send_skb from udp_sendmsg+0x780/0x984
|
|
udp_sendmsg from __sys_sendto+0xd8/0x158
|
|
__sys_sendto from ret_fast_syscall+0x0/0x58
|
|
|
|
Let's fix the issue by checking for send_srp() and set_vbus() before
|
|
calling them. For USB peripheral only cases these both could be NULL.(CVE-2024-26600)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
x86/fpu: Stop relying on userspace for info to fault in xsave buffer
|
|
|
|
Before this change, the expected size of the user space buffer was
|
|
taken from fx_sw->xstate_size. fx_sw->xstate_size can be changed
|
|
from user-space, so it is possible construct a sigreturn frame where:
|
|
|
|
* fx_sw->xstate_size is smaller than the size required by valid bits in
|
|
fx_sw->xfeatures.
|
|
* user-space unmaps parts of the sigrame fpu buffer so that not all of
|
|
the buffer required by xrstor is accessible.
|
|
|
|
In this case, xrstor tries to restore and accesses the unmapped area
|
|
which results in a fault. But fault_in_readable succeeds because buf +
|
|
fx_sw->xstate_size is within the still mapped area, so it goes back and
|
|
tries xrstor again. It will spin in this loop forever.
|
|
|
|
Instead, fault in the maximum size which can be touched by XRSTOR (taken
|
|
from fpstate->user_size).
|
|
|
|
[ dhansen: tweak subject / changelog ](CVE-2024-26603)
|
|
|
|
In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
binder: signal epoll threads of self-work
|
|
|
|
In (e)poll mode, threads often depend on I/O events to determine when
|
|
data is ready for consumption. Within binder, a thread may initiate a
|
|
command via BINDER_WRITE_READ without a read buffer and then make use
|
|
of epoll_wait() or similar to consume any responses afterwards.
|
|
|
|
It is then crucial that epoll threads are signaled via wakeup when they
|
|
queue their own work. Otherwise, they risk waiting indefinitely for an
|
|
event leaving their work unhandled. What is worse, subsequent commands
|
|
won't trigger a wakeup either as the thread has pending work.(CVE-2024-26606)</Note>
|
|
<Note Title="Topic" Type="General" Ordinal="4" xml:lang="en">An update for kernel is now available for openEuler-22.03-LTS-SP2.
|
|
|
|
openEuler Security has rated this update as having a security impact of high. A Common Vunlnerability Scoring System(CVSS)base score,which gives a detailed severity rating, is available for each vulnerability from the CVElink(s) in the References section.</Note>
|
|
<Note Title="Severity" Type="General" Ordinal="5" xml:lang="en">High</Note>
|
|
<Note Title="Affected Component" Type="General" Ordinal="6" xml:lang="en">kernel</Note>
|
|
</DocumentNotes>
|
|
<DocumentReferences>
|
|
<Reference Type="Self">
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Reference>
|
|
<Reference Type="openEuler CVE">
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2021-46926</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2021-47037</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2023-52443</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2023-52454</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2023-52456</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2023-52457</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2023-52462</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2023-52467</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2023-52469</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2023-52476</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2023-52479</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2023-52484</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2024-26585</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2024-26589</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2024-26593</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2024-26597</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2024-26600</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2024-26603</URL>
|
|
<URL>https://www.openeuler.org/en/security/cve/detail.html?id=CVE-2024-26606</URL>
|
|
</Reference>
|
|
<Reference Type="Other">
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2021-46926</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2021-47037</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2023-52443</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2023-52454</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2023-52456</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2023-52457</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2023-52462</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2023-52467</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2023-52469</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2023-52476</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2023-52479</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2023-52484</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2024-26585</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2024-26589</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2024-26593</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2024-26597</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2024-26600</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2024-26603</URL>
|
|
<URL>https://nvd.nist.gov/vuln/detail/CVE-2024-26606</URL>
|
|
</Reference>
|
|
</DocumentReferences>
|
|
<ProductTree xmlns="http://www.icasi.org/CVRF/schema/prod/1.1">
|
|
<Branch Type="Product Name" Name="openEuler">
|
|
<FullProductName ProductID="openEuler-22.03-LTS-SP2" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">openEuler-22.03-LTS-SP2</FullProductName>
|
|
</Branch>
|
|
<Branch Type="Package Arch" Name="aarch64">
|
|
<FullProductName ProductID="python3-perf-debuginfo-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">python3-perf-debuginfo-5.10.0-153.50.0.128.oe2203sp2.aarch64.rpm</FullProductName>
|
|
<FullProductName ProductID="kernel-tools-devel-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-tools-devel-5.10.0-153.50.0.128.oe2203sp2.aarch64.rpm</FullProductName>
|
|
<FullProductName ProductID="kernel-debuginfo-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-debuginfo-5.10.0-153.50.0.128.oe2203sp2.aarch64.rpm</FullProductName>
|
|
<FullProductName ProductID="kernel-tools-debuginfo-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-tools-debuginfo-5.10.0-153.50.0.128.oe2203sp2.aarch64.rpm</FullProductName>
|
|
<FullProductName ProductID="kernel-devel-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-devel-5.10.0-153.50.0.128.oe2203sp2.aarch64.rpm</FullProductName>
|
|
<FullProductName ProductID="perf-debuginfo-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">perf-debuginfo-5.10.0-153.50.0.128.oe2203sp2.aarch64.rpm</FullProductName>
|
|
<FullProductName ProductID="kernel-source-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-source-5.10.0-153.50.0.128.oe2203sp2.aarch64.rpm</FullProductName>
|
|
<FullProductName ProductID="kernel-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-5.10.0-153.50.0.128.oe2203sp2.aarch64.rpm</FullProductName>
|
|
<FullProductName ProductID="kernel-headers-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-headers-5.10.0-153.50.0.128.oe2203sp2.aarch64.rpm</FullProductName>
|
|
<FullProductName ProductID="kernel-debugsource-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-debugsource-5.10.0-153.50.0.128.oe2203sp2.aarch64.rpm</FullProductName>
|
|
<FullProductName ProductID="perf-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">perf-5.10.0-153.50.0.128.oe2203sp2.aarch64.rpm</FullProductName>
|
|
<FullProductName ProductID="python3-perf-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">python3-perf-5.10.0-153.50.0.128.oe2203sp2.aarch64.rpm</FullProductName>
|
|
<FullProductName ProductID="kernel-tools-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-tools-5.10.0-153.50.0.128.oe2203sp2.aarch64.rpm</FullProductName>
|
|
</Branch>
|
|
<Branch Type="Package Arch" Name="src">
|
|
<FullProductName ProductID="kernel-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-5.10.0-153.50.0.128.oe2203sp2.src.rpm</FullProductName>
|
|
</Branch>
|
|
<Branch Type="Package Arch" Name="x86_64">
|
|
<FullProductName ProductID="kernel-source-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-source-5.10.0-153.50.0.128.oe2203sp2.x86_64.rpm</FullProductName>
|
|
<FullProductName ProductID="perf-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">perf-5.10.0-153.50.0.128.oe2203sp2.x86_64.rpm</FullProductName>
|
|
<FullProductName ProductID="kernel-devel-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-devel-5.10.0-153.50.0.128.oe2203sp2.x86_64.rpm</FullProductName>
|
|
<FullProductName ProductID="perf-debuginfo-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">perf-debuginfo-5.10.0-153.50.0.128.oe2203sp2.x86_64.rpm</FullProductName>
|
|
<FullProductName ProductID="kernel-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-5.10.0-153.50.0.128.oe2203sp2.x86_64.rpm</FullProductName>
|
|
<FullProductName ProductID="kernel-tools-devel-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-tools-devel-5.10.0-153.50.0.128.oe2203sp2.x86_64.rpm</FullProductName>
|
|
<FullProductName ProductID="kernel-tools-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-tools-5.10.0-153.50.0.128.oe2203sp2.x86_64.rpm</FullProductName>
|
|
<FullProductName ProductID="kernel-tools-debuginfo-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-tools-debuginfo-5.10.0-153.50.0.128.oe2203sp2.x86_64.rpm</FullProductName>
|
|
<FullProductName ProductID="python3-perf-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">python3-perf-5.10.0-153.50.0.128.oe2203sp2.x86_64.rpm</FullProductName>
|
|
<FullProductName ProductID="kernel-debuginfo-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-debuginfo-5.10.0-153.50.0.128.oe2203sp2.x86_64.rpm</FullProductName>
|
|
<FullProductName ProductID="kernel-headers-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-headers-5.10.0-153.50.0.128.oe2203sp2.x86_64.rpm</FullProductName>
|
|
<FullProductName ProductID="kernel-debugsource-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">kernel-debugsource-5.10.0-153.50.0.128.oe2203sp2.x86_64.rpm</FullProductName>
|
|
<FullProductName ProductID="python3-perf-debuginfo-5.10.0-153.50.0.128" CPE="cpe:/a:openEuler:openEuler:22.03-LTS-SP2">python3-perf-debuginfo-5.10.0-153.50.0.128.oe2203sp2.x86_64.rpm</FullProductName>
|
|
</Branch>
|
|
</ProductTree>
|
|
<Vulnerability Ordinal="1" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
ALSA: hda: intel-sdw-acpi: harden detection of controller
|
|
|
|
The existing code currently sets a pointer to an ACPI handle before
|
|
checking that it's actually a SoundWire controller. This can lead to
|
|
issues where the graph walk continues and eventually fails, but the
|
|
pointer was set already.
|
|
|
|
This patch changes the logic so that the information provided to
|
|
the caller is set when a controller is found.</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2021-46926</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Low</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>2.3</BaseScore>
|
|
<Vector>AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:L</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="2" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="2" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
ASoC: q6afe-clocks: fix reprobing of the driver
|
|
|
|
Q6afe-clocks driver can get reprobed. For example if the APR services
|
|
are restarted after the firmware crash. However currently Q6afe-clocks
|
|
driver will oops because hw.init will get cleared during first _probe
|
|
call. Rewrite the driver to fill the clock data at runtime rather than
|
|
using big static array of clocks.</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2021-47037</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Medium</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>4.4</BaseScore>
|
|
<Vector>AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="3" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="3" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:apparmor: avoid crash when parsed profile name is emptyWhen processing a packed profile in unpack_profile() described like profile :ns::samba-dcerpcd /usr/lib*/samba/{,samba/}samba-dcerpcd {...} a string :samba-dcerpcd is unpacked as a fully-qualified name and thenpassed to aa_splitn_fqname().aa_splitn_fqname() treats :samba-dcerpcd as only containing a namespace.Thus it returns NULL for tmpname, meanwhile tmpns is non-NULL. Lateraa_alloc_profile() crashes as the new profile name is NULL now.general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN NOPTIKASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]CPU: 6 PID: 1657 Comm: apparmor_parser Not tainted 6.7.0-rc2-dirty #16Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-3-gd478f380-rebuilt.opensuse.org 04/01/2014RIP: 0010:strlen+0x1e/0xa0Call Trace: <TASK> ? strlen+0x1e/0xa0 aa_policy_init+0x1bb/0x230 aa_alloc_profile+0xb1/0x480 unpack_profile+0x3bc/0x4960 aa_unpack+0x309/0x15e0 aa_replace_profiles+0x213/0x33c0 policy_update+0x261/0x370 profile_replace+0x20e/0x2a0 vfs_write+0x2af/0xe00 ksys_write+0x126/0x250 do_syscall_64+0x46/0xf0 entry_SYSCALL_64_after_hwframe+0x6e/0x76 </TASK>---[ end trace 0000000000000000 ]---RIP: 0010:strlen+0x1e/0xa0It seems such behaviour of aa_splitn_fqname() is expected and checked inother places where it is called (e.g. aa_remove_profiles). Well, thereis an explicit comment a ns name without a following profile is allowed inside.AFAICS, nothing can prevent unpacked name to be in form like :samba-dcerpcd - it is passed from userspace.Deny the whole profile set replacement in such case and inform user withEPROTO and an explaining message.Found by Linux Verification Center (linuxtesting.org).</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2023-52443</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Medium</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>5.5</BaseScore>
|
|
<Vector>AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="4" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="4" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length
|
|
|
|
If the host sends an H2CData command with an invalid DATAL,
|
|
the kernel may crash in nvmet_tcp_build_pdu_iovec().
|
|
|
|
Unable to handle kernel NULL pointer dereference at
|
|
virtual address 0000000000000000
|
|
lr : nvmet_tcp_io_work+0x6ac/0x718 [nvmet_tcp]
|
|
Call trace:
|
|
process_one_work+0x174/0x3c8
|
|
worker_thread+0x2d0/0x3e8
|
|
kthread+0x104/0x110
|
|
|
|
Fix the bug by raising a fatal error if DATAL isn't coherent
|
|
with the packet size.
|
|
Also, the PDU length should never exceed the MAXH2CDATA parameter which
|
|
has been communicated to the host in nvmet_tcp_handle_icreq().</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2023-52454</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Medium</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>6.5</BaseScore>
|
|
<Vector>AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="5" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="5" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
serial: imx: fix tx statemachine deadlock
|
|
|
|
When using the serial port as RS485 port, the tx statemachine is used to
|
|
control the RTS pin to drive the RS485 transceiver TX_EN pin. When the
|
|
TTY port is closed in the middle of a transmission (for instance during
|
|
userland application crash), imx_uart_shutdown disables the interface
|
|
and disables the Transmission Complete interrupt. afer that,
|
|
imx_uart_stop_tx bails on an incomplete transmission, to be retriggered
|
|
by the TC interrupt. This interrupt is disabled and therefore the tx
|
|
statemachine never transitions out of SEND. The statemachine is in
|
|
deadlock now, and the TX_EN remains low, making the interface useless.
|
|
|
|
imx_uart_stop_tx now checks for incomplete transmission AND whether TC
|
|
interrupts are enabled before bailing to be retriggered. This makes sure
|
|
the state machine handling is reached, and is properly set to
|
|
WAIT_AFTER_SEND.</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2023-52456</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Low</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>4.0</BaseScore>
|
|
<Vector>AV:P/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="6" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="6" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
serial: 8250: omap: Don't skip resource freeing if pm_runtime_resume_and_get() failed
|
|
|
|
Returning an error code from .remove() makes the driver core emit the
|
|
little helpful error message:
|
|
|
|
remove callback returned a non-zero value. This will be ignored.
|
|
|
|
and then remove the device anyhow. So all resources that were not freed
|
|
are leaked in this case. Skipping serial8250_unregister_port() has the
|
|
potential to keep enough of the UART around to trigger a use-after-free.
|
|
|
|
So replace the error return (and with it the little helpful error
|
|
message) by a more useful error message and continue to cleanup.</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2023-52457</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Medium</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>4.2</BaseScore>
|
|
<Vector>AV:L/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:L</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="7" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="7" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
bpf: fix check for attempt to corrupt spilled pointer
|
|
|
|
When register is spilled onto a stack as a 1/2/4-byte register, we set
|
|
slot_type[BPF_REG_SIZE - 1] (plus potentially few more below it,
|
|
depending on actual spill size). So to check if some stack slot has
|
|
spilled register we need to consult slot_type[7], not slot_type[0].
|
|
|
|
To avoid the need to remember and double-check this in the future, just
|
|
use is_spilled_reg() helper.</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2023-52462</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Medium</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>4.4</BaseScore>
|
|
<Vector>AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:N</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="8" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="8" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
mfd: syscon: Fix null pointer dereference in of_syscon_register()
|
|
|
|
kasprintf() returns a pointer to dynamically allocated memory
|
|
which can be NULL upon failure.</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2023-52467</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Medium</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>4.4</BaseScore>
|
|
<Vector>AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="9" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="9" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
drivers/amd/pm: fix a use-after-free in kv_parse_power_table
|
|
|
|
When ps allocated by kzalloc equals to NULL, kv_parse_power_table
|
|
frees adev->pm.dpm.ps that allocated before. However, after the control
|
|
flow goes through the following call chains:
|
|
|
|
kv_parse_power_table
|
|
|-> kv_dpm_init
|
|
|-> kv_dpm_sw_init
|
|
|-> kv_dpm_fini
|
|
|
|
The adev->pm.dpm.ps is used in the for loop of kv_dpm_fini after its
|
|
first free in kv_parse_power_table and causes a use-after-free bug.</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2023-52469</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Medium</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>4.4</BaseScore>
|
|
<Vector>AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="10" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="10" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
perf/x86/lbr: Filter vsyscall addresses
|
|
|
|
We found that a panic can occur when a vsyscall is made while LBR sampling
|
|
is active. If the vsyscall is interrupted (NMI) for perf sampling, this
|
|
call sequence can occur (most recent at top):
|
|
|
|
__insn_get_emulate_prefix()
|
|
insn_get_emulate_prefix()
|
|
insn_get_prefixes()
|
|
insn_get_opcode()
|
|
decode_branch_type()
|
|
get_branch_type()
|
|
intel_pmu_lbr_filter()
|
|
intel_pmu_handle_irq()
|
|
perf_event_nmi_handler()
|
|
|
|
Within __insn_get_emulate_prefix() at frame 0, a macro is called:
|
|
|
|
peek_nbyte_next(insn_byte_t, insn, i)
|
|
|
|
Within this macro, this dereference occurs:
|
|
|
|
(insn)->next_byte
|
|
|
|
Inspecting registers at this point, the value of the next_byte field is the
|
|
address of the vsyscall made, for example the location of the vsyscall
|
|
version of gettimeofday() at 0xffffffffff600000. The access to an address
|
|
in the vsyscall region will trigger an oops due to an unhandled page fault.
|
|
|
|
To fix the bug, filtering for vsyscalls can be done when
|
|
determining the branch type. This patch will return
|
|
a "none" branch if a kernel address if found to lie in the
|
|
vsyscall region.</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2023-52476</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Medium</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>4.7</BaseScore>
|
|
<Vector>AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="11" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="11" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
ksmbd: fix uaf in smb20_oplock_break_ack
|
|
|
|
drop reference after use opinfo.</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2023-52479</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Medium</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>5.5</BaseScore>
|
|
<Vector>AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="12" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="12" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
iommu/arm-smmu-v3: Fix soft lockup triggered by arm_smmu_mm_invalidate_range
|
|
|
|
When running an SVA case, the following soft lockup is triggered:
|
|
--------------------------------------------------------------------
|
|
watchdog: BUG: soft lockup - CPU#244 stuck for 26s!
|
|
pstate: 83400009 (Nzcv daif +PAN -UAO +TCO +DIT -SSBS BTYPE=--)
|
|
pc : arm_smmu_cmdq_issue_cmdlist+0x178/0xa50
|
|
lr : arm_smmu_cmdq_issue_cmdlist+0x150/0xa50
|
|
sp : ffff8000d83ef290
|
|
x29: ffff8000d83ef290 x28: 000000003b9aca00 x27: 0000000000000000
|
|
x26: ffff8000d83ef3c0 x25: da86c0812194a0e8 x24: 0000000000000000
|
|
x23: 0000000000000040 x22: ffff8000d83ef340 x21: ffff0000c63980c0
|
|
x20: 0000000000000001 x19: ffff0000c6398080 x18: 0000000000000000
|
|
x17: 0000000000000000 x16: 0000000000000000 x15: ffff3000b4a3bbb0
|
|
x14: ffff3000b4a30888 x13: ffff3000b4a3cf60 x12: 0000000000000000
|
|
x11: 0000000000000000 x10: 0000000000000000 x9 : ffffc08120e4d6bc
|
|
x8 : 0000000000000000 x7 : 0000000000000000 x6 : 0000000000048cfa
|
|
x5 : 0000000000000000 x4 : 0000000000000001 x3 : 000000000000000a
|
|
x2 : 0000000080000000 x1 : 0000000000000000 x0 : 0000000000000001
|
|
Call trace:
|
|
arm_smmu_cmdq_issue_cmdlist+0x178/0xa50
|
|
__arm_smmu_tlb_inv_range+0x118/0x254
|
|
arm_smmu_tlb_inv_range_asid+0x6c/0x130
|
|
arm_smmu_mm_invalidate_range+0xa0/0xa4
|
|
__mmu_notifier_invalidate_range_end+0x88/0x120
|
|
unmap_vmas+0x194/0x1e0
|
|
unmap_region+0xb4/0x144
|
|
do_mas_align_munmap+0x290/0x490
|
|
do_mas_munmap+0xbc/0x124
|
|
__vm_munmap+0xa8/0x19c
|
|
__arm64_sys_munmap+0x28/0x50
|
|
invoke_syscall+0x78/0x11c
|
|
el0_svc_common.constprop.0+0x58/0x1c0
|
|
do_el0_svc+0x34/0x60
|
|
el0_svc+0x2c/0xd4
|
|
el0t_64_sync_handler+0x114/0x140
|
|
el0t_64_sync+0x1a4/0x1a8
|
|
--------------------------------------------------------------------
|
|
|
|
Note that since 6.6-rc1 the arm_smmu_mm_invalidate_range above is renamed
|
|
to "arm_smmu_mm_arch_invalidate_secondary_tlbs", yet the problem remains.
|
|
|
|
The commit 06ff87bae8d3 ("arm64: mm: remove unused functions and variable
|
|
protoypes") fixed a similar lockup on the CPU MMU side. Yet, it can occur
|
|
to SMMU too, since arm_smmu_mm_arch_invalidate_secondary_tlbs() is called
|
|
typically next to MMU tlb flush function, e.g.
|
|
tlb_flush_mmu_tlbonly {
|
|
tlb_flush {
|
|
__flush_tlb_range {
|
|
// check MAX_TLBI_OPS
|
|
}
|
|
}
|
|
mmu_notifier_arch_invalidate_secondary_tlbs {
|
|
arm_smmu_mm_arch_invalidate_secondary_tlbs {
|
|
// does not check MAX_TLBI_OPS
|
|
}
|
|
}
|
|
}
|
|
|
|
Clone a CMDQ_MAX_TLBI_OPS from the MAX_TLBI_OPS in tlbflush.h, since in an
|
|
SVA case SMMU uses the CPU page table, so it makes sense to align with the
|
|
tlbflush code. Then, replace per-page TLBI commands with a single per-asid
|
|
TLBI command, if the request size hits this threshold.</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2023-52484</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Medium</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>5.5</BaseScore>
|
|
<Vector>AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="13" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="13" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:tls: fix race between tx work scheduling and socket closeSimilarly to previous commit, the submitting thread (recvmsg/sendmsg)may exit as soon as the async crypto handler calls complete().Reorder scheduling the work before calling complete().This seems more logical in the first place, as it sthe inverse order of what the submitting thread will do.</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2024-26585</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Medium</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>4.7</BaseScore>
|
|
<Vector>AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="14" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="14" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:bpf: Reject variable offset alu on PTR_TO_FLOW_KEYSFor PTR_TO_FLOW_KEYS, check_flow_keys_access() only uses fixed offfor validation. However, variable offset ptr alu is not prohibitedfor this ptr kind. So the variable offset is not checked.The following prog is accepted: func#0 @0 0: R1=ctx() R10=fp0 0: (bf) r6 = r1 ; R1=ctx() R6_w=ctx() 1: (79) r7 = *(u64 *)(r6 +144) ; R6_w=ctx() R7_w=flow_keys() 2: (b7) r8 = 1024 ; R8_w=1024 3: (37) r8 /= 1 ; R8_w=scalar() 4: (57) r8 &= 1024 ; R8_w=scalar(smin=smin32=0, smax=umax=smax32=umax32=1024,var_off=(0x0; 0x400)) 5: (0f) r7 += r8 mark_precise: frame0: last_idx 5 first_idx 0 subseq_idx -1 mark_precise: frame0: regs=r8 stack= before 4: (57) r8 &= 1024 mark_precise: frame0: regs=r8 stack= before 3: (37) r8 /= 1 mark_precise: frame0: regs=r8 stack= before 2: (b7) r8 = 1024 6: R7_w=flow_keys(smin=smin32=0,smax=umax=smax32=umax32=1024,var_off =(0x0; 0x400)) R8_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=1024, var_off=(0x0; 0x400)) 6: (79) r0 = *(u64 *)(r7 +0) ; R0_w=scalar() 7: (95) exitThis prog loads flow_keys to r7, and adds the variable offset r8to r7, and finally causes out-of-bounds access: BUG: unable to handle page fault for address: ffffc90014c80038 [...] Call Trace: <TASK> bpf_dispatcher_nop_func include/linux/bpf.h:1231 [inline] __bpf_prog_run include/linux/filter.h:651 [inline] bpf_prog_run include/linux/filter.h:658 [inline] bpf_prog_run_pin_on_cpu include/linux/filter.h:675 [inline] bpf_flow_dissect+0x15f/0x350 net/core/flow_dissector.c:991 bpf_prog_test_run_flow_dissector+0x39d/0x620 net/bpf/test_run.c:1359 bpf_prog_test_run kernel/bpf/syscall.c:4107 [inline] __sys_bpf+0xf8f/0x4560 kernel/bpf/syscall.c:5475 __do_sys_bpf kernel/bpf/syscall.c:5561 [inline] __se_sys_bpf kernel/bpf/syscall.c:5559 [inline] __x64_sys_bpf+0x73/0xb0 kernel/bpf/syscall.c:5559 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0x3f/0x110 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x63/0x6bFix this by rejecting ptr alu with variable offset on flow_keys.Applying the patch rejects the program with R7 pointer arithmeticon flow_keys prohibited .</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2024-26589</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>High</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>7.8</BaseScore>
|
|
<Vector>AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="15" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="15" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
i2c: i801: Fix block process call transactions
|
|
|
|
According to the Intel datasheets, software must reset the block
|
|
buffer index twice for block process call transactions: once before
|
|
writing the outgoing data to the buffer, and once again before
|
|
reading the incoming data from the buffer.
|
|
|
|
The driver is currently missing the second reset, causing the wrong
|
|
portion of the block buffer to be read.</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2024-26593</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Medium</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>4.7</BaseScore>
|
|
<Vector>AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="16" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="16" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
net: qualcomm: rmnet: fix global oob in rmnet_policy
|
|
|
|
The variable rmnet_link_ops assign a *bigger* maxtype which leads to a
|
|
global out-of-bounds read when parsing the netlink attributes. See bug
|
|
trace below:
|
|
|
|
==================================================================
|
|
BUG: KASAN: global-out-of-bounds in validate_nla lib/nlattr.c:386 [inline]
|
|
BUG: KASAN: global-out-of-bounds in __nla_validate_parse+0x24af/0x2750 lib/nlattr.c:600
|
|
Read of size 1 at addr ffffffff92c438d0 by task syz-executor.6/84207
|
|
|
|
CPU: 0 PID: 84207 Comm: syz-executor.6 Tainted: G N 6.1.0 #3
|
|
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014
|
|
Call Trace:
|
|
<TASK>
|
|
__dump_stack lib/dump_stack.c:88 [inline]
|
|
dump_stack_lvl+0x8b/0xb3 lib/dump_stack.c:106
|
|
print_address_description mm/kasan/report.c:284 [inline]
|
|
print_report+0x172/0x475 mm/kasan/report.c:395
|
|
kasan_report+0xbb/0x1c0 mm/kasan/report.c:495
|
|
validate_nla lib/nlattr.c:386 [inline]
|
|
__nla_validate_parse+0x24af/0x2750 lib/nlattr.c:600
|
|
__nla_parse+0x3e/0x50 lib/nlattr.c:697
|
|
nla_parse_nested_deprecated include/net/netlink.h:1248 [inline]
|
|
__rtnl_newlink+0x50a/0x1880 net/core/rtnetlink.c:3485
|
|
rtnl_newlink+0x64/0xa0 net/core/rtnetlink.c:3594
|
|
rtnetlink_rcv_msg+0x43c/0xd70 net/core/rtnetlink.c:6091
|
|
netlink_rcv_skb+0x14f/0x410 net/netlink/af_netlink.c:2540
|
|
netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline]
|
|
netlink_unicast+0x54e/0x800 net/netlink/af_netlink.c:1345
|
|
netlink_sendmsg+0x930/0xe50 net/netlink/af_netlink.c:1921
|
|
sock_sendmsg_nosec net/socket.c:714 [inline]
|
|
sock_sendmsg+0x154/0x190 net/socket.c:734
|
|
____sys_sendmsg+0x6df/0x840 net/socket.c:2482
|
|
___sys_sendmsg+0x110/0x1b0 net/socket.c:2536
|
|
__sys_sendmsg+0xf3/0x1c0 net/socket.c:2565
|
|
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
|
|
do_syscall_64+0x3b/0x90 arch/x86/entry/common.c:80
|
|
entry_SYSCALL_64_after_hwframe+0x63/0xcd
|
|
RIP: 0033:0x7fdcf2072359
|
|
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 f1 19 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48
|
|
RSP: 002b:00007fdcf13e3168 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
|
|
RAX: ffffffffffffffda RBX: 00007fdcf219ff80 RCX: 00007fdcf2072359
|
|
RDX: 0000000000000000 RSI: 0000000020000200 RDI: 0000000000000003
|
|
RBP: 00007fdcf20bd493 R08: 0000000000000000 R09: 0000000000000000
|
|
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
|
|
R13: 00007fffbb8d7bdf R14: 00007fdcf13e3300 R15: 0000000000022000
|
|
</TASK>
|
|
|
|
The buggy address belongs to the variable:
|
|
rmnet_policy+0x30/0xe0
|
|
|
|
The buggy address belongs to the physical page:
|
|
page:0000000065bdeb3c refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x155243
|
|
flags: 0x200000000001000(reserved|node=0|zone=2)
|
|
raw: 0200000000001000 ffffea00055490c8 ffffea00055490c8 0000000000000000
|
|
raw: 0000000000000000 0000000000000000 00000001ffffffff 0000000000000000
|
|
page dumped because: kasan: bad access detected
|
|
|
|
Memory state around the buggy address:
|
|
ffffffff92c43780: f9 f9 f9 f9 00 00 00 02 f9 f9 f9 f9 00 00 00 07
|
|
ffffffff92c43800: f9 f9 f9 f9 00 00 00 05 f9 f9 f9 f9 06 f9 f9 f9
|
|
>ffffffff92c43880: f9 f9 f9 f9 00 00 00 00 00 00 f9 f9 f9 f9 f9 f9
|
|
^
|
|
ffffffff92c43900: 00 00 00 00 00 00 00 00 07 f9 f9 f9 f9 f9 f9 f9
|
|
ffffffff92c43980: 00 00 00 07 f9 f9 f9 f9 00 00 00 05 f9 f9 f9 f9
|
|
|
|
According to the comment of `nla_parse_nested_deprecated`, the maxtype
|
|
should be len(destination array) - 1. Hence use `IFLA_RMNET_MAX` here.</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2024-26597</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Low</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>3.3</BaseScore>
|
|
<Vector>AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="17" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="17" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP
|
|
|
|
If the external phy working together with phy-omap-usb2 does not implement
|
|
send_srp(), we may still attempt to call it. This can happen on an idle
|
|
Ethernet gadget triggering a wakeup for example:
|
|
|
|
configfs-gadget.g1 gadget.0: ECM Suspend
|
|
configfs-gadget.g1 gadget.0: Port suspended. Triggering wakeup
|
|
...
|
|
Unable to handle kernel NULL pointer dereference at virtual address
|
|
00000000 when execute
|
|
...
|
|
PC is at 0x0
|
|
LR is at musb_gadget_wakeup+0x1d4/0x254 [musb_hdrc]
|
|
...
|
|
musb_gadget_wakeup [musb_hdrc] from usb_gadget_wakeup+0x1c/0x3c [udc_core]
|
|
usb_gadget_wakeup [udc_core] from eth_start_xmit+0x3b0/0x3d4 [u_ether]
|
|
eth_start_xmit [u_ether] from dev_hard_start_xmit+0x94/0x24c
|
|
dev_hard_start_xmit from sch_direct_xmit+0x104/0x2e4
|
|
sch_direct_xmit from __dev_queue_xmit+0x334/0xd88
|
|
__dev_queue_xmit from arp_solicit+0xf0/0x268
|
|
arp_solicit from neigh_probe+0x54/0x7c
|
|
neigh_probe from __neigh_event_send+0x22c/0x47c
|
|
__neigh_event_send from neigh_resolve_output+0x14c/0x1c0
|
|
neigh_resolve_output from ip_finish_output2+0x1c8/0x628
|
|
ip_finish_output2 from ip_send_skb+0x40/0xd8
|
|
ip_send_skb from udp_send_skb+0x124/0x340
|
|
udp_send_skb from udp_sendmsg+0x780/0x984
|
|
udp_sendmsg from __sys_sendto+0xd8/0x158
|
|
__sys_sendto from ret_fast_syscall+0x0/0x58
|
|
|
|
Let's fix the issue by checking for send_srp() and set_vbus() before
|
|
calling them. For USB peripheral only cases these both could be NULL.</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2024-26600</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Medium</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>5.5</BaseScore>
|
|
<Vector>AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="18" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="18" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
x86/fpu: Stop relying on userspace for info to fault in xsave buffer
|
|
|
|
Before this change, the expected size of the user space buffer was
|
|
taken from fx_sw->xstate_size. fx_sw->xstate_size can be changed
|
|
from user-space, so it is possible construct a sigreturn frame where:
|
|
|
|
* fx_sw->xstate_size is smaller than the size required by valid bits in
|
|
fx_sw->xfeatures.
|
|
* user-space unmaps parts of the sigrame fpu buffer so that not all of
|
|
the buffer required by xrstor is accessible.
|
|
|
|
In this case, xrstor tries to restore and accesses the unmapped area
|
|
which results in a fault. But fault_in_readable succeeds because buf +
|
|
fx_sw->xstate_size is within the still mapped area, so it goes back and
|
|
tries xrstor again. It will spin in this loop forever.
|
|
|
|
Instead, fault in the maximum size which can be touched by XRSTOR (taken
|
|
from fpstate->user_size).
|
|
|
|
[ dhansen: tweak subject / changelog ]</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2024-26603</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Medium</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>5.5</BaseScore>
|
|
<Vector>AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
<Vulnerability Ordinal="19" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
|
|
<Notes>
|
|
<Note Title="Vulnerability Description" Type="General" Ordinal="19" xml:lang="en">In the Linux kernel, the following vulnerability has been resolved:
|
|
|
|
binder: signal epoll threads of self-work
|
|
|
|
In (e)poll mode, threads often depend on I/O events to determine when
|
|
data is ready for consumption. Within binder, a thread may initiate a
|
|
command via BINDER_WRITE_READ without a read buffer and then make use
|
|
of epoll_wait() or similar to consume any responses afterwards.
|
|
|
|
It is then crucial that epoll threads are signaled via wakeup when they
|
|
queue their own work. Otherwise, they risk waiting indefinitely for an
|
|
event leaving their work unhandled. What is worse, subsequent commands
|
|
won't trigger a wakeup either as the thread has pending work.</Note>
|
|
</Notes>
|
|
<ReleaseDate>2024-04-12</ReleaseDate>
|
|
<CVE>CVE-2024-26606</CVE>
|
|
<ProductStatuses>
|
|
<Status Type="Fixed">
|
|
<ProductID>openEuler-22.03-LTS-SP2</ProductID>
|
|
</Status>
|
|
</ProductStatuses>
|
|
<Threats>
|
|
<Threat Type="Impact">
|
|
<Description>Medium</Description>
|
|
</Threat>
|
|
</Threats>
|
|
<CVSSScoreSets>
|
|
<ScoreSet>
|
|
<BaseScore>4.4</BaseScore>
|
|
<Vector>AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H</Vector>
|
|
</ScoreSet>
|
|
</CVSSScoreSets>
|
|
<Remediations>
|
|
<Remediation Type="Vendor Fix">
|
|
<Description>kernel security update</Description>
|
|
<DATE>2024-04-12</DATE>
|
|
<URL>https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1396</URL>
|
|
</Remediation>
|
|
</Remediations>
|
|
</Vulnerability>
|
|
</cvrfdoc> |