|
| 1 | +--- |
| 2 | +layout: advisory |
| 3 | +title: 'CVE-2026-55107 (kobako): kobako Sandbox Escape - guest eval reaches host RCE |
| 4 | + via method_missing → public_send (any bound Service)' |
| 5 | +comments: false |
| 6 | +categories: |
| 7 | +- kobako |
| 8 | +advisory: |
| 9 | + gem: kobako |
| 10 | + cve: 2026-55107 |
| 11 | + ghsa: 7pwq-q9jf-539h |
| 12 | + url: https://github.com/elct9620/kobako/security/advisories/GHSA-7pwq-q9jf-539h |
| 13 | + title: kobako Sandbox Escape - guest eval reaches host RCE via method_missing → |
| 14 | + public_send (any bound Service) |
| 15 | + date: 2026-08-18 |
| 16 | + description: |- |
| 17 | + ### Summary |
| 18 | +
|
| 19 | + A guest mruby script running inside the Kobako sandbox can execute |
| 20 | + arbitrary Ruby in the host process, fully escaping the sandbox. |
| 21 | +
|
| 22 | + ### Impact |
| 23 | +
|
| 24 | + Complete sandbox escape leading to remote code execution in the host process, |
| 25 | + defeating the gem's central guarantee of isolating untrusted mruby scripts. |
| 26 | + Any deployment that runs untrusted or attacker-influenced scripts is affected. |
| 27 | + All released versions (0.1.0 through 0.9.0) are vulnerable; the dispatcher |
| 28 | + carried the same unguarded `public_send` sink under three successive names |
| 29 | + (`registry` → `rpc` → `transport`). |
| 30 | +
|
| 31 | + ### Credits |
| 32 | +
|
| 33 | + Reported and fixed by Ahmed Al Hafoudh. |
| 34 | + cvss_v3: 10.0 |
| 35 | + patched_versions: |
| 36 | + - ">= 0.9.1" |
| 37 | + related: |
| 38 | + url: |
| 39 | + - https://rubygems.org/gems/kobako/versions/0.9.1 |
| 40 | + - https://github.com/elct9620/kobako/blob/main/CHANGELOG.md#091-2026-06-11 |
| 41 | + - https://github.com/elct9620/kobako/commit/dd081665f368f7ba54e476c3ad045ee1aa8ed703 |
| 42 | + - https://github.com/elct9620/kobako/commit/64f84700c81f44902bed9211318d5362f44987b3 |
| 43 | + - https://advisories.gitlab.com/gem/kobako/CVE-2026-55107 |
| 44 | + - https://github.com/elct9620/kobako/security/advisories/GHSA-7pwq-q9jf-539h |
| 45 | + - https://github.com/advisories/GHSA-7pwq-q9jf-539h |
| 46 | + notes: | |
| 47 | + - cvss_v3 from GHSA |
| 48 | + - CVE is reserved, but not published. |
| 49 | + - Details on Patch: |
| 50 | + - Fixed in 0.9.1. The dispatcher now rejects any method whose resolved |
| 51 | + owner is a core/meta module (`BasicObject`, `Kernel`, `Object`, |
| 52 | + `Module`, `Class`), so only methods the bound object itself defines — |
| 53 | + or dynamically handles via `method_missing` — remain reachable. |
| 54 | + The ambient reflection methods (`send`, `__send__`, `public_send`, |
| 55 | + `instance_eval`, `instance_exec`, `method`, `instance_variable_get`, |
| 56 | + …) are all owned by those modules and are blocked. |
| 57 | +--- |
0 commit comments