Skip to content

Releases: capstone-engine/capstone

6.0.0-Alpha7

16 Feb 13:18
6.0.0-Alpha7
2db2061

Choose a tag to compare

Highlights

RISC-V

This release contains the highly awaited RISC-V module update.
Because RISC-V is in such active development the changes compared to the old module are enormous.

Please check out the RISC-V summary in the release guide for an overview.
We expect it to have some bugs so we are grateful for reports!

Capstone 32 bit builds

Capstone is now build and tested on several 32 bit architectures, including i686 Windows.

Consistent error reporting of CS_ERR_MEM

Fix possible NULL-pointer dereferences for out of memory events.
Capstone's API will now always return CS_ERR_MEM if allocations fail.

x86-64: Decoding of conflicting segment overrides was changed to match CPU behavior.

Please see the x86-64 section in the release guide for details.

What's Changed

New Contributors

Full Changelog: 6.0.0-Alpha6...6.0.0-Alpha7

5.0.7

09 Feb 22:37
5.0.7
52c6692

Choose a tag to compare

What's Changed

CVEs

This release fixes CVE-2025-68114
and CVE-2025-67873 reported by @Finder16.

Only users who have custom implementations of the skipdata callback or vsnprintf are affected.

Full Changelog: 5.0.6...5.0.7

6.0.0-Alpha6

13 Jan 15:53
6.0.0-Alpha6
484857d

Choose a tag to compare

Highlights

  • Fixed CVE-2025-68114 and CVE-2025-67873 reported by @Finder16 (see below).
  • csh and value argument of cs_option are now of type uintptr_t by @kingiler.
  • Several improvements on x86 details and assembly text by @hainest and @0verflowme.
  • Better support for cross builds.
  • Handle previously ignored operands in M68K by @csoren.
  • Change Alpha immediate operands to int64_t by @wargio.
  • Static Capstone libraries are now built with PIC enabled by @hainest.

CVEs

This release fixes CVE-2025-68114
and CVE-2025-67873 reported by @Finder16.

Only users who have custom implementations of the skipdata callback or vsnprintf are affected.


Version 6.0.0-Alpha6: January 13th, 2026

What's Changed

  • Update register semantics for x86 pop instructions by @hainest in #2770
  • Python binding: Support 3.14 free-threaded CPython build by @Antelox in #2769
  • Only publish if tag is present and workflow is triggered by release. by @Rot127 in #2766
  • Add Python prominently to the workflow name to prevent confusion. by @Rot127 in #2774
  • Fix incorrectly defined BSHUFFLE opcode. by @Rot127 in #2772
  • Fix cstest missing size checks by @Rot127 in #2775
  • Update read/written registers for x86 call instructions by @hainest in #2773
  • Apply other VIS instruction fixes from llvm/#130967 by @Rot127 in #2777
  • Fix regex match syntax for project version by @Zangetsu38 in #2779
  • Add workflow to check for C code formatting and format all code with clang-format-17 by @Rot127 in #2744
  • Fix log message in cstest_py/compare.compare_bit_flags by @hainest in #2783
  • DIET MSVC C1001 Fix by @LADIlib in #2782
  • Update read/written registers for x86 interrupt instructions by @hainest in #2781
  • Update read/written registers for x87 comparison instructions by @hainest in #2784
  • Update read/written registers for x86 enter/leave instructions by @hainest in #2788
  • Update read/written registers for x86 procedure return instructions by @hainest in #2789
  • Add instruction details to cstest logging by @hainest in #2787
  • Update read/written registers for x86 interrupt return instructions by @hainest in #2793
  • Remove unused fuzzit.sh script and key. by @Rot127 in #2797
  • Fix assertions if CAPSTONE_ASSERTION_WARNINGS=1. by @Rot127 in #2792
  • Update read/written registers for x86 string instructions by @hainest in #2790
  • Update read/written registers for x86 conditional jump instructions by @hainest in #2798
  • Minor formatting changes by @moste00 in #2804
  • Fix cstest_py and add negative tests. by @Rot127 in #2807
  • Add null check for Xtensa operation detail in Xtensa_add_cs_detail_0 by @b1llow in #2809
  • Update read/written registers for x86 loop instructions by @hainest in #2799
  • Update read/written registers for x86 unconditional jump instructions by @hainest in #2800
  • Bump to latest MacOS runner. by @Rot127 in #2812
  • Fix SH decode table being exported globally by @stuxnot in #2814
  • Doc fixups by @Rot127 in #2754
  • Add better support for cross builds. by @Rot127 in #2803
  • Update read/written registers for x86 system call instructions by @hainest in #2820
  • Fix possible OOB read by @Rot127 in #2825
  • Update read/written registers for x86 cmpxchg instruction by @hainest in #2821
  • Apply clang-format-17 to test_poc.c by @Rot127 in #2833
  • Add missing apt-get update before installing dependencies. by @Rot127 in #2832
  • Return for failing range asserts to enforce the assumptions. by @Rot127 in #2829
  • [alpha] Fix immediate to be 64bit wide by @wargio in #2840
  • Build static libs with PIC by @hainest in #2836
  • M68K: fix displacement, register naming and suppressed registers by @csoren in #2839
  • X86: Fix movabsq immediates >= 2^63 printed as decimal in ATT syntax by @0verflowme in #2843
  • M68K: add displacement size fields to disassembler by @csoren in #2842
  • fix: use uintptr_t to maintain pointer provenance by @kingiler in #2845

New Contributors

Full Changelog: 6.0.0-Alpha5...6.0.0-Alpha6

6.0.0-Alpha5

05 Aug 12:11
6.0.0-Alpha5
fad9f80

Choose a tag to compare

Highlights

  • The SPARC module was updated to LLVM-18 (please see the Release Guide for details).
  • Python bindings now use ABI3 wheels.
  • Added support for Apple's proprietary AArch64 instructions.
  • Instructions that can be decoded but are invalid for other reasons are now marked as such (#2707).
  • LoongArch: Compute absolute address for address operand (#2699)

Note about published Python Wheels

The Alpha5 Python packages on PyPi were published by accident with commit 5d989a4 of PR #2765.
The build is equivalent to tag 6.0.0-Alpha5, except for the additions to Changelog.md.
Because Changelog.md is not part of the distributed Python wheels, we didn't republish the packages.
Sorry for any inconvenience.

What's Changed

  • Apple AArch64 proprietary by @Rot127 in #2692
  • Add jump group for generic jirl by @jiegec in #2698
  • LoongArch: Compute absolute address for address operand by @jiegec in #2699
  • Fix LoongArch ld/st instructions register info by @jiegec in #2701
  • ARM: fix typo, cspr -> cpsr by @jiegec in #2716
  • Fix arm pop reg access by @jiegec in #2718
  • Fix missing sp register read in ret instruction by @jiegec in #2719
  • Fix missing operand for smstart, due to space replaced by tab by @jiegec in #2720
  • Add flag for the SoftFail case of the LLVM disassembler. by @Rot127 in #2707
  • Remove unused files. by @Rot127 in #2709
  • clang-format: change license to BSD-3-Clause by @tmfink in #2724
  • Use cs_ac_type for operand access mode in all arches and use cs_xtensa_op_type for Xtensa operand type by @jiegec in #2721
  • Make SStream respect the CS_OPT_UNSIGNED flag. by @Rot127 in #2723
  • Make assertion hit warnings optional in release builds. by @Rot127 in #2729
  • Update source list before installing valgrind. by @Rot127 in #2730
  • Add x30 implicit read to the RET alias. by @Rot127 in #2739
  • Print immediate only memory operands for AArch64. by @Rot127 in #2732
  • Add warning about naive search and replace to patch reg names. by @Rot127 in #2728
  • Enable to generate legacy MC tests for the fuzzer. by @Rot127 in #2733
  • Auto-Sync update Sparc LLVM-18 by @Rot127 in #2704
  • Python binding: Use ABI3 wheels by @Antelox in #2742
  • Update Auto-Sync to Python 3.13 and tree-sitter-py 24.0 by @Rot127 in #2705
  • Fix for Risc-V C.SRLI decoding (issue #2731) by @h01G3r in #2745
  • HPPA fix mem operands access and instruction printing by @R33v0LT in #2746
  • Handle zero case of R1 operand field by @Rot127 in #2743
  • Fix comisd memory operand size: xmmword -> qword by @jiegec in #2750
  • Fix missing repne for movsd op by @jiegec in #2752
  • Explain more details about CC change. by @Rot127 in #2753
  • Add a test for FCC conditions for none FPU instructions. by @Rot127 in #2758
  • Print register access type and registers accessed in cstool_mips.c by @jiegec in #2762
  • Fix duplication of memory operand by @Rot127 in #2761
  • Python binding: Windows ARM64 build by @Antelox in #2760
  • Implement cs_regs_access for Alpha architecture by @jiegec in #2763
  • Fix decoding of the FCC fields of FBPcc (format 2_3). by @Rot127 in #2764

New Contributors

Full Changelog: 6.0.0-Alpha4...6.0.0-Alpha5

6.0.0-Alpha4

14 Apr 11:01
895f2f2

Choose a tag to compare

What's Changed

  • Fix wrong version requirement of tricore instructions by @Changqing-JING in #2620
  • Python bindings: Switch to ubuntu-24.04-arm runner image by @Antelox in #2625
  • Build Tarball before DEB/RPM package. by @Rot127 in #2627
  • Add aliases mapping for MIPS & test for id, alias_id by @wargio in #2635
  • Add checks for MIPS details on cstest_py by @wargio in #2640
  • Give the user some guidance where to add missing enumeration values. by @Rot127 in #2639
  • Python bindings: sdist creation fix + relative test by @Antelox in #2624
  • cmake: Fix building capstone as sub-project by @imphil in #2629
  • Update operand type enums of all arch modules to the one in capstone.h by @Rot127 in #2633
  • Enhance shift value and types of shift instructions. by @Rot127 in #2638
  • Fix #2643 by @Rot127 in #2645
  • Tms32c64x Little Endian by @Rot127 in #2648
  • Add call group to svc, smc and hvc. by @Rot127 in #2651
  • Decode BH field in print_insn_detail_ppc by @hainest in #2662
  • Remove undefined constants in riscv_const.py (#2660) by @Asphaltt in #2661
  • Stringify BH fields when printing ppc details by @hainest in #2663
  • MIPS: Fix MIPS16 decoding, wrong flags and ghost registers by @wargio in #2665
  • Add a script to compare the inc file content with the lastest generated ones. by @Rot127 in #2667
  • Mips32r6_64r632 is for both mips32r6 and mips64r6 by @wargio in #2673
  • Fix nanoMIPS decoding of jalrc by @wargio in #2672
  • Revert "Add a script to compare the inc file content with the lastest generated ones." by @Rot127 in #2678
  • Add workflow for building on Windows by @stevenjoezhang in #2675
  • Update read/written registers for x87 comparison instructions by @hainest in #2680
  • Version: Update to v6.0.0-alpha4 by @kabeor in #2682
  • Build PDB for debugging on Windows by @stevenjoezhang in #2685

New Contributors

Full Changelog: 6.0.0-Alpha3...6.0.0-Alpha4

Version 5.0.6

23 Mar 15:49
accf4df

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 5.0.5...5.0.6

Version 6.0.0-Alpha3

28 Jan 17:04
8ac2843

Choose a tag to compare

Highlights

Architecture modules

  • New ARC module (by @R33v0LT, sponsored by RizinOrg).
  • BPF was update based on RFC 9669 and other sources (by @Roeegg2).
  • Added support for TriCore 1.8 (by @Changqing-JING).
  • Update and fixes to EVM (by @andelf)
  • PPC update to LLVM 18 (adding a few new instructions).

Others

  • Add many more Python wheels for different architecture/OS combinations (by @Antelox).
  • Provide deb and rpm packages (by @AndrewQuijano).
  • Handful of bug fixes and improvements (see below).

What's Changed

New Contributors

Full Changelog: 6.0.0-Alpha2...6.0.0-Alpha3

Version 5.0.5

17 Jan 02:25
5526125

Choose a tag to compare

What's Changed

  • Fix code missing issue in v5.0.4

What's Changed in v5.0.4

Full Changelog: 5.0.3...5.0.4

Version 5.0.4

16 Jan 04:24
acf11d8

Choose a tag to compare

Version 5.0.4 Pre-release
Pre-release

What's Changed

Full Changelog: 5.0.3...5.0.4

Version 6.0.0-Alpha2

24 Nov 16:25
66b0843

Choose a tag to compare

Version 6.0.0-Alpha2 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: 6.0.0-Alpha1...6.0.0-Alpha2