Deleting an SA that is in-use, should return an error and be prevented.

/neale


From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> on behalf of Guangming via 
lists.fd.io <zhangguangming=baicells....@lists.fd.io>
Date: Saturday, 19 November 2022 at 00:27
To: vpp-dev <vpp-dev@lists.fd.io>
Subject: Re: [vpp-dev] There is bug in esp decrypt
I  got the same issue   when use cli  "ipsec sa del id"  delete sa that was 
used by esp  encrypt/decrypt

________________________________
zhangguangm...@baicells.com

From: jiangxiaoming<mailto:jiangxiaom...@outlook.com>
Date: 2022-11-18 19:13
To: vpp-dev<mailto:vpp-dev@lists.fd.io>
Subject: Re: [vpp-dev] There is bug in esp decrypt

Hi neale,

    The function ipsec_sa_get call in esp_encrypt_inline/esp_decrypt_inline has 
mem issue.
In ipsec4-input-feature node, vnet_buffer (b[0])->ipsec.sad_index was setted by 
sa,
but the sa maybe freed by main thread just after the node dispatch finish, the 
next dispatch loop the sa referenced by
vnet_buffer (b[0])->ipsec.sad_index become invalid and will cause memory issue 
in esp_encrypt_inline.
esp_decrypt/ah_encrypt/ah_decrpty all have same issue.
Below is the crash stack I got:

2: /root/code/net-base/.vpp-22.02/src/vnet/ipsec/ipsec_sa.h:649 (ipsec_sa_get) 
assertion `! pool_is_free (ipsec_sa_pool, _e)' fails

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7ffa38472700 (LWP 4067)]
0x00007ffff35c11f7 in raise () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install glibc-2.17-196.el7.x86_64 
libgcc-4.8.5-16.el7.x86_64 libpcap-1.5.3-12.el7.x86_64 
libstdc++-4.8.5-16.el7.x86_64 libuuid-2.23.2-43.el7.x86_64
(gdb)
(gdb) bt
#0  0x00007ffff35c11f7 in raise () from /lib64/libc.so.6
#1  0x00007ffff35c28e8 in abort () from /lib64/libc.so.6
#2  0x000000000040b31b in os_panic () at 
/root/code/net-base/.vpp-22.02/src/vpp/vnet/main.c:413
#3  0x00007ffff3f081ff in debugger () at 
/root/code/net-base/.vpp-22.02/src/vppinfra/error.c:84
#4  0x00007ffff3f088d5 in _clib_error (how_to_die=2, function_name=0x0, 
line_number=0, fmt=0x7ffff6a26380 "%s:%d (%s) assertion `%s' fails") at 
/root/code/net-base/.vpp-22.02/src/vppinfra/error.c:143
#5  0x00007ffff5767800 in ipsec_sa_get (sa_index=24723) at 
/root/code/net-base/.vpp-22.02/src/vnet/ipsec/ipsec_sa.h:649
#6  0x00007ffff576f6ed in esp_encrypt_inline (vm=0x7ffefb476380, 
node=0x7ffefc5f5580, frame=0x7fff1cd85c80, lt=VNET_LINK_IP4, is_tun=0, 
async_next_node=1) at 
/root/code/net-base/.vpp-22.02/src/vnet/ipsec/esp_encrypt.c:661
#7  0x00007ffff5773afe in esp4_encrypt_node_fn (vm=0x7ffefb476380, 
node=0x7ffefc5f5580, from_frame=0x7fff1cd85c80) at 
/root/code/net-base/.vpp-22.02/src/vnet/ipsec/esp_encrypt.c:1171
#8  0x00007fffefc4f3ad in dispatch_pcap_trace (vm=0x7ffefb476380, 
node=0x7ffefc5f5580, frame=0x7fff1cd85c80) at 
/root/code/net-base/.vpp-22.02/src/plugins/dispatch-trace/main.c:210
#9  0x00007ffff475bb0d in dispatch_node (vm=0x7ffefb476380, 
node=0x7ffefc5f5580, type=VLIB_NODE_TYPE_INTERNAL, 
dispatch_state=VLIB_NODE_STATE_POLLING, frame=0x7fff1cd85c80, 
last_time_stamp=3114277064272384) at 
/root/code/net-base/.vpp-22.02/src/vlib/main.c:977
#10 0x00007ffff475cf25 in dispatch_pending_node (vm=0x7ffefb476380, 
pending_frame_index=0, last_time_stamp=3114277064272384) at 
/root/code/net-base/.vpp-22.02/src/vlib/main.c:1134
#11 0x00007ffff4760dcc in vlib_main_or_worker_loop (vm=0x7ffefb476380, 
is_main=0) at /root/code/net-base/.vpp-22.02/src/vlib/main.c:1600
#12 0x00007ffff4762594 in vlib_worker_loop (vm=0x7ffefb476380) at 
/root/code/net-base/.vpp-22.02/src/vlib/main.c:1734
#13 0x00007ffff47b5e68 in vlib_worker_thread_fn (arg=0x7ffef0b822c0) at 
/root/code/net-base/.vpp-22.02/src/vlib/threads.c:1533
#14 0x00007ffff3f32790 in clib_calljmp () at 
/root/code/net-base/.vpp-22.02/src/vppinfra/longjmp.S:123
#15 0x00007ffa38471dd0 in ?? ()
#16 0x00007ffff47a9820 in vlib_worker_thread_bootstrap_fn (arg=0x7ffef0b822c0) 
at /root/code/net-base/.vpp-22.02/src/vlib/threads.c:413
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Xiaoming
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#22208): https://lists.fd.io/g/vpp-dev/message/22208
Mute This Topic: https://lists.fd.io/mt/95086868/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/1480452/21656/631435203/xyzzy 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to