Critical, CVSS 10.0RubyGemsAmendedPublished
kobako Sandbox Escape: guest eval reaches host RCE via method_missing → public_send (any bound Service)
CVE-2026-55107 · GHSA-7pwq-q9jf-539h
- Affected
- RubyGems kobako >= 0.1.0, < 0.9.1
- Fixed in
- 0.9.1· Vendor fix available
- Issue
- A guest mruby script running inside the Kobako sandbox can execute arbitrary Ruby in the host process, fully escaping the sandbox. Details A host embeds bound "Service" objects that guest scripts call across the wasm boundary through the transport dispatcher. The dispatcher passed the guest-supplied method name straight to `Object#public_send` on the bound object, with no restriction to the object's own methods: ```ruby target.public_send(method.to_sym, *args, **kwargs, &block) ``` `public_send` can invoke any public method, including Ruby's ambient reflection surface. A guest pivots through the public `send` into otherwise private Kernel methods: a dispatch request with `method = "send"` and `args = [:eval, " "]` evaluates to `target.send(:eval, " ")`, running attacker-controlled Ruby in the host. Any bound Service object is sufficient — no Service-specific behavior is required. Proof of Concept A guest call equivalent to: ``` Service.send(:eval, " ") ```…
Recommended action: Upgrade to 0.9.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.