{"id":"CVE-2026-49263","aliases":["AZL-95979","AZL-96734","AZL-96743","BELL-CVE-2026-49263","DEBIAN-CVE-2026-49263","EUVD-2026-58747","GHSA-5m9f-vqcm-g5pr","RHSA-2026:81540","UBUNTU-CVE-2026-49263"],"status":"published","title":"Capstone WASM `br_table` instruction-size truncation can cause no-progress disassembly and parser desynchronization","description":"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.","severity":{"version":"4.0","score":2,"vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N","level":"low","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.00171,"percentile":0.06557,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-197"],"published":"2026-08-14T17:49:36Z","modified":"2026-11-05T05:40:51Z","fixes":[{"ecosystem":"Azure Linux:3","package":"rust","fixed_in":["1.75.0-30","1.90.0-10"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Azure Linux:3","package":"capstone","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"4.0.2-4"}]}]},{"source":"osv","ecosystem":"Azure Linux:3","package":"rust","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.75.0-30"}]}]},{"source":"osv","ecosystem":"Azure Linux:3","package":"rust","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.85.0"},{"fixed":"1.90.0-10"}]}]},{"source":"osv","ecosystem":"Alpaquita:23","package":"capstone","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.0.2-r5"}]}]},{"source":"osv","ecosystem":"Alpaquita:25","package":"capstone","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"5.0.6-r0"}]}]},{"source":"osv","ecosystem":"Alpaquita:stream","package":"capstone","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.0.2-r5"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"capstone","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.0.2-5","4.0.2-5.1","5.0-1~exp1","5.0.1-1~exp1","5.0.3-1","5.0.5-1","5.0.6-1","5.0.7-1","5.0.7-1~deb13u1","5.0.7-2","5.0.9-1"]},{"source":"osv","ecosystem":"Debian:13","package":"capstone","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.0.6-1","5.0.7-1","5.0.7-1~deb13u1","5.0.7-2","5.0.9-1"]},{"source":"osv","ecosystem":"Debian:14","package":"capstone","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.0.6-1","5.0.7-1","5.0.7-1~deb13u1","5.0.7-2","5.0.9-1"]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"capstone","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:5.0.8-0.5.hum1"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"capstone-devel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:5.0.8-0.5.hum1"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"capstone-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:5.0.8-0.5.hum1"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"capstone-static","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:5.0.8-0.5.hum1"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"python3-capstone","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:5.0.8-0.5.hum1"}]}],"bundled":2},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"capstone","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.4-0.1","3.0.4-0.2"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"capstone","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.4-3","3.0.4-5"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"capstone","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.0.1+really+3.0.5-1","4.0.1+really+3.0.5-1build1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"capstone","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.0.2-3","4.0.2-3build1","4.0.2-5"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"capstone","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.0.2-5","4.0.2-5ubuntu1","4.0.2-5.1","4.0.2-5.1build1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"capstone","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.0.7-2","5.0.9-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"capstone","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.0.6-1","5.0.6-1build1","5.0.7-2"]}],"products":[{"vendor":"capstone-engine","product":"capstone"}],"references":[{"url":"https://github.com/capstone-engine/capstone/security/advisories/GHSA-5m9f-vqcm-g5pr","tags":["x_refsource_CONFIRM","exploit","advisory","article","report"]},{"url":"https://github.com/capstone-engine/capstone/blob/251c5bb4bc9bb92973e738ae3c5f4ef86f103356/ChangeLog#L102","tags":["x_refsource_MISC","web","article","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-49263","tags":["web","advisory"]},{"url":"https://docs.bell-sw.com/security/cves/CVE-2026-49263","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/49xxx/CVE-2026-49263.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-49263","tags":["advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:81540","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-49263","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-49282","tags":["report"]},{"url":"https://access.redhat.com/security/updates/classification/","tags":["article"]},{"url":"https://images.redhat.com/","tags":["article"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_81540.json","tags":["advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2516114","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-49263","tags":["advisory","report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2516103","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-49282","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-49282","tags":["advisory"]},{"url":"https://github.com/capstone-engine/capstone/security/advisories/GHSA-jrw4-wj52-2vw8","tags":["article"]},{"url":"https://ubuntu.com/security/CVE-2026-49263","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-49263","title":"Capstone WASM `br_table` instruction-size truncation can cause no-progress disassembly and parser desynchronization","description":"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.","status":"published","published":"2026-08-14T17:49:36.804Z","modified":"2026-08-17T19:52:03.982Z","cvss":[{"version":"4.0","score":2,"vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N","level":"low","assessor":"cna"}],"cwes":["CWE-197"],"updated_at":"2026-11-02T13:34:59.78118Z"}],"euvd":[{"id":"EUVD-2026-58747","description":"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.","status":"published","published":"2026-08-14T17:49:36Z","modified":"2026-08-17T19:52:03Z","cvss":[{"version":"4.0","score":2,"vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N","level":"low"}],"updated_at":"2026-11-02T18:01:48.395378Z"}],"nvd":[{"id":"CVE-2026-49263","description":"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.","status":"published","published":"2026-08-14T18:17:30.643Z","modified":"2026-09-18T20:05:53.723Z","cvss":[{"version":"4.0","score":2,"vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"low","assessor":"secondary"}],"cwes":["CWE-197"],"updated_at":"2026-11-02T14:12:37.926464Z"}],"osv":[{"id":"CVE-2026-49263","title":"Capstone WASM `br_table` instruction-size truncation can cause no-progress disassembly and parser desynchronization","description":"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.","status":"published","published":"2026-08-14T17:49:36.804Z","modified":"2026-10-28T02:30:46.894520622Z","cvss":[{"version":"4.0","score":2,"vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N","level":"low"}],"cwes":["CWE-197"],"updated_at":"2026-11-02T15:45:07.060148Z"},{"id":"DEBIAN-CVE-2026-49263","description":"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.","status":"published","published":"2026-08-14T18:17:30.643Z","modified":"2026-10-01T03:03:24.538152241Z","cvss":[{"version":"4.0","score":2,"vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"low"}],"updated_at":"2026-11-02T15:45:56.444225Z"},{"id":"RHSA-2026:81540","title":"Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update","status":"published","published":"2026-10-14T10:32:35Z","modified":"2026-10-17T10:21:00Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H","level":"medium"}],"updated_at":"2026-11-02T15:53:23.547034Z"},{"id":"UBUNTU-CVE-2026-49263","description":"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.","status":"published","published":"2026-08-14T18:17:00Z","modified":"2026-10-17T12:58:32.271239602Z","cvss":[{"version":"4.0","score":2,"vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N","level":"low"}],"updated_at":"2026-11-02T16:56:33.391918Z"},{"id":"AZL-95979","title":"CVE-2026-49263 affecting package capstone 4.0.2-4","description":"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.","status":"published","published":"2026-08-14T18:17:30Z","modified":"2026-11-05T05:36:30Z","updated_at":"2026-11-05T16:41:26.077208Z"},{"id":"AZL-96734","title":"CVE-2026-49263 affecting package rust for versions less than 1.75.0-30","description":"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.","status":"published","published":"2026-08-14T18:17:30Z","modified":"2026-11-05T05:40:51Z","updated_at":"2026-11-05T16:41:26.280152Z"},{"id":"AZL-96743","title":"CVE-2026-49263 affecting package rust for versions less than 1.90.0-10","description":"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.","status":"published","published":"2026-08-14T18:17:30Z","modified":"2026-11-05T05:40:51Z","updated_at":"2026-11-05T16:41:26.280152Z"},{"id":"BELL-CVE-2026-49263","status":"published","published":"2026-08-18T06:07:00.776797Z","modified":"2026-08-21T07:15:34.062865268Z","updated_at":"2026-11-02T15:28:24.391068Z"}]}}
