Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-35482

CVE-2026-35482: alf.io Sandbox Escape RCE Vulnerability

CVE-2026-35482 is a sandbox escape remote code execution vulnerability in alf.io that allows authenticated admins to execute arbitrary OS commands via Java reflection. This article covers technical details, affected versions, and patches.

Published:

CVE-2026-35482 Overview

CVE-2026-35482 is a sandbox escape vulnerability in alf.io, an open source ticket reservation system for conferences, trade shows, workshops, and meetups. The flaw resides in the extension script engine, which executes restricted JavaScript inside a sandboxed Rhino environment. An authenticated administrator can escape the sandbox and execute arbitrary operating system commands on the server. The issue is tracked under [CWE-863] Incorrect Authorization. Versions prior to 2.0-M5-2606 are affected. Version 2.0-M5-2606 patches the vulnerability.

Critical Impact

Authenticated administrators can break out of the Rhino JavaScript sandbox and run arbitrary OS commands on the alf.io server, leading to full host compromise.

Affected Products

  • alf.io ticket reservation platform versions prior to 2.0-M5-2606
  • Deployments exposing the extension script engine to administrator users
  • Self-hosted alf.io instances running the Rhino-based extension runtime

Discovery Timeline

  • 2026-06-02 - CVE-2026-35482 published to NVD
  • 2026-06-03 - Last updated in NVD database

Technical Details for CVE-2026-35482

Vulnerability Analysis

The alf.io extension system allows administrators to register JavaScript snippets that run inside a Mozilla Rhino sandbox. The sandbox is designed to restrict access to dangerous Java classes and reflection APIs. The implementation enforces these restrictions through two mechanisms: an Abstract Syntax Tree (AST) blocklist that rejects forbidden identifiers, and a curated set of host objects exposed to the script context. Both mechanisms fail in this case. The AST blocklist is incomplete, and an injected Java object named returnClass is left unguarded inside the script scope. Together these gaps let an attacker reach java.lang.Class and the broader reflection API from inside the sandbox.

Root Cause

The root cause is an authorization and isolation failure in the extension runtime ([CWE-863]). The returnClass host object exposes a reachable java.lang.Class reference that is never validated against the blocklist. The AST scanner fails to recognize all property-access patterns that yield reflective access. Attackers chain these to obtain a ClassLoader, load java.lang.Runtime, and invoke exec without ever tripping a validation error.

Attack Vector

Exploitation requires an authenticated account with administrator privileges that can save or update an extension script. The attacker submits a crafted JavaScript extension that walks reflective methods on the returnClass object to resolve Runtime.getRuntime() and execute arbitrary commands. Because the script runs server-side under the alf.io process identity, command execution inherits the privileges of that service account. The attack is delivered over the network through the standard alf.io administration interface. Refer to the GitHub Security Advisory GHSA-3w8f-mcf6-cm7h for the full technical write-up.

Detection Methods for CVE-2026-35482

Indicators of Compromise

  • Newly created or modified alf.io extension scripts containing references to returnClass, getClass, forName, Runtime, or ProcessBuilder.
  • Child processes such as sh, bash, cmd.exe, powershell.exe, or curl spawned by the Java process hosting alf.io.
  • Outbound network connections initiated by the alf.io JVM to unexpected destinations shortly after extension changes.
  • Administrator audit log entries showing extension create or update actions followed by unusual server activity.

Detection Strategies

  • Inspect the alf.io extension table and version history for scripts containing reflection identifiers or string concatenation that hides Java class names.
  • Correlate extension modification events with process creation telemetry from the host running alf.io.
  • Alert on the alf.io JVM spawning shell interpreters or command-line utilities, which is not expected during normal operation.
  • Review administrator authentication logs for unusual login times, source IPs, or failed multi-factor authentication preceding extension changes.

Monitoring Recommendations

  • Forward alf.io application logs and JVM process telemetry to a centralized logging pipeline for correlation.
  • Baseline normal child-process behavior of the alf.io service and alert on deviations.
  • Track administrative role assignments and review them on a recurring schedule to limit the attack surface.
  • Monitor outbound egress from the alf.io host and restrict it through network policy where feasible.

How to Mitigate CVE-2026-35482

Immediate Actions Required

  • Upgrade alf.io to version 2.0-M5-2606 or later, which removes the unguarded returnClass injection and tightens the AST blocklist.
  • Audit all existing extension scripts for reflection patterns and remove any unauthorized entries before upgrading.
  • Rotate administrator credentials and API tokens that may have been exposed on a vulnerable instance.
  • Review server logs and process history for signs of prior exploitation on hosts running affected versions.

Patch Information

The maintainers released version 2.0-M5-2606 to address CVE-2026-35482. The fix removes the unguarded returnClass Java object from the script scope and extends the AST blocklist to cover reflection access patterns. See the alf.io GitHub Security Advisory GHSA-3w8f-mcf6-cm7h for upgrade instructions and patch details.

Workarounds

  • Restrict administrator role membership to a minimal set of trusted operators until the patched version is deployed.
  • Disable the extension feature in environments that do not require custom scripts.
  • Enforce multi-factor authentication for all administrator accounts to reduce the risk of credential abuse.
  • Place the alf.io host behind network egress controls so that command execution attempts cannot reach external infrastructure.
bash
# Configuration example: upgrade alf.io to the patched release
git fetch --tags
git checkout 2.0-M5-2606
./mvnw clean package -Pprod
systemctl restart alfio

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.