Loading...
Skip to main content

CVE-2026-42205 — Vulnerability in avo — CVE Details

HIGH

Avo: Broken Access Control Through Unauthorized Execution of Arbitrary Action Classes Across Resources

Published April 24, 2026Updated June 8, 2026Source: osv

Summary

### Summary A critical Broken Access Control vulnerability was identified in the `ActionsController` of the Avo framework (v3.x). Due to insecure action lookup logic, an authenticated user can execute any Action class (descendants of `Avo::BaseAction`) on any resource, even if the action is not registered for that specific resource. This leads to Privilege Escalation and unauthorized data manipulation across the entire application. ### Details The vulnerability exists in the `action_class` method within `app/controllers/avo/actions_controller.rb`. #### Vulnerable Code ```ruby def action_class # It searches through ALL descendants of BaseAction without resource validation Avo::BaseAction.descendants.find do |action| action.to_s == params[:action_id] end end ``` The controller identifies the action class to execute solely based on the `params[:action_id]` by searching through all `BaseAction` descendants. It fails to verify whether the requested action is actually permitted or registered for the resource context specified in the request URL (e.g., `/admin/resources/posts/actions`). Consequently, an attacker can invoke sensitive actions (e.g., `Avo::Actions::ToggleAdmin`) through an unrelated resource endpoint (e.g., `Post`), bypassing the intended resource-action mapping. ### Impact This flaw results in significant security risks: - **Privilege Escalation:** An authenticated user with low privileges can execute administrative actions (like toggling admin roles) to escalate their own or others' permissions. - **Unauthorized Operations:** Actions designed for restricted resources can be triggered against any record ID in the database. - **Data Integrity Compromise:** Attackers can perform unauthorized destructive operations (e.g., Delete, Archive, or Update) on records they should not have access to. ### Proof of Concept (PoC) **Steps to Reproduce:** 01. Log in to the Avo admin panel with limited permissions. 02. Identify a target record ID (e.g., User ID: 1) and a sensitive action class (e.g., `Avo::Actions::ToggleAdmin`). 03. Send a POST request to a resource endpoint where the target action is not registered: - **URL:** `POST /admin/resources/posts/actions` - **Payload:** `action_id=Avo::Actions::ToggleAdmin&fields[avo_resource_ids]=1` 04. The server executes the `ToggleAdmin` logic on User 1, even though the request was made through the `posts` resource context. **PoC Script Snippet:** ```python # Simulating the unauthorized action execution data = { 'action_id': 'Avo::Actions::ToggleAdmin', 'fields[avo_resource_ids]': '1', # Target Record ID 'authenticity_token': csrf_token } response = session.post(f"{BASE_URL}/admin/resources/posts/actions", data=data) ``` ### Remediation Restrict the action lookup to only those actions explicitly registered for the current resource context: ```ruby def action_class # Validate that the action is registered for the current resource @resource.get_actions.find do |action| action.to_s == params[:action_id] end end ``` ### Discoverer Illunight

Advisory Timeline

  • First published April 24, 2026 (171 days ago).
  • Last revised June 8, 2026 — 45 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

Bundler
Update avo to 3.31.2 or later
gem install avo -v 3.31.2

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (1)

Affects 1 ecosystem: rubygems (1).

PackageEcosystemAffectedFixed In
avo
rubygems
0.2.0, 0.2.1, 0.2.2, 0.2.3 (+565 more)3.31.2

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 8.8 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Frequently Asked Questions

What is CVE-2026-42205?
Avo: Broken Access Control Through Unauthorized Execution of Arbitrary Action Classes Across Resources This vulnerability has been assigned a severity rating of HIGH (CVSS score: 8.8/10).
How do I check if my project is affected by CVE-2026-42205?
CVE-2026-42205 affects avo. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-42205 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
8.8

High exploitability or significant impact. Prioritize remediation within days.

Also Known As

GHSA-qc5p-3mg5-9fh8

Related CVEs

  • CVE-2026-55518
    CRITICAL

    Avo: Missing Authorization in Avo Association Attach Endpoint Allows Unauthorized Relationship Manipulation and Privilege Escalation

  • CVE-2023-34103
    HIGH

    avo vulnerable to Stored XSS (Cross Site Scripting) in html content based fields

  • CVE-2023-34102
    HIGH

    avo possible unsafe reflection / partial DoS vulnerability

  • CVE-2024-22191
    HIGH

    avo vulnerable to stored cross-site scripting (XSS) in key_value field

  • CVE-2026-77601
    HIGH

    OpenC3 COSMOS: Authenticated OS command injection via the `pypi_url` setting

  • CVE-2026-33209
    MEDIUM

    Avo has a XSS vulnerability on `return_to` param

  • CVE-2024-22411
    MEDIUM

    Cross-site scripting (XSS) in Action messages on Avo

  • CVE-2026-53769
    MEDIUM

    Avo: Direct attachment upload endpoint lacks upload authorization and bypasses field-level upload policy

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies