Vulnerabilities Found With
A selection of open-source code vulnerabilities we discovered in customer projects.
Next to our enterprise testing platform, we maintain Jazzer, an open-source security testing solution for Java and other JVM-based languages. With the help of Jazzer, and our testing platform, hundreds of security issues and code vulnerabilities have been found in log4j, OpenJDK, and other open-source projects.
Sucicata is an open-source threat detection engine capable of real-time intrusion detection (IDS). Even though Sucicata used fuzzing with AFL extensively, our vulnerability researchers were able to find 12 more critical code vulnerabilities (e.g. data corruptions, remote code executions, and many other unwanted program behaviors).
German COVID-19 Tracing
The Swiss/German COVID-19 tracing app was downloaded more than 25 Million times. Testing it for security vulnerabilities played an important role in ensuring public trust and increasing compliance. With CI Fuzz, our developers found 2 code vulnerabilities in the German version (#163 and #164), and 9 vulnerabilities in the Swiss version of the app.
OWASP's JSON Sanitizer transforms JSON-like input into valid and fully embeddable JSON. It is an Open Source sanitizer with over 200 dependencies. With CI Fuzz, our developers found two critical code vulnerabilities in this project, that would have exposed it to XML/HTML injections. (CVE-2021-23899 and CVE-2021-23900).
LibHTP is used to securely parse HTTP protocols and the related bits and pieces. Using CI Fuzz, our developers found a critical code vulnerability in LibHTP, that remote attackers could have exploited for a buffer over-read (CVE-2018-10243).
Audi is one of the leading innovators worldwide when it comes to making automotive software more secure. With CI Fuzz, our developers managed to fix an exploitable heap buffer overflow in Audi's software.
Zint Barcode Generator
Zint is a barcode generator with an encoding library that includes over 50 different symbologies. With CI Fuzz, our security researchers found 2 critical code vulnerabilities (CVE-2020-9385, CVE-2021-27799 & CVE-2021-39247) and 5 more vulnerabilities.
DLR COBS Encoder
The DLR is the federal german space research center, which focuses its research on energy, space, transport, and security technology. With CI Fuzz, our developers were able to find a heap-buffer overread in one of the DLR's COBS encoder.
CppCMS is a free, Open Source framework for web application development in C++, especially adept at handling extremely high loads. With CI Fuzz, our security researchers managed to find a critical code vulnerability (CVE-2018-11367) within the project.
GnuPG Made Easy or simply GPGME is a library that makes GnuPG access easier for applications. CI Fuzz enabled our developers to find 7 code vulnerabilities in GPGME that would have led to severe usability issues.
Jsoup is an open-source Java library used for extracting data from HTML and manipulating HTML outputs. It can also be used to parse and build XML. With Jazzer, we found over 19 bugs (CVE-2021-37714) in jsoup. Eight of them are potentially critical for the availability of web applications using jsoup.
GENIVI DLT provides a log and trace interface, based on the standardised protocol specified in the AUTOSAR standard 4.0 DLT. Here we found heap-based buffer overflow (CVE-2020-36244) that could allow an attacker to remotely execute arbitrary code on the DLT-Daemon.
The Apache PDFBox library is an open-source Java tool for working with PDF documents. It allows the creation of new PDF documents, manipulation of existing documents, and the ability to extract content from documents. Our fuzzers were able to find an Infinite Loop (CVE-2021-27807), and an OutOfMemory-Exception (CVE-2021-27906).
Our tests on the Java library Fastjson, which converts Java Objects to JSON, revealed a number of security issues, including stackoverflow errors and undeclared exceptions, which resulted in five approved CVE's (CVE-2022-40173, CVE-2022-40174, CVE-2022-40175, CVE-2022-41855, CVE-2022-41856).
Apache Commons Compress
Apache Commons Compress software defines an API for working with compression and archive formats. We extensively tested this application and responsible disclosed four CVEs (CVE-2021-35516, CVE-2021-35515, CVE-2021-35517, CVE-2021-36090) and two more vulnerabilities.
Json-smart is a performance focused, JSON processor lib. The application (json-smart-v1, json-smart-v2) threw uncaught exceptions. When uncaught, they may have caused programs using the library to crash or expose sensitive information. (CVE-2021-27568)
In OpenJDK, we found two vulnerabilities (CVE-2022-21360, CVE-2022-21366) that load and run untrusted code. These vulnerabilities could have been exploited by using APIs in the specified Component, e.g., through a web service that supplied data to the APIs.
Protocol Buffers are Google's language-neutral and platform-neutral, extensible mechanism for serializing structured data. Two issues in protobuf allowed malicious payload to occupy the parser for several minutes, causing frequent, repeated pauses (CVE-2021-22569, CVE-2022-3171).
Faster XML Jackson is a high-performance JSON processor for Java. Its developers extol the combination of fast, correct, lightweight, and ergonomic attributes of the library in which we found 2 undeclared exceptions.
The library can currently decode greyscale and RGB images (8, 16 or 32 bits). It supports LZW compression and images with an additional alpha channel. Due to our fuzzers the maintainers were able to fix an IndexOutOfBoundError, in version 2.0.3.
RE2 is a regular expression engine that runs in time linear in the size of the input. RE2/J is a port of RE2 to pure Java, where users were able to find and fix a NullPointerExeption due to our Java Fuzzer.
Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object, where Jazzer found an ArrayIndeyOutOfBounds.
In Javaparser, a widely-used tool for analyzing Java code, we were able to find 46 security vulnerabilities through our use of the open-source fuzzer Jazzer. These issues primarily pertained to uncaught exceptions and security exceptions.
Our team discovered 26 bugs while reviewing the open-source, multi-format 1D/2D barcode image processing library, ZXing ("zebra crossing"). Among these were 5 security-relevant uncaught exceptions, which we discovered with our automated security testing platform.
Our team found 3 security issues in ANTLR (ANother Tool for Language Recognition), a powerful parser generator for structured text or binary files, through the use of our open-source fuzzer Jazzer. ANTLR is commonly used to build languages, tools, and frameworks.
Our open-source security team identified two security issues (security exception, uncaught exception) in the Java modules of Apache Arrow, a development platform for in-memory analytics, which enables big data systems to process and move data quickly.
This is a multi-module umbrella project for Jackson modules needed to support Java 8 features, especially with Jackson 2.x that only requires Java 7 for running (and until 2.7 only Java 6). Here we found a security exception, which frequently occurs on the Linux platform.
Our team found 3 security exceptions in the widely-used Guava libraries, a set of core Java libraries from Google that includes new collection types, immutable collections, a graph library, and utilities for concurrency, I/O, hashing, caching, primitives, strings, and more.
Our team identified a security exception in spring-data-redis, a library that simplifies Redis access and config for Spring apps. Spring Data Redis offers both low-level and high-level abstractions for interacting with the store and eliminates infrastructural concerns for the user.
Code Intelligence found 8 security exceptions in Apache Tomcat, a free and open-source implementation of Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies, which provides a pure Java HTTP web server environment for Java code to run.
Our open-source fuzzer Jazzer helped to identify 3 security exceptions in Spring Data for MongoDB, a library that is part of the Spring Data project which provides a consistent programming model for new data stores while retaining store-specific features and capabilities.
Klaxon is a library to parse JSON in Kotlin. Our open-source security team was able to fix a security issue in klaxon, with the help of our open-source fuzzer, Jazzer. The security issue caused unexpected exceptions when using the default parser.
TIFF is a Java library for reading/writing TIFF files developed by the National Geospatial-Intelligence Agency (NGA). With Jazzer, we were able to find and fix a security issue that made the application vulnerable to IndexOutOf BoundsExceptions.
Code Intelligence found 5 StackOverflowErrors in SnakeYAML, a YAML 1.1 processor used by over 3,646 Maven artifacts while fuzzing the application with Jazzer. (CVE-2022-38749, CVE-2022-38750, CVE-2022-38751, CVE-2022-38752, CVE-2022-38754).
Jettison is a Java library for converting XML to JSON and vice-versa with the help of StAX. With our open-source fuzzer, Jazzer, we could prove that those using Jettison to parse untrusted XML or JSON data may be vulnerable to Denial of Service attacks (DoS) (CVE-2022-40149, CVE-2022-50150).
Our open-source security team identified a vulnerability (CVE-2022-40151) in XStream, a library for serializing XML. This vulnerability may leave users open to Denial of Service attacks if the parser is on user-supplied input and can be crashed by stack overflow.
Woodstock is a general-purpose Java XML parser that can be used with the most popular Java frameworks. Our open-source security team discovered a vulnerability in woodstock (CVE-2022-40152) that made users vulnerable to Denial of Service attacks (DoS) if DTD support was enabled.
As part of our goal to continuously improve our vulnerability detectors, we continuously test various open-source projects with Jazzer in collaboration with OSS-Fuzz. In this case, a test run yielded a severe finding with a potential remote code execution in HSQLDB (CVE-2022-41853)
A remote code execution bug was found in apache/JXPath with the support of our open-source fuzzer, Jazzer (CVE-2022-41825). JXPath is used by 364 Maven artifacts, including Maven and Apache Commons configuration (having over 1000 usages with the potential to have transitive risk).
Our open-source security team found a vulnerability in Apache Commons Imaging, a library for various image formats, previously known as Apache Commons Sanselan. The vulnerability allowed for undeclared exceptions in parsers for multiple image formats.
Fuzz Your Software With Code Intelligence
Fuzzing is the most effective approach to automatically find and fix bugs and vulnerabilities in your software.
Companies like Google already find 80% of their bugs completely automated.
How Other Companies Improved Their Security Testing
With Code Intelligence
CI Fuzz enabled Telekom's security testing experts to complete projects much faster and to increase productivity in an easy way.
Continental managed to test a large safety module with 18,000 lines of code (LoC) within only one week.
sodge IT team has implemented automated security testing in their supply chain and thus detected and fixed 3 critical vulnerabilities (CVEs).