Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-10622

Segmentation fault on start whith high-entropy ASLR

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Normal
    • Resolution: Won't Fix
    • Affects Version/s: PUP 6.17.0
    • Fix Version/s: None
    • Component/s: Windows
    • Labels:
      None
    • Template:
      PUP Bug Template
    • Agent OS:
      Windows 10 (x86, x64)
    • Team:
      Night's Watch
    • Story Points:
      3
    • Sprint:
      NW - 2020-09-30, NW - 2020-10-14
    • Method Found:
      Needs Assessment
    • Release Notes:
      Not Needed
    • QA Risk Assessment:
      Needs Assessment

      Description

      Puppet Version: 6.17
      Puppet Server Version: -
      OS Name/Version: Windows 10 x64 (2004)

      In my company someone (more paranoid) in the IT department decided that on all of our machines the Windows exploit protection settings have to be changed to:

      • Randomize memory allocations (Bottom-up ASLR): On by default
      • High-entropy ASLR: On by default

      With these settings enabled, running even the simplest puppet commands (like `puppet --version`) fails with a segmentation fault:

      $ puppet --version
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-dir-0.4.9/lib/win32/dir.rb:84: [BUG] Segmentation fault
      ruby 2.5.8p224 (2020-03-31 revision 67882) [x64-mingw32]
       
      -- Control frame information -----------------------------------------------
      c:0034 p:---- s:0203 e:000202 CFUNC  :initialize
      c:0033 p:---- s:0200 e:000199 CFUNC  :new
      c:0032 p:0089 s:0195 e:000194 BLOCK  C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-dir-0.4.9/lib/win32/dir.rb:84 [FINISH]
      c:0031 p:---- s:0185 e:000184 CFUNC  :each
      c:0030 p:0288 s:0181 e:000180 CLASS  C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-dir-0.4.9/lib/win32/dir.rb:74
      c:0029 p:0028 s:0177 e:000176 TOP    C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-dir-0.4.9/lib/win32/dir.rb:5 [FINISH]
      c:0028 p:---- s:0174 e:000173 CFUNC  :require
      c:0027 p:0091 s:0169 e:000168 RESCUE C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135
      c:0026 p:0378 s:0165 e:000164 METHOD C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:39
      c:0025 p:0103 s:0153 e:000152 CLASS  C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/util/windows.rb:29
      c:0024 p:0021 s:0150 e:000149 TOP    C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/util/windows.rb:2 [FINISH]
      c:0023 p:---- s:0147 e:000146 CFUNC  :require
      c:0022 p:0110 s:0142 e:000141 METHOD C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59
      c:0021 p:0013 s:0130 e:000129 TOP    C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/file_system/windows.rb:2 [FINISH]
      c:0020 p:---- s:0127 e:000126 CFUNC  :require
      c:0019 p:0110 s:0122 e:000121 METHOD C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59
      c:0018 p:0064 s:0110 e:000109 CLASS  C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/file_system.rb:11
      c:0017 p:0012 s:0107 e:000106 TOP    C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/file_system.rb:1 [FINISH]
      c:0016 p:---- s:0104 e:000103 CFUNC  :require
      c:0015 p:0110 s:0099 e:000098 METHOD C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59
      c:0014 p:0006 s:0087 e:000086 TOP    C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/file_system/uniquefile.rb:1 [FINISH]
      c:0013 p:---- s:0084 e:000083 CFUNC  :require
      c:0012 p:0110 s:0079 e:000078 METHOD C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59
      c:0011 p:0062 s:0067 e:000066 TOP    C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/util.rb:11 [FINISH]
      c:0010 p:---- s:0064 e:000063 CFUNC  :require
      c:0009 p:0110 s:0059 e:000058 METHOD C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59
      c:0008 p:0161 s:0047 e:000046 TOP    C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet.rb:17 [FINISH]
      c:0007 p:---- s:0044 e:000043 CFUNC  :require
      c:0006 p:0110 s:0039 e:000038 METHOD C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59
      c:0005 p:0025 s:0027 e:000026 TOP    C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:12 [FINISH]
      c:0004 p:---- s:0024 e:000023 CFUNC  :require
      c:0003 p:0110 s:0019 e:000018 METHOD C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59
      c:0002 p:0006 s:0007 E:0013d8 EVAL   C:/Program Files/Puppet Labs/Puppet/puppet/bin/puppet:3 [FINISH]
      c:0001 p:0000 s:0003 E:000860 (none) [FINISH]
       
      -- Ruby level backtrace information ----------------------------------------
      C:/Program Files/Puppet Labs/Puppet/puppet/bin/puppet:3:in `<main>'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:12:in `<top (required)>'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet.rb:17:in `<top (required)>'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/util.rb:11:in `<top (required)>'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/file_system/uniquefile.rb:1:in `<top (required)>'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/file_system.rb:1:in `<top (required)>'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/file_system.rb:11:in `<module:FileSystem>'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/file_system/windows.rb:2:in `<top (required)>'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/util/windows.rb:2:in `<top (required)>'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/util/windows.rb:29:in `<module:Windows>'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:39:in `require'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `require'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-dir-0.4.9/lib/win32/dir.rb:5:in `<top (required)>'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-dir-0.4.9/lib/win32/dir.rb:74:in `<class:Dir>'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-dir-0.4.9/lib/win32/dir.rb:74:in `each'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-dir-0.4.9/lib/win32/dir.rb:84:in `block in <class:Dir>'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-dir-0.4.9/lib/win32/dir.rb:84:in `new'
      C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-dir-0.4.9/lib/win32/dir.rb:84:in `initialize'
       
      -- C level backtrace information -------------------------------------------
      C:\WINDOWS\SYSTEM32\ntdll.dll(ZwWaitForSingleObject+0x14) [0x00007FFD576CBE44]
      C:\WINDOWS\System32\KERNELBASE.dll(WaitForSingleObjectEx+0x8e) [0x00007FFD551E26EE]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_bugreport+0xa7) [0x000000006BB59367]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_bug_context+0x6b) [0x000000006B9D26AB]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_check_safe_obj+0x439) [0x000000006BACB4B9]
       [0x00000000004023A3]
      C:\WINDOWS\System32\msvcrt.dll(_C_specific_handler+0x98) [0x00007FFD57317FF8]
      C:\WINDOWS\SYSTEM32\ntdll.dll(_chkstk+0x11f) [0x00007FFD576D111F]
      C:\WINDOWS\SYSTEM32\ntdll.dll(RtlRaiseException+0x434) [0x00007FFD5767B474]
      C:\WINDOWS\SYSTEM32\ntdll.dll(KiUserExceptionDispatcher+0x2e) [0x00007FFD576CFC4E]
      C:\WINDOWS\System32\msvcrt.dll(memset+0x56) [0x00007FFD573646D6]
       [0x000000006AD6C68D]
       [0x000000006AD6C8A2]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_eval_string+0x2e1) [0x000000006BB4BB51]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_call+0x584) [0x000000006BB4C494]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_funcallv+0x3a) [0x000000006BB4CB7A]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_undefined_alloc+0x1dd) [0x000000006BA4B6FD]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_error_arity+0x123) [0x000000006BB3C743]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_invoke_proc+0x810) [0x000000006BB4A990]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x2e46) [0x000000006BB45876]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x6b84) [0x000000006BB495B4]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x7465) [0x000000006BB49E95]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_yield_values2+0xd5) [0x000000006BB51495]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_hash_has_key+0x38e) [0x000000006B9F935E]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_hash_values+0x109e) [0x000000006B9FA4CE]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(st_foreach_check+0x74) [0x000000006BAD6314]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_hash_values+0x1034) [0x000000006B9FA464]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_ensure+0x180) [0x000000006B9DDAC0]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_hash_select+0x200) [0x000000006B9FF730]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_error_arity+0x123) [0x000000006BB3C743]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_invoke_proc+0x810) [0x000000006BB4A990]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x2c45) [0x000000006BB45675]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x6b84) [0x000000006BB495B4]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_iseqw_local_variables+0xc81) [0x000000006BA24C11]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_require_internal+0x612) [0x000000006BA266F2]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_f_require+0x20) [0x000000006BA26940]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_error_arity+0x123) [0x000000006BB3C743]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x2e46) [0x000000006BB45876]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x6b84) [0x000000006BB495B4]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_iseqw_local_variables+0xc81) [0x000000006BA24C11]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_require_internal+0x612) [0x000000006BA266F2]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_f_require+0x20) [0x000000006BA26940]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_error_arity+0x123) [0x000000006BB3C743]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x2e46) [0x000000006BB45876]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x6b84) [0x000000006BB495B4]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_iseqw_local_variables+0xc81) [0x000000006BA24C11]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_require_internal+0x612) [0x000000006BA266F2]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_f_require+0x20) [0x000000006BA26940]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_error_arity+0x123) [0x000000006BB3C743]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x2e46) [0x000000006BB45876]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x6b84) [0x000000006BB495B4]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_iseqw_local_variables+0xc81) [0x000000006BA24C11]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_require_internal+0x612) [0x000000006BA266F2]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_f_require+0x20) [0x000000006BA26940]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_error_arity+0x123) [0x000000006BB3C743]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x2e46) [0x000000006BB45876]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x6b84) [0x000000006BB495B4]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_iseqw_local_variables+0xc81) [0x000000006BA24C11]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_require_internal+0x612) [0x000000006BA266F2]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_f_require+0x20) [0x000000006BA26940]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_error_arity+0x123) [0x000000006BB3C743]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x2e46) [0x000000006BB45876]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x6b84) [0x000000006BB495B4]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_iseqw_local_variables+0xc81) [0x000000006BA24C11]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_require_internal+0x612) [0x000000006BA266F2]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_f_require+0x20) [0x000000006BA26940]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_error_arity+0x123) [0x000000006BB3C743]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x2e46) [0x000000006BB45876]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x6b84) [0x000000006BB495B4]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_iseqw_local_variables+0xc81) [0x000000006BA24C11]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_require_internal+0x612) [0x000000006BA266F2]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_f_require+0x20) [0x000000006BA26940]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_error_arity+0x123) [0x000000006BB3C743]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x2e46) [0x000000006BB45876]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x6b84) [0x000000006BB495B4]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_iseqw_local_variables+0xc81) [0x000000006BA24C11]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_require_internal+0x612) [0x000000006BA266F2]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_f_require+0x20) [0x000000006BA26940]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_error_arity+0x123) [0x000000006BB3C743]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x2e46) [0x000000006BB45876]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_vm_localjump_error+0x6b84) [0x000000006BB495B4]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(rb_call_end_proc+0xf9) [0x000000006B9D8929]
      C:\Program Files\Puppet Labs\Puppet\puppet\bin\x64-msvcrt-ruby250.dll(ruby_run_node+0x4b) [0x000000006B9DCB8B]
       [0x0000000000402D44]
       [0x00000000004013E8]
       [0x000000000040151B]
      C:\WINDOWS\System32\KERNEL32.DLL(BaseThreadInitThunk+0x14) [0x00007FFD56776FD4]
       
      -- Other runtime information -----------------------------------------------
       
      * Loaded script: C:/Program Files/Puppet Labs/Puppet/puppet/bin/puppet
       
      * Loaded features:
       
          0 enumerator.so
          1 thread.rb
          2 rational.so
          3 complex.so
          4 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/x64-mingw32/enc/encdb.so
          5 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/x64-mingw32/enc/trans/transdb.so
          6 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/x64-mingw32/rbconfig.rb
          7 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/compatibility.rb
          8 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/defaults.rb
          9 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/deprecate.rb
         10 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/errors.rb
         11 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/version.rb
         12 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/requirement.rb
         13 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/platform.rb
         14 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/basic_specification.rb
         15 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/stub_specification.rb
         16 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/util/list.rb
         17 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/x64-mingw32/stringio.so
         18 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/uri/rfc2396_parser.rb
         19 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/uri/rfc3986_parser.rb
         20 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/uri/common.rb
         21 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/uri/generic.rb
         22 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/uri/ftp.rb
         23 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/uri/http.rb
         24 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/uri/https.rb
         25 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/uri/ldap.rb
         26 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/uri/ldaps.rb
         27 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/uri/mailto.rb
         28 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/uri.rb
         29 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/specification.rb
         30 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/exceptions.rb
         31 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/defaults/operating_system.rb
         32 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/dependency.rb
         33 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_gem.rb
         34 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/monitor.rb
         35 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb
         36 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems.rb
         37 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/path_support.rb
         38 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/version.rb
         39 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/core_ext/name_error.rb
         40 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/levenshtein.rb
         41 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/jaro_winkler.rb
         42 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checker.rb
         43 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/delegate.rb
         44 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
         45 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
         46 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/name_error_checkers.rb
         47 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/method_name_checker.rb
         48 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/key_error_checker.rb
         49 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/null_checker.rb
         50 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/formatters/plain_formatter.rb
         51 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean.rb
         52 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/version.rb
         53 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/concurrent/synchronized.rb
         54 C:/Program Files/Puppet Labs/Puppet/puppet/lib/facter.rb
         55 C:/Program Files/Puppet Labs/Puppet/puppet/bin/libfacter.so
         56 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/facter.rb
         57 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/error.rb
         58 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/English.rb
         59 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/util/execution_stub.rb
         60 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/x64-mingw32/pathname.so
         61 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/pathname.rb
         62 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/ostruct.rb
         63 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/x64-mingw32/fiddle.so
         64 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/fiddle/function.rb
         65 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/fiddle/closure.rb
         66 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/fiddle.rb
         67 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/fiddle/value.rb
         68 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/fiddle/pack.rb
         69 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/fiddle/struct.rb
         70 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/fiddle/cparser.rb
         71 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/fiddle/import.rb
         72 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/win32/importer.rb
         73 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/x64-mingw32/enc/utf_16le.so
         74 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/x64-mingw32/enc/trans/utf_16_32.so
         75 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/win32/registry.rb
         76 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/util/platform.rb
         77 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/util/symbolic_file_mode.rb
         78 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/file_system/path_pattern.rb
         79 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/file_system/file_impl.rb
         80 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/file_system/memory_file.rb
         81 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/file_system/memory_impl.rb
         82 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/vendor_ruby/puppet/file_system/posix.rb
         83 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/Win32API.rb
         84 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/x64-mingw32/win32ole.so
         85 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/win32ole.rb
         86 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/rubygems/bundler_version_finder.rb
         87 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/2.5/ffi_c.so
         88 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/platform.rb
         89 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/types.rb
         90 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/library.rb
         91 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/errno.rb
         92 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/pointer.rb
         93 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/memorypointer.rb
         94 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/struct_layout_builder.rb
         95 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/struct.rb
         96 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/union.rb
         97 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/managedstruct.rb
         98 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/callback.rb
         99 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/io.rb
        100 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/autopointer.rb
        101 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/variadic.rb
        102 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/enum.rb
        103 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/ffi.rb
        104 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi.rb
        105 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-process-0.7.5/lib/win32/process/functions.rb
        106 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-process-0.7.5/lib/win32/process/constants.rb
        107 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-process-0.7.5/lib/win32/process/structs.rb
        108 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-process-0.7.5/lib/win32/process/helper.rb
        109 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-process-0.7.5/lib/win32/process.rb
        110 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-dir-0.4.9/lib/win32/dir/constants.rb
        111 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-dir-0.4.9/lib/win32/dir/functions.rb
        112 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/gems/2.5.0/gems/win32-dir-0.4.9/lib/win32/dir/structs.rb
        113 C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/2.5.0/x64-mingw32/enc/trans/single_byte.so
       
      [NOTE]
      You may have encountered a bug in the Ruby interpreter or extension libraries.
      Bug reports are welcome.
      For details: http://www.ruby-lang.org/bugreport.html
      

      You can reproduce this problem by settings both settings mentioned above in the Exploit Protection settings (simply search for "exploit" in Windows search) to On by default (which apparently is different from "Use default (On)"), then reboot and then call `puppet --version`.

      Now I know that one can provide exceptions for these settings (although only at the "ruby.exe" level) but in my opinion Puppet should not just crash if these settings are applied (especially since it's not obvious why the crash is happening, especially when these exploit protection settings just get pushed to your device without the user knowing).

      Also, I know (or at least guess) that the problem is actually in the win32-dir gem and not in Puppet itself. But it would be nice if you guys could handle the communication to the gem authors (as I'm no ruby developer and would need to learn ruby from scratch to provide a reproducer for the problem - and even then, Puppet is still using the out-dated version 0.4.9 of win32-dir, so Puppet would still need to update its internal gem).

      Desired Behavior: Puppet should work

      Actual Behavior: Puppet crashes

        Attachments

          Activity

            People

            Assignee:
            gabriel.nagy Gabriel Nagy
            Reporter:
            skrysmanski Sebastian Krysmanski
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Zendesk Support