Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SegmentFault in mmsServer_handleDeleteNamedVariableListRequest in src/mms/iso_mms/server/mms_named_variable_list_service.c:146 #495

Closed
Alice-and-Bob opened this issue Feb 16, 2024 · 1 comment

Comments

@Alice-and-Bob
Copy link

Description

An SEGV vulnerability was detected in the mmsServer_handleDeleteNamedVariableListRequest function of src/mms/iso_mms/server/mms_named_variable_list_service.c:146. The vulnerability manifests as SEGV and causes the application to crash.

version

all releases and any commit before 2823184

system information

ubuntu18.04

proof of concept

mms_named_variable_list_service.zip

poc_of_mms_get_namelist_service.zip

command

cd path/to/libiec61850-v1.5.3/examples/server_example_substitution
sudo ./server_example_substitution

cat poc | nc 0.0.0.0 102

result

Using libIEC61850 version 1.5.3
Connection opened
ASAN:DEADLYSIGNAL
=================================================================
==4709==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000008 (pc 0x55a74133d179 bp 0x7f197b0fc840 sp 0x7f197b0fc4c0 T3)
==4709==The signal is caused by a READ memory access.
==4709==Hint: address points to the zero page.
    #0 0x55a74133d178 in mmsServer_handleDeleteNamedVariableListRequest src/mms/iso_mms/server/mms_named_variable_list_service.c:157
    #1 0x55a741268b3c in handleConfirmedRequestPdu src/mms/iso_mms/server/mms_server_connection.c:367
    #2 0x55a74126a3c4 in MmsServerConnection_parseMessage src/mms/iso_mms/server/mms_server_connection.c:693
    #3 0x55a74126a54b in messageReceived src/mms/iso_mms/server/mms_server_connection.c:737
    #4 0x55a7412c1395 in IsoConnection_handleTcpConnection src/mms/iso_server/iso_connection.c:344
    #5 0x55a7412c1f83 in handleTcpConnection src/mms/iso_server/iso_connection.c:477
    #6 0x7f197f9576da in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76da)
    #7 0x7f197f2e261e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x12161e)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV src/mms/iso_mms/server/mms_named_variable_list_service.c:157 in mmsServer_handleDeleteNamedVariableListRequest
Thread T3 created by T1 here:
    #0 0x7f197fba6d2f in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x37d2f)
    #1 0x55a7412550f6 in Thread_start hal/thread/linux/thread_linux.c:89
    #2 0x55a7412c2883 in IsoConnection_start src/mms/iso_server/iso_connection.c:589
    #3 0x55a7412beefc in handleIsoConnections src/mms/iso_server/iso_server.c:519
    #4 0x55a7412befa0 in isoServerThread src/mms/iso_server/iso_server.c:553
    #5 0x7f197f9576da in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76da)

Thread T1 created by T0 here:
    #0 0x7f197fba6d2f in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x37d2f)
    #1 0x55a7412550f6 in Thread_start hal/thread/linux/thread_linux.c:89
    #2 0x55a7412bf5be in IsoServer_startListening src/mms/iso_server/iso_server.c:681
    #3 0x55a74125f810 in MmsServer_startListening src/mms/iso_mms/server/mms_server.c:629
    #4 0x55a74125114c in IedServer_start src/iec61850/server/impl/ied_server.c:708
    #5 0x55a74123a25e in main /home/yang/libiec61850-1.5.3/examples/server_example_substitution/server_example_substitution.c:229
    #6 0x7f197f1e2c86 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21c86)

==4709==ABORTING

@Alice-and-Bob
Copy link
Author

hi, @mzillgith and team,I updated with more poc samples that trigger this vulnerability, which complements the vulnerability samples mentioned in issue 492. Although I didn't mention this vulnerability in a separate issue, I'm still happy that it was fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant