A security researcher has found a way to circumvent Adobe Systems' effort to address the /Launch action issue that made headlines a few months ago.
In the recent update for Adobe Acrobat and Reader, the company sought to thwart any attempts to use a PDF reader's "launch" command to run embedded executables. However, BKIS Senior Security Researcher Le Manh Tung has found that the Adobe fix can be circumvented if an attacker modifies the code by adding quotes to the parameters passed to /F, for example if /F(cmd.exe) becomes /F("cmd.exe").
"With the quotes added, Adobe Reader will not block the execution ... After pressing Open, cmd.exe will be executed!!! So, Adobe Reader Version 9.3.3 has fixed the fake warning message, but the threat of exploit code execution still remains," Tung blogged.
Though technically not considered a vulnerability-the functionality is defined in the PDF specification (ISO PDF 32000-1:2008)-the situation has been exploited by attackers, and was seen being used in April in an effort to infect users with the Zeus Trojan.
According to Adobe Director of product security and privacy Brad Arkin, Adobe determined disabling the ability to open non-PDF file attachments with external applications by default would hurt its customers.
"As an alternative, we added attachment blacklist functionality to block attempts to launch executables or other harmful objects by default," Arkin wrote. "While blacklist capabilities alone are not a perfect solution to defend against those with malicious intent, this option reduces the risk of attack, while minimizing the impact on customers relying on workflows that depend on the launch functionality. We will evaluate this workaround to determine whether additional changes to the blacklist are required."
When users attempt to open an executable or other blacklisted file type, an error message will appear, he added. In addition, the way the warning dialog requesting user permission to launch non-PDF file attachments with external applications works has been changed to prevent attackers from inserting their own instructions.
The flaw can be fixed by standardizing the parameter string passed to /Launch before comparing it with a blacklist, Nguyen Minh Duc, director of security at BKIS, told eWEEK.