Tencent/WeKnora · error

argument injection detected

Error message

argument injection detected

What it means

Sentinel ErrArgInjection returned by the sandbox manager when argument-injection patterns are detected in the script or its arguments (manager.go:151), or when the provider result flags injection. It prevents crafted inputs from injecting flags/options into the executed command line.

Source

Thrown at internal/sandbox/sandbox.go:107

	DefaultCubeHTTPTimeout = 30 * time.Second

	// DefaultE2BSandboxTTL matches the E2B SDK's built-in default so an
	// unset E2BSandboxTTL still yields a valid sandbox lifetime.
	DefaultE2BSandboxTTL = 5 * time.Minute
	// DefaultE2BHTTPTimeout bounds a single HTTP call to the E2B API.
	DefaultE2BHTTPTimeout = 30 * time.Second
)

// Common errors
var (
	ErrSandboxDisabled   = errors.New("sandbox is disabled")
	ErrTimeout           = errors.New("execution timed out")
	ErrScriptNotFound    = errors.New("script not found")
	ErrInvalidScript     = errors.New("invalid script")
	ErrExecutionFailed   = errors.New("script execution failed")
	ErrSecurityViolation = errors.New("security validation failed")
	ErrDangerousCommand  = errors.New("script contains dangerous command")
	ErrArgInjection      = errors.New("argument injection detected")
	ErrStdinInjection    = errors.New("stdin injection detected")
)

// Sandbox defines the interface for isolated script execution
type Sandbox interface {
	// Execute runs a script in an isolated environment
	Execute(ctx context.Context, config *ExecuteConfig) (*ExecuteResult, error)

	// Cleanup releases sandbox resources
	Cleanup(ctx context.Context) error

	// Type returns the sandbox type
	Type() SandboxType

	// IsAvailable checks if the sandbox is available for use
	IsAvailable(ctx context.Context) bool
}

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Escape or quote user-supplied values before embedding them in script arguments
  2. Pass untrusted data via stdin/env vars instead of command-line arguments
  3. Strip or reject argument-separating characters (--, ;, |, backticks) from inputs
  4. Do not retry unchanged; fix the input sanitization first
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at internal/sandbox/sandbox.go:107 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Tencent/WeKnora@988cbb0330 (2026-09-02). Data as JSON: /api/errors/f8298c656db85ae6. Report an issue: GitHub.