Kernel NULL pointer dereference in target_put() during target deletion
Maintainers usually reply within 3 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 38/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- c, linux
- Domain
- backend, operating-systems
Research direction
Start by reading target_put() and table_del_target(), then trace how deletion reaches them through proc_control_read_write() and how target output initialization is handled. The report has no deterministic reproducer, so first investigate the incomplete or failed initialization path described in the issue. Done means deleting a target on that path no longer causes a NULL pointer dereference.
Written by the indexing model from the issue text.
Description
rtpengine version the issue has been seen with
26.3.0.0+0~mr26.3.0.0-1.el10
Used distribution and its version
Oracle Linux Server 10.1, x86_64
Linux kernel version used
6.12.0-206.104.4.4.el10uek.x86_64
CPU architecture issue was seen on (see uname -m)
x86_64
Expected behaviour you didn't see
Deleting a kernel forwarding target should safely release its resources without causing a kernel Oops, including when output initialization is incomplete or has failed.
Unexpected behaviour you saw
The VM experienced a kernel NULL pointer dereference inside target_put() in nft_rtpengine.
The call trace shows that this occurred in task context, while a thread named poller was writing to the module's proc control interface. The path goes through proc_control_read_write() and table_del_target(), rather than the incoming packet-processing path.
Kdump captured a vmcore. The VM subsequently rebooted.
Steps to reproduce the problem
We do not yet have a deterministic reproducer or an identified triggering call/packet.
Additional program output to the terminal or logs illustrating the issue
BUG: kernel NULL pointer dereference, address: 000000000000008c
#PF: supervisor write access in kernel mode
#PF: error_code(0x0002) - not-present page
Oops: Oops: 0002 [#1] PREEMPT SMP PTI
CPU: 2 UID: 986 PID: 69974 Comm: poller Kdump: loaded
Tainted: G OE
6.12.0-206.104.4.4.el10uek.x86_64 #2
RIP: 0010:target_put.part.0+0xbe/0x110 [nft_rtpengine]
Code: 50 0d 00 00 48 8b bc 28 00 07 00 00 e8 eb 38 7b d8
48 8b 83 50 0d 00 00 48 8b bc 28 f8 06 00 00 44 89 e8
48 8d 97 8c 00 00 00 <f0> 0f c1 87 8c 00 00 00
83 f8 01 75 83 e8 70 e1 78 d8 eb 84 e8 39
RAX: 00000000ffffffff
RDX: 000000000000008c
RDI: 0000000000000000
CR2: 000000000000008c
Call Trace:
<TASK>
table_del_target+0x1ac/0x230 [nft_rtpengine]
proc_control_read_write+0x5d0/0x767 [nft_rtpengine]
proc_reg_write+0x5a/0xb0
vfs_write+0x109/0x450
ksys_write+0xc1/0xf0
do_syscall_64+0x90/0x1c0
entry_SYSCALL_64_after_hwframe+0x76/0x7e
</TASK>
Anything else?
No response
- Dominant language
- Perl
- Stars
- 992
- Forks
- 459
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from sipwise/rtpengine
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 3 days
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 75/100
Maintainers usually reply within 3 days
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 15/100
sipwise/rtpengine#2197 · 1 comment ·
Maintainers usually reply within 3 days
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
sipwise/rtpengine#2181 · 4 comments ·
Maintainers usually reply within 3 days
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 45/100
Maintainers usually reply within 3 days
All issues in sipwise/rtpengine
Similar issues
-
documentation Needs Triage
Difficulty 1/5 Under an hour Newbie friendliness 93/100
Maintainers usually reply within 1 day
-
Proposed Text EditsOpen
Difficulty 1/5 Under an hour Newbie friendliness 82/100
curl/everything-curl#658 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 82/100
PDLPorters/pdl#561 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
objectionary/eolang.sty#197 ·
Maintainers usually reply within 2 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
radiator-software/p5-net-ssleay#577 ·
Maintainers usually reply within 1 day