CVE and update status of the FreeBSD ports tree3,295 unaddressed CVEs in 670 portsAll times are CET
CVE details

CVE-2026-49263

Capstone is a disassembly framework. Prior to version 6.0.0-Alpha9, Capstone's WebAssembly backend accepts attacker-controlled raw WASM instruction bytes through the public `cs_disasm()` and `cs_disasm_iter()` APIs. For a large but well-formed `br_table` instruction, the WASM decoder accumulates the immediate length in a wider local variable but returns it through a `uint16_t` instruction-size path. When the encoded instruction length is exactly 65,536 bytes, the size wraps to zero and `cs_disasm()` can repeatedly decode the same instruction without advancing. For larger lengths, `cs_disasm_iter()` advances into the middle of the `br_table` payload and decodes target bytes as subsequent instructions. This is an availability and parser-integrity issue. Version 6.0.0-Alpha9 patches the issue.

Score
2.0 low
Published
2026-08-14
Links
NVD · cve.org

Matched ports (3)

PortPackageVersionStatusMaintainer
devel/capstonecapstone5.0.9unaddressedbofh@FreeBSD.org
devel/capstone4capstone44.0.2_1unaddressedoleksii.tsai@gmail.com
devel/py-capstonepy312-capstone5.0.9_1unaddressedbofh@FreeBSD.org

Template for a VuXML entry

Range taken from the CVE record, check it before committing. make newentry in security/vuxml creates the vid.

  <vuln vid="FIXME (make newentry)">
    <topic>FIXME -- FIXME</topic>
    <affects>
      <package>
	<name>capstone</name>
	<range><lt>6.0.0-Alpha9</lt></range>
      </package>
      <package>
	<name>capstone4</name>
	<range><lt>6.0.0-Alpha9</lt></range>
      </package>
      <package>
	<name>py312-capstone</name>
	<range><lt>6.0.0-Alpha9</lt></range>
      </package>
    </affects>
    <description>
      <body xmlns="http://www.w3.org/1999/xhtml">
	<p>Capstone is a disassembly framework. Prior to version 6.0.0-Alpha9,
	Capstone's WebAssembly backend accepts attacker-controlled raw WASM
	instruction bytes through the public `cs_disasm()` and
	`cs_disasm_iter()` APIs. For a large but well-formed `br_table`
	instruction, the WASM decoder accumulates the immediate length in a
	wider local variable but returns it through a `uint16_t`
	instruction-size path. When the encoded instruction length is exactly
	65,536 bytes, the size wraps to zero and `cs_disasm()` can repeatedly
	decode the same instruction without advancing. For larger lengths,
	`cs_disasm_iter()` advances into the middle of the `br_table` payload
	and decodes target bytes as subsequent instructions. This is an
	availability and parser-integrity issue. Version 6.0.0-Alpha9 patches
	the issue.</p>
      </body>
    </description>
    <references>
      <cvename>CVE-2026-49263</cvename>
      <url>https://nvd.nist.gov/vuln/detail/CVE-2026-49263</url>
    </references>
    <dates>
      <discovery>2026-08-14</discovery>
      <entry>2026-10-26</entry>
    </dates>
  </vuln>