diff --git a/cve_bin_tool/checkers/__init__.py b/cve_bin_tool/checkers/__init__.py index 8fa60129bf..7b46cfd756 100644 --- a/cve_bin_tool/checkers/__init__.py +++ b/cve_bin_tool/checkers/__init__.py @@ -135,6 +135,7 @@ "libksba", "liblas", "libmatroska", + "libmemcached", "libnss", "libpcap", "libraw", diff --git a/cve_bin_tool/checkers/libmemcached.py b/cve_bin_tool/checkers/libmemcached.py new file mode 100644 index 0000000000..208b018a42 --- /dev/null +++ b/cve_bin_tool/checkers/libmemcached.py @@ -0,0 +1,23 @@ +# Copyright (C) 2023 Orange +# SPDX-License-Identifier: GPL-3.0-or-later + + +""" +CVE checker for libmemcached + +https://www.cvedetails.com/product/136769/Awesome-Libmemcached.html?vendor_id=28345 + +""" +from __future__ import annotations + +from cve_bin_tool.checkers import Checker + + +class LibmemcachedChecker(Checker): + CONTAINS_PATTERNS: list[str] = [] + FILENAME_PATTERNS: list[str] = [] + VERSION_PATTERNS = [ + r"([0-9]+\.[0-9]+\.[0-9]+)\r?\nversion\r?\n(?:./src/|)libmemcached", + r"mem(?:aslap|capable|cat|cp|dump|error|exist|flush|parse|ping|rm|slap|stat|touch)-([0-9]+\.[0-9]+\.[0-9]+)", + ] + VENDOR_PRODUCT = [("awesome", "libmemcached")] diff --git a/test/condensed-downloads/libmemcached-1.0.18-22.fc34.aarch64.rpm.tar.gz b/test/condensed-downloads/libmemcached-1.0.18-22.fc34.aarch64.rpm.tar.gz new file mode 100644 index 0000000000..961229d451 Binary files /dev/null and b/test/condensed-downloads/libmemcached-1.0.18-22.fc34.aarch64.rpm.tar.gz differ diff --git a/test/condensed-downloads/libmemcached11_1.0.18-4.1_amd64.deb.tar.gz b/test/condensed-downloads/libmemcached11_1.0.18-4.1_amd64.deb.tar.gz new file mode 100644 index 0000000000..f9be351631 Binary files /dev/null and b/test/condensed-downloads/libmemcached11_1.0.18-4.1_amd64.deb.tar.gz differ diff --git a/test/condensed-downloads/libmemcached11_1.1.4-1_arm64.deb.tar.gz b/test/condensed-downloads/libmemcached11_1.1.4-1_arm64.deb.tar.gz new file mode 100644 index 0000000000..295ff42c08 Binary files /dev/null and b/test/condensed-downloads/libmemcached11_1.1.4-1_arm64.deb.tar.gz differ diff --git a/test/test_data/libmemcached.py b/test/test_data/libmemcached.py new file mode 100644 index 0000000000..f26ba23c0f --- /dev/null +++ b/test/test_data/libmemcached.py @@ -0,0 +1,35 @@ +# Copyright (C) 2023 Orange +# SPDX-License-Identifier: GPL-3.0-or-later + +mapping_test_data = [ + { + "product": "libmemcached", + "version": "1.0.18", + "version_strings": ["memcp-1.0.18"], + }, + { + "product": "libmemcached", + "version": "1.0.18", + "version_strings": ["1.0.18\nversion\nlibmemcached"], + }, +] +package_test_data = [ + { + "url": "http://rpmfind.net/linux/fedora/linux/releases/34/Everything/aarch64/os/Packages/l/", + "package_name": "libmemcached-1.0.18-22.fc34.aarch64.rpm", + "product": "libmemcached", + "version": "1.0.18", + }, + { + "url": "http://ftp.fr.debian.org/debian/pool/main/libm/libmemcached/", + "package_name": "libmemcached11_1.0.18-4.1_amd64.deb", + "product": "libmemcached", + "version": "1.0.18", + }, + { + "url": "http://ftp.fr.debian.org/debian/pool/main/libm/libmemcached/", + "package_name": "libmemcached11_1.1.4-1_arm64.deb", + "product": "libmemcached", + "version": "1.1.4", + }, +]