Editor's note: This story was updated on July 9, 2026, to correct information about the support of this work.

When Ying Zhang '23 was a doctoral student at Virginia Tech, she spent years learning to think like an attacker — probing software for the hidden weaknesses that developers miss and malicious actors exploit.

Now an assistant professor at Wake Forest University, Zhang has come back to that work and to the people who shaped it. She and her former doctoral advisors in the Department of Computer Science, Associate Professor Na Meng and Professor Danfeng "Daphne" Yao, have continued publishing influential research together, this time with a new cohort of Ph.D. students working alongside them.

The result is new research that posits that the best way for the cybersecurity community to guard against software vulnerabilities is by teaching artificial intelligence (AI) to identify and attack them. Their study about their approach will be presented on July 7 in Montreal, Canada, at the ACM International Conference on the Foundations of Software Engineering, one of the field's top-tier venues.

Finding the exploit in the haystack

At the heart of their work is a problem most people never see but that affects everyone: software vulnerabilities. Every time a person uses an app, buys something online, or interacts with a digital service, their data travels through invisible connectors called application programming interfaces, or APIs.

"You can view an API as a communication channel between two pieces of software," Zhang said. "If the API accepts malicious or unexpected inputs without performing proper validation and security checks, attackers can exploit those weaknesses to trigger vulnerabilities, compromise systems, or carry out successful cyberattacks."

These weak points are everywhere. Modern applications are built in layers, stacking third-party libraries and external code on top of one another in ways that make it nearly impossible for a developer to track every potential risk. A flaw buried deep in one layer can ripple upward, quietly exposing systems that developers didn't even know were at risk.

The problem isn't just technical. It's human. Developers, under constant pressure to ship working software, tend to treat security as an afterthought.

"Most of the time, security is considered a second-class citizen," Meng said. "Developers often prioritize functionality over security, especially when the risks are not immediately visible."

Raising awareness to protect systems

Meng and Yao's approach to closing that gap is as clever as it is counterintuitive: to help defend software, they teach artificial intelligence to attack it.

Working with Zhang and the current Ph.D. students in computer science, the team developed a system that uses large language models — the same underlying technology that powers tools like ChatGPT — to automatically generate what researchers call “proof-of-concept exploits.” These are step-by-step demonstrations showing exactly how a real attacker could take advantage of a known flaw.

The logic is simple but powerful. When a developer sees an abstract warning that their software has a vulnerability, they may ignore it or put off fixing it.

"If developers need a strong motivation, they say, 'Show me the exploit,'" Zhang said. "Then they will make the changes."

In testing, the system successfully generated proof-of-concept exploits with a high level of reliability. That’s a meaningful leap forward in solving a problem that has long resisted automated solutions. The goal, Zhang said, is entirely defensive: to help developers understand and address risks before malicious actors find them first.

The novelty of the approach has gotten some high-level attention. OpenAI has showed interest in the project, an early sign that it is resonating beyond academic circles.

Automating security

A second major thread of the team’s research targets the software supply chain. This complex web of dependencies connects modern applications. The team develops automated tools to identify which specific APIs within a piece of software are vulnerable, information that is often missing or incomplete and leaves developers without a clear picture of where to focus their security efforts.

"It's hard for developers to conduct code inspections or vulnerability localization, missing this information," Zhang said. "So we try to automatically derive it."

As software grows more interconnected, that precision becomes more important. Knowing a vulnerability exists somewhere in a system is far less useful than knowing exactly where it is and what it would take to exploit it.

Full circle

For the doctoral students on the team, working alongside Zhang carries a particular resonance. She was once exactly where they are now, learning the craft of cybersecurity research in the same labs, under the same advisors, asking the same kinds of questions.

“Working with Professor Zhang has taught me that good software engineering and security research takes patience and care,” computer science doctoral student and co-author Zhengjie Ji said. “She helped me see that results need to be solid enough for us to stand behind, and that writing is where we make the logic of the work clear to others.”

Wenjia Song '24 also worked on the project while a doctoral student. She went on to work at Google, Meng said.

For Meng and Yao, the continued collaboration with Zhang is a reminder of how sustained mentorship produces colleagues who return to push the work further.

"Dr. Zhang is a whisperer for software developers," Yao said. “She cares deeply about their day-to-day challenges. Her focus on creating innovative solutions for real-world needs is inspiring."

This work has been supported by the Commonwealth Cyber Initiative. Yao is affiliated faculty in the Sanghani Center for Artificial Intelligence and Data Analytics.

Share this story