Skip to content

File Causes Lock / Infinite Loop - Must Force Quit #7705

@utkonos

Description

@utkonos

Version and Platform (required):

  • Binary Ninja Version: 5.3.8701-dev Ultimate, 2b68925b
  • OS: macos
  • OS Version: 26.1.0
  • CPU Architecture: arm64

Bug Description:
Opening this file causes an exception. This is followed by what appears to be an infinite loop of exceptions in Itanium RTTI. You cannot stop the RTTI scanning. And if you try to quit, binja hangs and you have to force quit.

First exception:

[Default] MSVC RTTI Analysis failed with uncaught exception: read out of bounds (Details...)

Stack trace:

0   librtti.dylib                       0x000000012258dfa4 CorePluginInit + 554176
1   librtti.dylib                       0x00000001225222b0 CorePluginInit + 112588
2   librtti.dylib                       0x000000012252260c CorePluginInit + 113448
3   librtti.dylib                       0x00000001225036cc librtti.dylib + 128716
4   librtti.dylib                       0x00000001225033c0 librtti.dylib + 127936
5   librtti.dylib                       0x00000001225063d4 librtti.dylib + 140244
6   librtti.dylib                       0x000000012250bbac CorePluginInit + 20680
7   libbinaryninjacore.1.dylib          0x000000011739ece8 BNActivityGetName + 105612
8   libbinaryninjacore.1.dylib          0x000000011739ee94 BNActivityGetName + 106040
9   libbinaryninjacore.1.dylib          0x0000000117383064 libbinaryninjacore.1.dylib + 766052
10  libbinaryninjacore.1.dylib          0x000000011803fc68 BNWorkflowGetEligibilitySettings + 68632
11  libbinaryninjacore.1.dylib          0x0000000118044a24 BNWorkflowGetEligibilitySettings + 88532
12  libbinaryninjacore.1.dylib          0x0000000118044708 BNWorkflowGetEligibilitySettings + 87736
13  libbinaryninjacore.1.dylib          0x000000011804ea18 BNWorkflowGetEligibilitySettings + 129480
14  libbinaryninjacore.1.dylib          0x0000000117e9f9d8 BNTagSetData + 15236
15  libbinaryninjacore.1.dylib          0x0000000118015bac BNDisconnectWebsocketClient + 12260
16  libbinaryninjacore.1.dylib          0x0000000118014b0c BNDisconnectWebsocketClient + 8004
17  libsystem_pthread.dylib             0x0000000189141c08 _pthread_start + 136
18  libsystem_pthread.dylib             0x000000018913cba8 thread_start + 8

One from the loop:

[Itanium RTTI] Failed to process object at 2c47c5f58... skipping (Details...)
0   librtti.dylib                       0x000000012258dfa4 CorePluginInit + 554176
1   librtti.dylib                       0x00000001225222b0 CorePluginInit + 112588
2   librtti.dylib                       0x00000001225229f4 CorePluginInit + 114448
3   librtti.dylib                       0x00000001224e6058 librtti.dylib + 8280
4   librtti.dylib                       0x00000001224ea1fc librtti.dylib + 25084
5   librtti.dylib                       0x00000001224eb058 librtti.dylib + 28760
6   librtti.dylib                       0x00000001224ee960 librtti.dylib + 43360
7   librtti.dylib                       0x0000000122506480 librtti.dylib + 140416
8   librtti.dylib                       0x000000012250bbac CorePluginInit + 20680
9   libbinaryninjacore.1.dylib          0x000000011739ece8 BNActivityGetName + 105612
10  libbinaryninjacore.1.dylib          0x000000011739ee94 BNActivityGetName + 106040
11  libbinaryninjacore.1.dylib          0x0000000117383064 libbinaryninjacore.1.dylib + 766052
12  libbinaryninjacore.1.dylib          0x000000011803fc68 BNWorkflowGetEligibilitySettings + 68632
13  libbinaryninjacore.1.dylib          0x0000000118044a24 BNWorkflowGetEligibilitySettings + 88532
14  libbinaryninjacore.1.dylib          0x0000000118044708 BNWorkflowGetEligibilitySettings + 87736
15  libbinaryninjacore.1.dylib          0x000000011804ea18 BNWorkflowGetEligibilitySettings + 129480
16  libbinaryninjacore.1.dylib          0x0000000117e9f9d8 BNTagSetData + 15236
17  libbinaryninjacore.1.dylib          0x0000000118015bac BNDisconnectWebsocketClient + 12260
18  libbinaryninjacore.1.dylib          0x0000000118014b0c BNDisconnectWebsocketClient + 8004
19  libsystem_pthread.dylib             0x0000000189141c08 _pthread_start + 136
20  libsystem_pthread.dylib             0x000000018913cba8 thread_start + 8

If you click the X next to "Scanning for Microsoft RTTI....." it doesn't stop. If you try to quit binja, only the window closes. Binja is still running and the cursor is a beachball. You have to force quit to get it to close and the to be able to open it again.

Steps To Reproduce:

  1. Open binary: kinetic ward works truly
  2. Look at logs
  3. Click the X next to "Scanning for Microsoft RTTI....."
  4. Observe that it doesn't stop
  5. Quit binja
  6. Observe that it didn't close fully
  7. Observe beachball
  8. Force quit.

Expected Behavior:
The binary is corrupt, obviously, but binary ninja should handle corrupted binaries gracefully and allow the user to stop actions and to quit cleanly.

Screenshots:

Image

Binary:

kinetic ward works truly

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions