A vulnerability in Ghidra, the generic disassembler and decompiler released by the National Security Agency (NSA) in early March, could be exploited to execute code remotely, researchers say.
The flaw, an XML external entity (XXE) issue, was discovered in the Ghidra project loading process immediately after the tool was released.
Impacting the project open/restore, the vulnerability can be exploited by anyone able to trick a user into opening or restoring a specially crafted project, a GitHub report reveals.
To reproduce the issue, one would need to create a project, close it, then put an XXE payload in any of the XML files in the project directory. As soon as the project is opened, the payload is executed.
Discovered by a researcher who uses the online handle of sghctoma, the vulnerability can be triggered on archived projects (.gar files) as well.
On Monday, Tencent Security researchers published information on how the XXE flaw can be exploited to remotely execute code on the victim’s machine.
“Based on our prior research on XXE vulnerability exploitation, we found that attackers can abuse Java features and weaknesses in NTLM protocol in Windows operating system to achieve remote code execution,” Tencent Security researchers said.
To abuse the vulnerability remotely, an attacker would need to deploy a HTTP Server with NTLM authentication, then use an XXE/SSRF vulnerability to force a NTLM authentication from the victim.
The NTLM Relay attack can then be leveraged to move from local authentication to network authentication, Tencent Security explains.
The security researchers published proof-of-concept code along with step-by-step details on how the XXE in Ghidra can be exploited for code execution.
“When victim uses Ghidra to open this malicious project, attacker can obtain NTLM Hash from the victim’s machine, therefore execute arbitrary command on victim’s machine,” the researchers say.
To mitigate the issue, one should configure Windows firewall to block incoming SMB requests, enable SMB Sign if SMB server is required, and upgrade to the latest version of JDK.
The XXE flaw is being addressed in the next version of Ghidra, namely 9.0.1. The release, however, isn’t yet public.
Related: NSA Makes Reverse Engineering Tool Freely Available