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

Executable crashes in presence of DLP system like Trelix, Symantec etc when compiled with Poco 1.13.3 #4761

Open
vnavada99 opened this issue Nov 7, 2024 · 0 comments
Labels

Comments

@vnavada99
Copy link

Describe the bug

  1. All executables which are compiled with Poco Version 1.13.3 crashes in presence of DLP Endpoint systems like Trelix, Symantec etc.
  2. This crash is observed when the SQL Parser feature is on, if we compile with "POCO_DATA_NO_SQL_PARSER" defined in config.h which would switch off the SQL Parser feature, the crashes does not happen.
  3. I was able to reproduce the issue with the TestSuitd.exe provided in the Data library of the project and attached the compiled TestSuitd.exe along with the pdbs and symbols.
  4. It seems the initialization of the "std::stringstream" in flex_lexer.cpp is causing the conflict with the DLP systems.

To Reproduce
Run the TestSuitd.exe with -all flag in the system with DLP installed.

Expected behavior
The application/ executable compiled with SQL Parser feature of Poco should not crash.

Please add relevant environment information:

  • Windows 10 Enterprise

  • POCO Version 1.13.3

  • Trelix Version :
    System Information
    Computer Name: DESKTOP-NIB8T7H

    Trellix Data Exchange Layer
    Version number: 6.0.3.1203
    Build date: 23 April 2024
    TDXL Connected State: Connected
    Broker DNS Name: dxl-usw004.manage.trellix.com
    Broker Address: dxl-usw004.manage.trellix.com
    Broker Port Number: 443

    Trellix Information:
    Version number: 5.8.2.929
    Status: Managed
    SuperAgent: Peer to Peer
    Last security update check: 07-11-2024 00:15:57
    Last agent-to-server communication: 07-11-2024 12:57:36
    Agent to Server Communication Interval (every): 1 hour
    Policy Enforcement Interval (every): 1 hour
    Agent GUID: {940a4d11-5d1d-4955-b571-3ab061406e1e}
    ePO Server/Agent Handler
    DNS Name: ah-usw004.manage.trellix.com
    IP Address
    Port Number: 443

    Trellix Data Loss Prevention - Endpoint
    Version number: 11.10.300.1432
    Language: English (United States)

    Copyright (C) 2024 Musarubra US LLC.
    All Rights Reserved.
    www.trellix.com

Additional context

  • This issue is only observed when the SQL Parser feature is switched on, and in case compiled with "POCO_DATA_NO_SQL_PARSER" flag which switch off the SQL parser feature the issue is not observed.
  • Following is the stack observed when crashing, as seen in the stack it tries to enter critical section, contends it and waits on it, and this is seen repeated in other executables compiled with same Poco library:
    Call Site
    ntdll!NtWaitForMultipleObjects+0x14
    ntdll!WerpWaitForCrashReporting+0xa8
    ntdll!RtlReportExceptionHelper+0x33e
    ntdll!RtlReportException+0x9b
    ntdll!LdrpCallTlsInitializers$filt$0+0x30
    ntdll!_C_specific_handler+0x96
    ntdll!RtlpExecuteHandlerForException+0xf
    ntdll!RtlDispatchException+0x244
    ntdll!KiUserExceptionDispatch+0x2e (TrapFrame @ 0000000db02fe9a8) ntdll!RtlpWaitOnCriticalSection+0xa6 ntdll!RtlpEnterCriticalSectionContended+0x1c4 ntdll!RtlEnterCriticalSection+0x42 TestSuited!__acrt_lock+0x27 [minkernel\crts\ucrt\src\appcrt\internal\locks.cpp @ 55] TestSuited!heap_alloc_dbg_internal+0x2a [minkernel\crts\ucrt\src\appcrt\heap\debug_heap.cpp @ 309] TestSuited!heap_alloc_dbg+0x4d [minkernel\crts\ucrt\src\appcrt\heap\debug_heap.cpp @ 450] TestSuited!_malloc_dbg+0x2f [minkernel\crts\ucrt\src\appcrt\heap\debug_heap.cpp @ 496] TestSuited!std::_Crt_new_delete::operator new+0x5c [C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.28.29333\include\xlocale @ 74] TestSuited!std::_Crt_new_delete::operator new+0x2f [C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.28.29333\include\xlocale @ 64] TestSuited!std::ios_base::_Init+0x9a [C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.28.29333\include\xiosbase @ 472] TestSuited!std::basic_ios<char,std::char_traits<char> >::init+0x32 [C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.28.29333\include\ios @ 148] TestSuited!std::basic_istream<char,std::char_traits<char> >::basic_istream<char,std::char_traits<char> >+0xe7 [C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.28.29333\include\istream @ 44] TestSuited!std::basic_iostream<char,std::char_traits<char> >::basic_iostream<char,std::char_traits<char> >+0x88 [C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.28.29333\include\istream @ 715] TestSuited!std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >+0x90 [C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.28.29333\include\sstream @ 527] TestSuited!dynamic initializer for 'strbuf''+0x43 [D:\Third Party\poco\poco-1.13.3-all\Data\flex_lexer.l @ 21]
    TestSuited!__dyn_tls_init+0xad [d:\agent_work\63\s\src\vctools\crt\vcstartup\src\tls\tlsdyn.cpp @ 103]
    ntdll!LdrpCallInitRoutine+0x61
    ntdll!LdrpCallTlsInitializers+0x87
    ntdll!LdrpInitializeThread+0x1f7
    ntdll!LdrpInitialize+0x408
    ntdll!LdrpInitialize+0x3b
    ntdll!LdrInitializeThunk+0xe
  • Attached is the dump file for same, i have also attached zip file of the exe and pdbs.
    TestSuited.exe.4280.dmp
    3.13.3_TestSuit.zip
@vnavada99 vnavada99 added the bug label Nov 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant