Version in base suite: 5.0.6-1 Base version: capstone_5.0.6-1 Target version: capstone_5.0.7-1~deb13u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/c/capstone/capstone_5.0.6-1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/c/capstone/capstone_5.0.7-1~deb13u1.dsc CMakeLists.txt | 6 +++--- ChangeLog | 9 +++++++++ SStream.c | 6 ++++++ SStream.h | 12 +++++++++++- bindings/python/capstone/__init__.py | 2 +- cs.c | 14 +++++++++----- debian/changelog | 17 +++++++++++++++++ debian/control | 2 +- include/capstone/capstone.h | 2 +- pkgconfig.mk | 2 +- 10 files changed, 59 insertions(+), 13 deletions(-) dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmpf1gncnet/capstone_5.0.6-1.dsc: no acceptable signature found dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmpf1gncnet/capstone_5.0.7-1~deb13u1.dsc: no acceptable signature found diff -Nru capstone-5.0.6/CMakeLists.txt capstone-5.0.7/CMakeLists.txt --- capstone-5.0.6/CMakeLists.txt 2025-03-23 15:48:02.000000000 +0000 +++ capstone-5.0.7/CMakeLists.txt 2026-02-09 22:30:40.000000000 +0000 @@ -21,9 +21,9 @@ # Enable support for MSVC_RUNTIME_LIBRARY cmake_policy(SET CMP0091 NEW) -# Check if VERSION is provided externally, otherwise default to 5.0.3 -if(NOT DEFINED PROJECT_VERSION) - set(PROJECT_VERSION "5.0.6") +# Check if VERSION is provided externally, otherwise default to 5.0.7 +if(NOT DEFINED PROJECT_VERSION OR PROJECT_VERSION STREQUAL "") + set(PROJECT_VERSION "5.0.7") endif() # Use PROJECT_VERSION directly for CPack diff -Nru capstone-5.0.6/ChangeLog capstone-5.0.7/ChangeLog --- capstone-5.0.6/ChangeLog 2025-03-23 15:48:02.000000000 +0000 +++ capstone-5.0.7/ChangeLog 2026-02-09 22:30:40.000000000 +0000 @@ -1,6 +1,15 @@ This file details the changelog of Capstone. -------------------------------- +Version 5.0.7: February 4th, 2026 + +## What's Changed +* Backport for 5.0.7 by @scribam in https://github.com/capstone-engine/capstone/pull/2785 +* CVE v5 backports by @Rot127 in https://github.com/capstone-engine/capstone/pull/2835 + +**Full Changelog**: https://github.com/capstone-engine/capstone/compare/5.0.6...5.0.7 + +-------------------------------- Version 5.0.6: March 23th, 2025 ## What's Changed diff -Nru capstone-5.0.6/SStream.c capstone-5.0.7/SStream.c --- capstone-5.0.6/SStream.c 2025-03-23 15:48:02.000000000 +0000 +++ capstone-5.0.7/SStream.c 2026-02-09 22:30:40.000000000 +0000 @@ -33,6 +33,7 @@ #ifndef CAPSTONE_DIET unsigned int len = (unsigned int) strlen(s); + SSTREAM_OVERFLOW_CHECK(ss, len); memcpy(ss->buffer + ss->index, s, len); ss->index += len; ss->buffer[ss->index] = '\0'; @@ -42,6 +43,7 @@ void SStream_concat1(SStream *ss, const char c) { #ifndef CAPSTONE_DIET + SSTREAM_OVERFLOW_CHECK(ss, 1); ss->buffer[ss->index] = c; ss->index++; ss->buffer[ss->index] = '\0'; @@ -57,6 +59,10 @@ va_start(ap, fmt); ret = cs_vsnprintf(ss->buffer + ss->index, sizeof(ss->buffer) - (ss->index + 1), fmt, ap); va_end(ap); + if (ret < 0) { + return; + } + SSTREAM_OVERFLOW_CHECK(ss, ret); ss->index += ret; #endif } diff -Nru capstone-5.0.6/SStream.h capstone-5.0.7/SStream.h --- capstone-5.0.6/SStream.h 2025-03-23 15:48:02.000000000 +0000 +++ capstone-5.0.7/SStream.h 2026-02-09 22:30:40.000000000 +0000 @@ -6,8 +6,18 @@ #include "include/capstone/platform.h" +#define SSTREAM_BUF_LEN 512 + +#define SSTREAM_OVERFLOW_CHECK(OS, len) \ + do { \ + if (OS->index + len + 1 > SSTREAM_BUF_LEN) { \ + fprintf(stderr, "Buffer overflow caught!\n"); \ + return; \ + } \ + } while (0) + typedef struct SStream { - char buffer[512]; + char buffer[SSTREAM_BUF_LEN]; int index; } SStream; diff -Nru capstone-5.0.6/bindings/python/capstone/__init__.py capstone-5.0.7/bindings/python/capstone/__init__.py --- capstone-5.0.6/bindings/python/capstone/__init__.py 2025-03-23 15:48:02.000000000 +0000 +++ capstone-5.0.7/bindings/python/capstone/__init__.py 2026-02-09 22:30:40.000000000 +0000 @@ -180,7 +180,7 @@ # Package version CS_VERSION_MAJOR = CS_API_MAJOR CS_VERSION_MINOR = CS_API_MINOR -CS_VERSION_EXTRA = 6 +CS_VERSION_EXTRA = 7 __version__ = "%u.%u.%u" %(CS_VERSION_MAJOR, CS_VERSION_MINOR, CS_VERSION_EXTRA) diff -Nru capstone-5.0.6/cs.c capstone-5.0.7/cs.c --- capstone-5.0.6/cs.c 2025-03-23 15:48:02.000000000 +0000 +++ capstone-5.0.7/cs.c 2026-02-09 22:30:40.000000000 +0000 @@ -976,10 +976,13 @@ skipdata_bytes = handle->skipdata_size; // we have to skip some amount of data, depending on arch & mode - insn_cache->id = 0; // invalid ID for this "data" instruction + // invalid ID for this "data" instruction + insn_cache->id = 0; insn_cache->address = offset; - insn_cache->size = (uint16_t)skipdata_bytes; - memcpy(insn_cache->bytes, buffer, skipdata_bytes); + insn_cache->size = (uint16_t)MIN( + skipdata_bytes, sizeof(insn_cache->bytes)); + memcpy(insn_cache->bytes, buffer, + MIN(skipdata_bytes, sizeof(insn_cache->bytes))); #ifdef CAPSTONE_DIET insn_cache->mnemonic[0] = '\0'; insn_cache->op_str[0] = '\0'; @@ -1181,12 +1184,13 @@ // we have to skip some amount of data, depending on arch & mode insn->id = 0; // invalid ID for this "data" instruction insn->address = *address; - insn->size = (uint16_t)skipdata_bytes; + insn->size = (uint16_t)MIN(skipdata_bytes, sizeof(insn->bytes)); + memcpy(insn->bytes, *code, + MIN(skipdata_bytes, sizeof(insn->bytes))); #ifdef CAPSTONE_DIET insn->mnemonic[0] = '\0'; insn->op_str[0] = '\0'; #else - memcpy(insn->bytes, *code, skipdata_bytes); strncpy(insn->mnemonic, handle->skipdata_setup.mnemonic, sizeof(insn->mnemonic) - 1); skipdata_opstr(insn->op_str, *code, skipdata_bytes); diff -Nru capstone-5.0.6/debian/changelog capstone-5.0.7/debian/changelog --- capstone-5.0.6/debian/changelog 2025-03-24 14:33:46.000000000 +0000 +++ capstone-5.0.7/debian/changelog 2026-03-04 16:22:48.000000000 +0000 @@ -1,3 +1,20 @@ +capstone (5.0.7-1~deb13u1) trixie; urgency=medium + + * Non-maintainer upload. + * Rebuild for trixie. + - CVE-2025-67873: cs_insn.bytes heap buffer overflow + - CVE-2025-68114: SStream_concat() stack buffer underflow&overflow + + -- Adrian Bunk Wed, 04 Mar 2026 18:22:48 +0200 + +capstone (5.0.7-1) unstable; urgency=medium + + * Team upload. + * New upstream version 5.0.7 + * Bump Standards-Version + + -- Hilko Bengen Sun, 15 Feb 2026 12:10:56 +0100 + capstone (5.0.6-1) unstable; urgency=medium * New upstream version 5.0.6 diff -Nru capstone-5.0.6/debian/control capstone-5.0.7/debian/control --- capstone-5.0.6/debian/control 2025-02-12 08:11:51.000000000 +0000 +++ capstone-5.0.7/debian/control 2026-02-15 11:10:28.000000000 +0000 @@ -7,7 +7,7 @@ python3-all-dev, python3-setuptools, cython3, -Standards-Version: 4.6.1 +Standards-Version: 4.7.3 Rules-Requires-Root: no Section: devel Homepage: https://www.capstone-engine.org/ diff -Nru capstone-5.0.6/include/capstone/capstone.h capstone-5.0.7/include/capstone/capstone.h --- capstone-5.0.6/include/capstone/capstone.h 2025-03-23 15:48:02.000000000 +0000 +++ capstone-5.0.7/include/capstone/capstone.h 2026-02-09 22:30:40.000000000 +0000 @@ -58,7 +58,7 @@ // Capstone package version #define CS_VERSION_MAJOR CS_API_MAJOR #define CS_VERSION_MINOR CS_API_MINOR -#define CS_VERSION_EXTRA 6 +#define CS_VERSION_EXTRA 7 /// Macro for meta programming. /// Meant for projects using Capstone and need to support multiple diff -Nru capstone-5.0.6/pkgconfig.mk capstone-5.0.7/pkgconfig.mk --- capstone-5.0.6/pkgconfig.mk 2025-03-23 15:48:02.000000000 +0000 +++ capstone-5.0.7/pkgconfig.mk 2026-02-09 22:30:40.000000000 +0000 @@ -6,7 +6,7 @@ PKG_MINOR = 0 # version bugfix level. Example: PKG_EXTRA = 1 -PKG_EXTRA = 6 +PKG_EXTRA = 7 # version tag. Examples: rc1, b2, post1 - or just comment out for no tag PKG_TAG =