Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Kernel NULL pointer dereference in target_put() during target deletion

Aperta
#2,190 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

@darwvin-dev ci sta già lavorando.

Dal 13/10/2026.

  • #2205 di @darwvin-dev — aperta

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
38/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
c, linux

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug
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

Lingua principale
Perl
Stelle
992
Fork
459
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di sipwise/rtpengine

Tutte le issue di sipwise/rtpengine

Issue simili

Altre issue su Perl

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.