Transcript
A (0:02)
You're listening to the Cyberwire Network, powered by N2K. And now a word from our sponsor, arcova. Formerly Morgan Franklin Cyber, arcova is a global cybersecurity and AI consulting firm built by practitioners who've been in the seat. They work directly with enterprise teams to solve complex security challenges, building secure by design programs that hold up as technology and threats evolve. From focused engagements to long term partnership, arcova delivers outcomes that endure because no one should navigate complexity alone. Learn why leading Global Enterprises Trust arcova@www.arcova.com that's a R C O V A.com.
B (1:06)
Hello everyone and welcome to the Cyberwires Research Saturday. I'm Dave Bittner and this is our weekly conversation with researchers and analysts tracking down the threats and vulnerabilities, solving some of the hard problems and protecting ourselves in our rapidly evolving cyberspace. Thanks for joining us.
C (1:30)
PDF engines are something that a lot of companies embed into their applications and then if you have a vulnerability in one PDF engine, so as a third party attack, you can compromise lots of companies and customers just by them integrating those PDF engines inside of their applications.
B (1:54)
That's Omer Nindberg, CTO of Novi Security. The research we're discussing today is titled From PDF to pwn. So before you all brought AI into this process, what did you all do to manually identify the issues inside of some of these PDF viewers? What made you think there's something deeper here? This is worth pursuing.
C (2:25)
When we start to investigate any application, you don't know if there's a vulnerability or not, but you always presume that there is. The mindset of a vulnerability researcher is there's always another vulnerabilities. There's still something that nobody else has found before and if you keep on digging, you'll find it or find traces that will lead you to the correct way. We didn't start this whole process because we thought we're going to find like thousands of vulnerabilities, but we wanted to understand what's the limits that we can do with AI. And then we just started with the first engine which was a PDF drone by Uprise because we found a few of our customers that had that engine.
B (3:13)
Well, let's walk through it together can take us through the story of how you all dug into these and what sorts of things started to be unveiled for you.
C (3:24)
So I think the first thing that we, once we started that we found out that a lot of the engines, or if I'll talk specifically about PDF Tron, the engine itself is embedded in the Application as an iframe. What that means is any application that uses that engines in order to render PDFs, for example, it needs to communicate with that iframe via post message or something like that. We started to investigate the trust layers between the application itself, the hosting application, which is unknown because it can be any application, and the engine of PDF drone or the embedded JavaScript inside the iFrame. Once we try to understand all the connectivities between the two, we found interesting post messages that the parent of the iframe sends to the iframe itself in order to initiate it. For example, one of the things that we found that there is a parameter that's unrequired, but you can provide it and it has UI configurations that changes the way that the engine displays the rendering application. Think about it, the PDF engine, what it is is a place where you can edit files, add annotations, put comments, add signing and things like that. Once we start to investigate all the inputs that are available and we found something that's undocumented, but it had something that appeared to be a very massive changer to the application itself, we just started to dig deeper and deeper and this whole thing is obfuscated, minified JavaScript, which is always nice. And when we started to dig deep, deeper and deeper, what we found is that some of the inputs that you're able to provide from the configuration, the external configuration via the post message, it gets into a sync that just evaluates JavaScript. It didn't end there. We still needed to bypass some mechanisms because we were able to inject JavaScript code into a image tag, but we couldn't supply, let's say for SVG, we can supply JavaScript inside the SVG. And then there we did something that was also very nice inside the svg, we embedded HTML, the DOM processor, Once it saw that we're in the context of svg and then we're again in the context of HTML. So didn't parse the internal context of HTML as svg. And then all the bypasses that were in the code, we just bypassed them altogether. And then we found a way to execute JavaScript, which was really nice.
![When “safe” documents aren’t. [Research Saturday] - CyberWire Daily cover](/_next/image?url=https%3A%2F%2Fmegaphone.imgix.net%2Fpodcasts%2F0ae1f78c-2a09-11f1-9680-93bb8035fd25%2Fimage%2F8f3cd4038c81bba2a8ea4ca89f3e23c4.png%3Fixlib%3Drails-4.3.1%26max-w%3D3000%26max-h%3D3000%26fit%3Dcrop%26auto%3Dformat%2Ccompress&w=1920&q=75)