On March 10, enSilo warned AVG about a troubling problem in its AVG Internet Security 2015 anti-virus product.
According to enSilo's VP of research Tomer Bitton, the application allocated memory with an "execute" permission. The recommended approach is not to set that permission ahead of time, but only when it's needed, and remove it immediately afterwards.
It's not a quick a simple fix, researchers said.
"But in just two days, they fixed it, and released a patch," said Bitton.
He pointed out that it takes some companies up to 90 days -- or longer -- to fix a vulnerability.
"AVG's response to this flaw is something we should all learn from," he said in a report published yesterday. "It stands in dark contrast with the vulnerability disclosure saga between Google and Microsoft."
Until recently, Google had a policy in place of making vulnerabilties public after 90 days, whether or not the vendor had patched them.
However, Google's Project Zero vulnerability research team extended that deadline last month. Now, it will wait up to two additional weeks before going public, if the vendor is planning to release a patch during that time.
AVG side-stepped the entire debate, said Bitton. "They proved that processes can be changed and user security can be placed as a first priority."
Vulnerability details
According to enSilo, the vulnerability was in AVG Internet Security 2015 build 5736 + Virus database 8919 released on January 13, 2015.
In addition to setting the execute permission too broadly, the memory allocation was also located at a constant, predictable address.
"This flaw significantly diminished the efforts that the threat actor needed in order to exploit a third party application," said enSilo's report. "Effectively, this vulnerability enabled a threat actor to exploit any old vulnerability in a third party application in order to compromise the underlying Windows system using a multi-stage process."
An attacker would need to find another vulnerable third-party application, gain control of its instruction pointer, and then copy malicious code into AVG's memory allocation and execute the code. By using the AVG vulnerability, the attacker would be able to bypass Windows' Address Space Layout and Data Execution Prevention protections.
Systems affected were Windows Vista and Windows 7.
Windows 8 and later platforms were less affected.
"Although the AVG vulnerability existed in these systems as well, Microsoft had introduced its bottom-up and top-down randomization mitigation starting with Windows 8," said enSilo. "This mitigation essentially nullified leveraging this vulnerability."
In addition to disclosing the problem to AVG, enSilo also provided a corresponding proof of concept.
According to Bitton, AVG responded immediately to enSilo's report. Within two days, the company solved the problem, released a patch, and pushed the patch out to all of its users.
"To err is human and we can always expect code flaws," he said. "However, AVG's demonstrated response should set the bar for other vendors when it comes to patching their systems."