VYPR
Moderate severityNVD Advisory· Published Jan 17, 2022· Updated Aug 2, 2024

Cross-site Scripting (XSS) - Stored in livehelperchat/livehelperchat

CVE-2022-0253

Description

livehelperchat is vulnerable to Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

LiveHelperChat is vulnerable to stored cross-site scripting via AngularJS template injection, allowing attackers to execute arbitrary JavaScript in the admin panel.

Vulnerability

LiveHelperChat [1] is an open-source live support chat application. A stored cross-site scripting (XSS) vulnerability exists due to improper neutralization of user input [2]. User-controlled data such as chat names and search terms were rendered without sanitization, allowing AngularJS expression injection. The vulnerability affects versions prior to the commit 407d0b1 [3] (January 17, 2022). The issue is present in templates like lhchat/lists/search_panel_append_print_multiinclude.tpl.php and others where ng-non-bindable was added as a fix.

Exploitation

An attacker can inject AngularJS expressions (e.g., {{constructor.constructor('alert(1)')()}}) into fields that are later displayed in the admin panel, such as chat names or search names. No authentication is required to inject the payload if the attacker can send a chat message or modify data that appears in the admin interface. When an administrator views the affected page, the expression is evaluated by AngularJS, leading to arbitrary JavaScript execution [4].

Impact

Successful exploitation allows an attacker to execute arbitrary JavaScript in the context of the admin panel. This can lead to session hijacking, theft of sensitive data, or full compromise of the LiveHelperChat instance. The impact is high as it targets administrators with elevated privileges.

Mitigation

The vulnerability was fixed in commit 407d0b1 [3] by adding the ng-non-bindable attribute to prevent AngularJS from evaluating expressions in user-controlled fields. Users should update to the latest version of LiveHelperChat that includes this commit. If immediate update is not possible, manually applying the patch to affected template files is recommended. No other workarounds are documented. The CVE is not listed in CISA KEV.

AI Insight generated on May 21, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
remdex/livehelperchatPackagist
<= 3.91

Affected products

2

Patches

1
407d0b1a1fa5

Do not execute angular title

https://github.com/livehelperchat/livehelperchatRemigijus KiminasJan 17, 2022via ghsa
4 files changed · +4 4
  • lhc_web/design/defaulttheme/tpl/lhviews/loadview.tpl.php+1 1 modified
    @@ -2,7 +2,7 @@
         <?php if (!$list_mode) : ?>
         <div role="tabpanel" id="tabs" ng-cloak>
             <ul class="nav nav-pills" role="tablist">
    -            <li role="presentation" class="nav-item"><a class="nav-link active" href="#chatlist" aria-controls="chatlist" role="tab" data-toggle="tab" title="<?php echo erTranslationClassLhTranslation::getInstance()->getTranslation('chat/onlineusers','Chat list');?>">
    +            <li role="presentation" class="nav-item"><a class="nav-link active" href="#chatlist" aria-controls="chatlist" ng-non-bindable role="tab" data-toggle="tab" title="<?php echo erTranslationClassLhTranslation::getInstance()->getTranslation('chat/onlineusers','Chat list');?>">
                         <?php echo htmlspecialchars($search->name)?> </a>
                 </li>
             </ul>
    
  • lhc_web/design/defaulttheme/tpl/lhviews/save_chat_view.tpl.php+1 1 modified
    @@ -9,7 +9,7 @@
     
     <?php include(erLhcoreClassDesign::designtpl('lhchat/lists/search_panel_append_print_multiinclude.tpl.php'));?>
     
    -    <form action="<?php echo htmlspecialchars($action_url)?>/(export)/2?<?php echo $appendPrintExportURL?>" method="post" target="_blank" onsubmit="return lhinst.submitModalForm($(this))">
    +    <form action="<?php echo htmlspecialchars($action_url)?>/(export)/2?<?php echo $appendPrintExportURL?>" method="post" ng-non-bindable target="_blank" onsubmit="return lhinst.submitModalForm($(this))">
     
             <?php if (isset($errors)) : ?>
                 <?php include(erLhcoreClassDesign::designtpl('lhkernel/validation_error.tpl.php'));?>
    
  • lhc_web/design/defaulttheme/tpl/lhwebhooks/editincoming.tpl.php+1 1 modified
    @@ -1,4 +1,4 @@
    -<h1><?php echo htmlspecialchars($item->name)?></h1>
    +<h1 ng-non-bindable><?php echo htmlspecialchars($item->name)?></h1>
     
     <?php if (isset($errors)) : ?>
         <?php include(erLhcoreClassDesign::designtpl('lhkernel/validation_error.tpl.php'));?>
    
  • lhc_web/design/defaulttheme/tpl/lhwebhooks/edit.tpl.php+1 1 modified
    @@ -1,4 +1,4 @@
    -<h1><?php echo htmlspecialchars($item->name)?></h1>
    +<h1 ng-non-bindable><?php echo htmlspecialchars($item->name)?></h1>
     
     <?php if (isset($errors)) : ?>
     	<?php include(erLhcoreClassDesign::designtpl('lhkernel/validation_error.tpl.php'));?>
    

Vulnerability mechanics

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

References

4

News mentions

0

No linked articles in our index yet.