Google has announced that its AI-enhanced fuzzing tool, OSS-Fuzz, has uncovered 26 vulnerabilities in various open-source projects. Among these is a medium-severity flaw in the widely used OpenSSL cryptographic library. According to Google's open-source security team, these discoveries mark a significant achievement in automated vulnerability detection, all identified using AI-generated and improved fuzz targets.
OpenSSL Vulnerability Details
One key vulnerability, identified as CVE-2024-9143, is an out-of-bounds memory write issue in OpenSSL. With a CVSS score of 4.3, this flaw poses a risk of application crashes or remote code execution. The OpenSSL team has addressed this vulnerability in several updates: versions 3.3.3, 3.2.4, 3.1.8, 3.0.16, 1.1.1zb, and 1.0.2zl.
Enhancements in Fuzzing with AI
Google integrated large language models (LLMs) into OSS-Fuzz in August 2023 to enhance fuzzing coverage, allowing the discovery of issues that human-written fuzz targets might miss. This approach has significantly increased code coverage in 272 C/C++ projects, contributing an extensive 370,000 additional lines of code. Despite these advances, Google emphasized that line coverage alone does not guarantee bug-free software. The metric doesn’t account for all possible code paths and states, which can vary based on flags and configurations that trigger different behaviors.
Broader Implications and Future Steps
LLMs have proven effective in mimicking developer fuzzing workflows, facilitating expanded automation in vulnerability detection. This development follows Google's recent success with its LLM-based framework, Big Sleep, which identified a zero-day flaw in the SQLite database engine. Concurrently, Google is advancing its internal efforts to improve code safety by transitioning to memory-safe languages such as Rust. This includes retrofitting existing C++ projects with mechanisms to ensure spatial memory safety, preventing unauthorized memory access. For example, Google is adopting Safe Buffers and implementing hardened libc++, which incorporates bounds checking into standard C++ data structures. This upgrade, added by open-source contributors, targets vulnerabilities such as out-of-bounds access, with a minimal performance impact of approximately 0.30%. These initiatives point towards creating more secure and reliable software, though C++ may not achieve full memory safety. The enhancements nonetheless represent critical steps in reducing risks associated with memory management vulnerabilities.