vm2, XML builder, and routing resource-boundary batch¶
Signal: The 2026-05-08 17:15 UTC advisory scan added another set of sandbox, builder, and routing/resource issues: two vm2 escapes fixed in 3.11.2, XML comment/attribute filtering bypasses, and GoBGP parser/resource handling flaws.
Advisories covered¶
- vm2 null-prototype exception sandbox breakout — GHSA-9vg3-4rfj-wgcm: critical escape affecting
vm2 < 3.11.2; patch to3.11.2+. - vm2 internal state exposure — GHSA-2cm2-m3w5-gp2f:
vm2 < 3.11.2exposedVM2_INTERNAL_STATE_DO_NOT_USE_OR_PROGRAM_WILL_FAIL; patch to3.11.2+. - fast-xml-builder attribute quote filtering bypass — GHSA-5wm8-gmm8-39j9:
fast-xml-builder <= 1.1.6; patch to1.1.7+. - fast-xml-builder comment regex bypass — GHSA-45c6-75p6-83cc:
fast-xml-builder == 1.1.5; patch to1.1.6+or preferably current fixed versions. - GoBGP integer underflow — GHSA-hj4w-qr9j-c4cf:
github.com/osrg/gobgp/v4 < 4.4.0; patch to4.4.0+. - GoBGP improper resource shutdown/release — GHSA-vm3g-8xwv-mxfp:
github.com/osrg/gobgp/v4 < 4.4.0; patch to4.4.0+.
Why this is durable¶
The shared theme is representation smuggling plus missing containment. JavaScript sandboxes are asked to contain language-level edge cases; XML builders try to filter syntax with regexes; routing daemons parse attacker-influenced protocol data in long-running control-plane processes. When those components fail, the blast radius is controlled by process isolation, output encoding, parser budgets, and control-plane segmentation.
Immediate triage¶
- Search lockfiles for
vm2 < 3.11.2,fast-xml-builder <= 1.1.6, andgithub.com/osrg/gobgp/v4 < 4.4.0. - Patch vm2 and assess whether any workload used vm2 as a tenant boundary. If yes, assume escape and review host filesystem, env vars, process launches, and outbound connections.
- For XML generation, hunt for user-controlled attribute/comment values containing quotes, encoded delimiters, XML comment terminators, namespace tricks, or sanitizer bypass probes.
- For GoBGP, review BGP peer logs for malformed updates, session churn, unexpected resource growth, and crashes/restarts around the advisory window.
- Add regression tests that compare builder output as parsed XML/HTML, not just as strings.
Durable controls¶
- Replace in-process sandboxes with OS/process isolation for untrusted code; use vm2-style libraries only as defense-in-depth.
- Use XML/HTML builders that perform context-aware escaping by construction; do not rely on regex allow/deny filters for syntax-bearing values.
- Fuzz protocol parsers and builders with canonical malicious corpora, including unterminated comments, nested encodings, integer boundary values, and malformed route attributes.
- Put routing/control-plane components behind peer allowlists, rate limits, memory/CPU budgets, and automatic crash evidence capture.
- Treat generated XML/HTML as a security boundary: parse the generated artifact in tests and assert no unexpected attributes, comments, tags, or processing instructions appear.