Loading...
Skip to main content

CVE-2023-34102 — Vulnerability in avo — CVE Details

HIGH

avo possible unsafe reflection / partial DoS vulnerability

Published June 6, 2023Updated September 10, 2026Source: osv

Summary

### Summary The polymorphic field type stores the classes to operate on when updating a record with user input, and does not validate them in the back end. This can lead to unexpected behavior, remote code execution, or application crashes when viewing a manipulated record. ### Details After reviewing the polymorphic field implementation and performing some black box approaches, we identified a potential security issue related to the use of safe_constantize / constantize. This Rails functionality is capable of searching for classes within the Rails context and returning the class for further use. Because Avo does not validate user input when updating or creating a new polymorphic resource, it is possible to create database entries with completely different or invalid class names than the preselected ones. Avo assumes that the class specified by the user request is a valid one and attempts to work with it, which may result in dangerous behavior and code execution. ### PoC ![image](https://user-images.githubusercontent.com/26464774/243437854-933d94c8-4ae0-43fe-b2da-35b103e28796.png) _In the test scenario we choose the demo app and the review resource which has a polymorphic reviewable field._ ![image](https://user-images.githubusercontent.com/26464774/243437954-2d947c6d-4e97-4e91-a442-405e553dd047.png) _Intercepting the request and switching the review[reviewable_type] from “Fish” to “File” which is a real class inside Rails_ ![image](https://user-images.githubusercontent.com/26464774/243438031-109de6d0-9370-4318-b18e-c5bcea61cf54.png) _Corrupting the database with unusable classes will cause a crash at the application while viewing the new record or the index view (partial DoS)_ ![image](https://user-images.githubusercontent.com/26464774/243438104-80df5aae-86de-40fc-870d-689a03cae389.png) _Manual delete the corrupted resource in order to recover the applications functionality_ ![image](https://user-images.githubusercontent.com/26464774/243438182-1e7eef54-73ba-47d0-b5df-4bad14859af3.png) _Of course it is possible to use other class names or namespaces. The local development environment displays the backend error message when visiting a corrupted record. Avo is trying to apply a scope to this class that does not exist._ ![image](https://user-images.githubusercontent.com/26464774/243438257-dbb59153-58a8-4421-b796-f2a0f2c20083.png) _Specifying an invalid class name in the parameter will cause the application to crash again while trying constanize the provided string_ ### Impact The final exploitation of this vulnerability requires more time than is provided in this assessment, but initial testing of the post request shows the potential critical risk. The classes could be instantiated at any point in the code and this could also lead to code execution. ### Recommendation Avo should be configured to never trust user-supplied input, especially when defining classes for records. In this particular case, Avo can evaluate the options list given for the polymorphic field and only allow strings from that list. With this white-list approach, an attacker cannot supply unintended classes.

Advisory Timeline

  • First published June 6, 2023 (1224 days ago).
  • Last revised September 10, 2026 — 1191 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

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

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

Affected Packages (2)

Affects 1 ecosystem: rubygems (1).

PackageEcosystemAffectedFixed In
avo
rubygems
3.0.0.pre1, 3.0.0.pre10, 3.0.0.pre11, 3.0.0.pre12 (+8 more)Range-based data available
avo
rubygems
0.2.0, 0.2.1, 0.2.2, 0.2.3 (+312 more)2.33.3

Vulnerability Classification

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

CVSS Score Breakdown

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

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

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

Frequently Asked Questions

What is CVE-2023-34102?
avo possible unsafe reflection / partial DoS vulnerability This vulnerability has been assigned a severity rating of HIGH (CVSS score: 8.3/10).
How do I check if my project is affected by CVE-2023-34102?
CVE-2023-34102 affects avo. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2023-34102 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
8.3

High exploitability or significant impact. Prioritize remediation within days.

Also Known As

GHSA-86h2-2g4g-29qx

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-2024-22191
    HIGH

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

  • CVE-2026-42205
    HIGH

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

  • 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