Researchers find 134 flaws in the way Word, PDFs, handle scripts
(2022/05/13)
- Reference: 1652428447
- News link: https://www.theregister.co.uk/2022/05/13/cooperative_mutation_flaw_finder/
- Source link:
Black Hat Asia Security researchers have devised a tool that detects flaws in the way apps like Microsoft Word and Adobe Acrobat process JavaScript, and it's proven so effective they've found 134 bugs – 59 of them considered worthy of a fix by vendors, 33 assigned a CVE number, and 17 producing bug bounty payments totaling $22,000.
The tool is named "Cooper" – a reference to the "Cooperative mutation" technique employed by the tool.
Speaking at the Black Hat Asia conference in Singapore, PhD student Xu Peng of the Chinese Academy of Sciences – one of the tool's co-authors – explained that the likes of Word and Acrobat accept input from scripting languages. Acrobat, for example, allows JavaScript to manipulate PDF files.
[1]
Making that happen requires the PDF both to define native PDF objects and to parse JavaScript code. The native objects are processed by Acrobat modules, and an embedded JavaScript engine handles the scripts. A "binding layer" does the translation.
[2]
[3]
In his talk and a [4]paper [PDF] describing Cooper, Xu and his collaborators assert the binding code "is prone to inconsistent semantics and security holes, which lead to severe vulnerabilities."
That bit about severe vulns is not just bluster. Cooper identified [5]CVE-2021-21028 and [6]https://nvd.nist.gov/vuln/detail/CVE-2021-21035 – a pair of 8.8/10 rated flaws in Acrobat.
[7]
Xu said Cooper can find such flaws because the cooperative mutation technique it uses "simultaneously modifies the script code and the related document objects to explore various code paths of the binding code." That approach contrasts with other defensive techniques that check for flaws in scripts.
As explained on the tool's [8]GitHub page , Cooper has three components:
Object Clustering In the beginning, Cooper parses the given sample documents to extract native objects. To reduce the object search space, Cooper categorizes objects into different classes based on their attributes.
Relationship Inference Then, Cooper produces a large number of documents by combining different object classes and API groups, and records the execution results of the embedded scripts. Based on the success rate of the script execution and the distribution of object classes, Cooper infers the relationships between API groups and object classes.
Relationship-Guided Mutation Finally, Cooper leverages the inferred relationship to guide the object selection, script generation and object mutation.
Cooper is therefore in some ways an elaborate fuzzing tool – inferring the relationships guides the process of searching for conditions under which scripts, apps, and the binding layer produce unwanted and/or dangerous behaviour.
[9]Boffins promise protection and perfect performance with new ZeRØ, No-FAT memory safety techniques
[10]Warning: Windows update breaks authentication for some server admins
[11]Adobe Creative Cloud Experience makes it easier to run malware
The tool is itself a set of scripts – in Python – and is yours for the asking [12]here .
The project was created by Xu Peng and Professor Purui Su, both of the Chinese Academy of Sciences, security researcher Yanhao Wang from the QI-ANXIN Technology Research Institute, and Hong Hu, an assistant professor at Pennsylvania State University. ®
Get our [13]Tech Resources
[1] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_security/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2Yn4sR4Zn@NBVY05ytGEeEwAAAEQ&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[2] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_security/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44Yn4sR4Zn@NBVY05ytGEeEwAAAEQ&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_security/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33Yn4sR4Zn@NBVY05ytGEeEwAAAEQ&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[4] https://huhong789.github.io/papers/xu:cooper.pdf
[5] https://nvd.nist.gov/vuln/detail/CVE-2021-21028
[6] https://nvd.nist.gov/vuln/detail/CVE-2021-21035
[7] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_security/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44Yn4sR4Zn@NBVY05ytGEeEwAAAEQ&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[8] https://github.com/TCA-ISCAS/Cooper
[9] https://www.theregister.com/2021/06/23/zero_no_fat_memory_safety/
[10] https://www.theregister.com/2022/05/12/windows_server_update_authentication_errors/
[11] https://www.theregister.com/2022/04/07/adobe_cloud_malware/
[12] https://github.com/TCA-ISCAS/Cooper
[13] https://whitepapers.theregister.com/
The tool is named "Cooper" – a reference to the "Cooperative mutation" technique employed by the tool.
Speaking at the Black Hat Asia conference in Singapore, PhD student Xu Peng of the Chinese Academy of Sciences – one of the tool's co-authors – explained that the likes of Word and Acrobat accept input from scripting languages. Acrobat, for example, allows JavaScript to manipulate PDF files.
[1]
Making that happen requires the PDF both to define native PDF objects and to parse JavaScript code. The native objects are processed by Acrobat modules, and an embedded JavaScript engine handles the scripts. A "binding layer" does the translation.
[2]
[3]
In his talk and a [4]paper [PDF] describing Cooper, Xu and his collaborators assert the binding code "is prone to inconsistent semantics and security holes, which lead to severe vulnerabilities."
That bit about severe vulns is not just bluster. Cooper identified [5]CVE-2021-21028 and [6]https://nvd.nist.gov/vuln/detail/CVE-2021-21035 – a pair of 8.8/10 rated flaws in Acrobat.
[7]
Xu said Cooper can find such flaws because the cooperative mutation technique it uses "simultaneously modifies the script code and the related document objects to explore various code paths of the binding code." That approach contrasts with other defensive techniques that check for flaws in scripts.
As explained on the tool's [8]GitHub page , Cooper has three components:
Object Clustering In the beginning, Cooper parses the given sample documents to extract native objects. To reduce the object search space, Cooper categorizes objects into different classes based on their attributes.
Relationship Inference Then, Cooper produces a large number of documents by combining different object classes and API groups, and records the execution results of the embedded scripts. Based on the success rate of the script execution and the distribution of object classes, Cooper infers the relationships between API groups and object classes.
Relationship-Guided Mutation Finally, Cooper leverages the inferred relationship to guide the object selection, script generation and object mutation.
Cooper is therefore in some ways an elaborate fuzzing tool – inferring the relationships guides the process of searching for conditions under which scripts, apps, and the binding layer produce unwanted and/or dangerous behaviour.
[9]Boffins promise protection and perfect performance with new ZeRØ, No-FAT memory safety techniques
[10]Warning: Windows update breaks authentication for some server admins
[11]Adobe Creative Cloud Experience makes it easier to run malware
The tool is itself a set of scripts – in Python – and is yours for the asking [12]here .
The project was created by Xu Peng and Professor Purui Su, both of the Chinese Academy of Sciences, security researcher Yanhao Wang from the QI-ANXIN Technology Research Institute, and Hong Hu, an assistant professor at Pennsylvania State University. ®
Get our [13]Tech Resources
[1] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_security/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2Yn4sR4Zn@NBVY05ytGEeEwAAAEQ&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[2] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_security/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44Yn4sR4Zn@NBVY05ytGEeEwAAAEQ&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_security/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33Yn4sR4Zn@NBVY05ytGEeEwAAAEQ&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[4] https://huhong789.github.io/papers/xu:cooper.pdf
[5] https://nvd.nist.gov/vuln/detail/CVE-2021-21028
[6] https://nvd.nist.gov/vuln/detail/CVE-2021-21035
[7] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_security/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44Yn4sR4Zn@NBVY05ytGEeEwAAAEQ&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[8] https://github.com/TCA-ISCAS/Cooper
[9] https://www.theregister.com/2021/06/23/zero_no_fat_memory_safety/
[10] https://www.theregister.com/2022/05/12/windows_server_update_authentication_errors/
[11] https://www.theregister.com/2022/04/07/adobe_cloud_malware/
[12] https://github.com/TCA-ISCAS/Cooper
[13] https://whitepapers.theregister.com/
petef
Compounded by JavaScript being enabled by default. One of the first things that I do with a new install of Acrobat Reader is to turn off that preference.
Pascal Monett
One of the first things I do is install Sumatra PDF.
It's free, it works, and there is no bullshit delivered with it.
Scott Broukell
Sod the security, we wan't convenience and ease of use and shinny shinny things! Twas ever thus.
Doctor Syntax
Headline: "Word, PDFs"
Text: "Microsoft Word and Adobe Acrobat"
PDF != Acrobat. There are other PD|F handling applications..
Acrobat, for example, allows JavaScript to manipulate PDF files.
And that is a shitty idea.