CVE-2022-2965 Overview
CVE-2022-2965 is a clickjacking vulnerability affecting NotrinosERP, an open-source Enterprise Resource Planning (ERP) system. The vulnerability stems from improper restriction of rendered UI layers or frames (CWE-1021), which allows attackers to embed vulnerable pages within malicious iframes and trick users into performing unintended actions.
Critical Impact
Attackers can exploit this clickjacking vulnerability to deceive authenticated users into performing unauthorized actions on the NotrinosERP application, potentially leading to credential theft, configuration changes, or unauthorized transactions.
Affected Products
- Notrinos NotrinosERP versions prior to 0.7
Discovery Timeline
- 2022-08-23 - CVE-2022-2965 published to NVD
- 2024-11-21 - Last updated in NVD database
Technical Details for CVE-2022-2965
Vulnerability Analysis
This vulnerability is classified as Improper Restriction of Rendered UI Layers or Frames, which is a web application security flaw that enables clickjacking attacks. The NotrinosERP application failed to implement proper frame protection mechanisms on critical pages, including the login page (access/login.php) and password reset page (access/password_reset.php).
Without the X-Frame-Options HTTP response header, browsers allow the application pages to be embedded within iframes on arbitrary external websites. This architectural weakness enables attackers to create overlay attacks where invisible or disguised frames capture user interactions intended for visible content.
The vulnerability requires user interaction to exploit, as victims must visit a malicious page and perform actions like clicking buttons or entering credentials while the targeted NotrinosERP page is invisibly overlaid.
Root Cause
The root cause of CVE-2022-2965 is the absence of the X-Frame-Options HTTP response header in the NotrinosERP application. This header is a security mechanism that instructs browsers whether a page should be allowed to render within frames, iframes, or object elements. Without this protection, the application's authentication and password reset pages could be embedded in attacker-controlled websites, enabling UI redress attacks.
Attack Vector
The attack vector is network-based, requiring an attacker to host a malicious webpage that embeds the vulnerable NotrinosERP pages within hidden iframes. The attack sequence involves:
- The attacker creates a deceptive webpage with the NotrinosERP login or password reset page embedded in a transparent iframe
- Visible UI elements are positioned to entice victims to click specific locations
- When users interact with the visible elements, their clicks are actually captured by the hidden NotrinosERP iframe
- This allows attackers to trick authenticated users into performing unintended actions or capturing keystrokes during login attempts
The security patch adds the X-Frame-Options: SAMEORIGIN header to prevent the pages from being framed by external domains:
$rtl = isset($_SESSION['language']->dir) ? $_SESSION['language']->dir : 'ltr';
$onload = !$login_timeout ? "onload='defaultCompany()'" : '';
+if (!headers_sent())
+ header("X-Frame-Options: SAMEORIGIN");
+
echo "<!DOCTYPE html>\n";
echo "<html dir='".$rtl."' >\n";
echo "<head profile=\"http://www.w3.org/2005/10/profile\"><title>".$title."</title>\n";
Source: GitHub Commit c2ff3d8
Detection Methods for CVE-2022-2965
Indicators of Compromise
- Unexpected iframe requests to NotrinosERP login or password reset pages from external referrers
- HTTP requests to access/login.php or access/password_reset.php with suspicious referer headers
- User reports of credential issues or unauthorized account changes following visits to suspicious websites
Detection Strategies
- Monitor web server access logs for requests to authentication endpoints with unusual HTTP Referer headers indicating embedding from external domains
- Implement Content Security Policy (CSP) reporting to detect framing attempts
- Deploy web application firewalls (WAF) with rules to detect clickjacking attack patterns
Monitoring Recommendations
- Review HTTP response headers on NotrinosERP pages to verify X-Frame-Options is properly configured
- Enable CSP violation reporting to receive alerts when framing policies are violated
- Monitor authentication anomalies that may indicate successful clickjacking attacks against users
How to Mitigate CVE-2022-2965
Immediate Actions Required
- Upgrade NotrinosERP to version 0.7 or later which includes the security fix
- Verify that all authentication-related pages return the X-Frame-Options: SAMEORIGIN header
- Implement Content Security Policy with frame-ancestors 'self' directive for defense in depth
Patch Information
The vulnerability was fixed in the GitHub commit c2ff3d8e85a811003b796ca38f5b3290deeaa3aa. The patch adds the X-Frame-Options: SAMEORIGIN header to both access/login.php and access/password_reset.php files, preventing these pages from being embedded in frames on external domains.
Additional details about the vulnerability can be found in the Huntr bounty listing.
Workarounds
- If immediate patching is not possible, configure the web server (Apache, Nginx) to add the X-Frame-Options header globally
- Implement CSP headers at the web server level as an additional protection layer
- Educate users about the risks of clicking links from untrusted sources while authenticated to the ERP system
# Apache configuration to add X-Frame-Options header
# Add to .htaccess or httpd.conf
Header always set X-Frame-Options "SAMEORIGIN"
# Nginx configuration
add_header X-Frame-Options "SAMEORIGIN" always;
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


