VYPR
High severityNVD Advisory· Published Jun 5, 2023· Updated Jan 8, 2025

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

CVE-2023-34103

Description

Avo is an open source ruby on rails admin panel creation framework. In affected versions some avo fields are vulnerable to Cross Site Scripting (XSS) when rendering html based content. Attackers do need form edit privilege in order to successfully exploit this vulnerability, but the results are stored and no specific timing is required. This issue has been addressed in commit 7891c01e which is expected to be included in the next release of avo. Users are advised to configure CSP headers for their application and to limit untrusted user access as a mitigation.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
avoRubyGems
< 2.33.32.33.3
avoRubyGems
>= 3.0.0.pre1, <= 3.0.0.pre12

Affected products

1

Patches

1
7891c01e1fba

Merge pull request from GHSA-5cr9-5jx3-2g39

https://github.com/avo-hq/avoAdrian MarinJun 5, 2023via ghsa
6 files changed · +7 7
  • app/components/avo/alert_component.html.erb+1 1 modified
    @@ -10,7 +10,7 @@
           </div>
           <div class="ml-3 w-0 flex-1 pt-0.5">
             <p class="text-sm leading-5 font-semibold">
    -          <%== message %>
    +          <%= sanitize message %>
             </p>
           </div>
           <div class="ml-4 flex-shrink-0 flex items-center">
    
  • app/components/avo/fields/common/heading_component.html.erb+1 1 modified
    @@ -3,7 +3,7 @@
         <% if empty %>
         <% elsif value.present? %>
           <% if as_html %>
    -        <%== value %>
    +        <%= sanitize value %>
           <% else %>
             <div class="font-semibold uppercase"><%= value %></div>
           <% end %>
    
  • app/components/avo/fields/trix_field/edit_component.html.erb+1 1 modified
    @@ -20,7 +20,7 @@
           },
           input: trix_id,
           placeholder: @field.placeholder do %>
    -      <%== @field.value %>
    +      <%= sanitize @field.value %>
         <% end %>
         <%= @form.text_area @field.id,
           class: classes("w-full hidden"),
    
  • app/components/avo/fields/trix_field/show_component.html.erb+1 1 modified
    @@ -8,7 +8,7 @@
           <%= link_to t('avo.show_content'), 'javascript:void(0);', class: 'font-bold inline-block', data: { action: 'click->hidden-input#showContent' } %>
         <% end %>
         <div class="<%= content_classes %> " data-hidden-input-target="content">
    -      <%== @field.value %>
    +      <%= sanitize @field.value %>
         </div>
       </div>
     <% end %>
    
  • app/components/avo/field_wrapper_component.html.erb+2 2 modified
    @@ -24,13 +24,13 @@
               <div class="text-red-600 mt-2 text-sm"><%= record.errors.full_messages_for(field.id).to_sentence %></div>
             <% end %>
             <% if help.present? %>
    -          <div class="text-gray-600 mt-2 text-sm"><%== help %></div>
    +          <div class="text-gray-600 mt-2 text-sm"><%= sanitize help %></div>
             <% end %>
           <% end %>
         </div>
       </div>
       <% if params[:avo_debug].present? %>
         <!-- Raw value: -->
    -    <!-- <%== field.value.inspect %> -->
    +    <!-- <%= sanitize field.value.inspect %> -->
       <% end %>
     <% end %>
    
  • app/components/avo/index/field_wrapper_component.html.erb+1 1 modified
    @@ -19,6 +19,6 @@
       <% end %>
       <% if params[:avo_debug].present? %>
         <!-- Raw value: -->
    -    <!-- <%== @field.value.inspect %> -->
    +    <!-- <%= sanitize @field.value.inspect %> -->
       <% end %>
     <% end %>
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

6

News mentions

0

No linked articles in our index yet.