☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2023-50930

CVE-2023-50930 Cross-Site Request Forgery in Savignano
📅 PUBLISHED: 2024-01-09 00:00 UTC 🔄 UPDATED: 2026-08-18 17:15 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.19%
👁️
0.19% probability
4.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
8.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2023-50930 is a critical Cross-Site Request Forgery (CSRF) vulnerability in the Savignano S/Notify plugin for Jira, affecting versions prior to 4.0.2. An unauthenticated attacker can trick an authenticated Jira administrator into performing unintended actions, such as modifying the S/Notify configuration. Successful exploitation can disable email encryption, exposing sensitive notification content. The vulnerability has a CVSS score of 8.3 (High) and no public proof-of-concept (PoC) or exploit code has been identified at this time. The vendor has released a patched version (4.0.2) to address this issue.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability affects a commercial Atlassian Jira plugin (S/Notify) distributed by Savignano. It is not an open-source package (NPM, PyPI, Go, Ruby). The risk is limited to organizations using Jira with the S/Notify plugin installed. The supply chain risk is moderate, as the plugin is a third-party component integrated into the Jira ecosystem.

CVSS Breakdown & Threat Level

  • CVSS Score: 8.3 (High)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
  • Attack Vector (AV): Network (N) – Exploitable remotely.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): None (N) – No authentication needed to initiate the attack.
  • User Interaction (UI): Required (R) – The victim (admin) must click a malicious link or visit a malicious site.
  • Scope (S): Unchanged (U) – The vulnerable component and the impacted component are the same.
  • Confidentiality (C): High (H) – Email notifications may be exposed in plaintext.
  • Integrity (I): High (H) – Configuration can be altered.
  • Availability (A): High (H) – Attack could disrupt email notification service.

Threat Level: High. The attack requires user interaction but can lead to complete compromise of email confidentiality and integrity.

Deep Dive & Mechanics

The vulnerability is a classic CSRF flaw in the S/Notify plugin's configuration interface. The plugin does not implement anti-CSRF tokens (e.g., synchronizer tokens) for its administrative configuration endpoints. An attacker can craft a malicious HTML page or email that, when loaded by an authenticated Jira administrator, sends a forged HTTP request to the Jira server. This request modifies the S/Notify configuration, such as disabling TLS/SSL for SMTP or changing encryption settings.

Attack Flow:

  1. Attacker identifies a Jira instance with S/Notify installed (version < 4.0.2).
  2. Attacker crafts a malicious link or hosts a webpage containing a CSRF payload (e.g., an auto-submitting form).
  3. Attacker lures an authenticated Jira administrator to click the link or visit the page.
  4. The administrator's browser sends a forged request to the Jira server (e.g., POST /plugins/servlet/snotify/admin/config).
  5. The server processes the request, modifying the S/Notify configuration (e.g., setting encryption=false).
  6. Subsequent email notifications are sent unencrypted, exposing sensitive data.

Root Cause: Missing CSRF protection on configuration endpoints.

Vulnerable vs. Patched Code

Vulnerable Code (pre-4.0.2): The configuration servlet or action class does not validate a CSRF token. Example (pseudo-code):

public class SNotifyConfigServlet extends HttpServlet {
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
        // No CSRF token check
        String encryption = req.getParameter("encryption");
        config.setEncryption(encryption);
        // Save config
    }
}

Patched Code (4.0.2+): The patched version introduces a CSRF token validation. Example (pseudo-code):

public class SNotifyConfigServlet extends HttpServlet {
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
        // Validate CSRF token
        String token = req.getParameter("csrf_token");
        if (!csrfTokenService.isValid(token)) {
            resp.sendError(403, "Invalid CSRF token");
            return;
        }
        String encryption = req.getParameter("encryption");
        config.setEncryption(encryption);
        // Save config
    }
}

The patch adds a CSRF token that must be included in every state-changing request. The token is generated per session and validated server-side.

Exploitation & Lab Setup

Red Team (Offensive)

Lab Setup:

  • Jira instance (e.g., Jira 9.x) with S/Notify < 4.0.2 installed.
  • Attacker machine with a web server (e.g., Python HTTP server).
  • Victim machine with a browser logged into Jira as an admin.

Exploitation Steps:

  1. Identify the S/Notify configuration endpoint (e.g., /plugins/servlet/snotify/admin/config).
  2. Craft a CSRF payload HTML file:
<html>
<body>
<form action="http://target-jira/plugins/servlet/snotify/admin/config" method="POST">
    <input type="hidden" name="encryption" value="false" />
    <input type="hidden" name="smtp_tls" value="false" />
    <input type="submit" value="Click me" />
</form>
<script>document.forms[0].submit();</script>
</body>
</html>
  1. Host the file on the attacker's web server.
  2. Send the link to the victim (e.g., via email or social engineering).
  3. When the victim clicks, the form auto-submits, modifying the configuration.

Expected Outcome: Email notifications are now sent unencrypted.

Blue Team (Defensive)

Detection:

  • Monitor for unusual POST requests to /plugins/servlet/snotify/admin/config from non-admin IPs or without a valid CSRF token.
  • Alert on configuration changes to S/Notify, especially disabling encryption.
  • Use web application firewalls (WAF) to block requests missing expected CSRF tokens.

Hunting:

  • Search logs for snotify configuration changes.
  • Look for HTTP Referer headers that are external or unexpected.
  • Check for multiple failed CSRF token validations (if patched).

Indicators of Compromise (IOCs)

  • Network:
    • POST requests to /plugins/servlet/snotify/admin/config with parameters like encryption=false.
    • HTTP Referer header pointing to an external domain.
  • Host:
    • Modified S/Notify configuration file (e.g., snotify.properties) with encryption=false.
    • Jira audit logs showing configuration changes by an admin user at unusual times.
  • Email:
    • Email notifications sent without encryption (e.g., missing TLS or STARTTLS headers).

Detection Engineering

YARA Rule

rule CVE_2023_50930_CSRF_SNotify {
    meta:
        description = "Detects CSRF attack against S/Notify plugin"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2023-50930"
    strings:
        $s1 = "/plugins/servlet/snotify/admin/config" ascii wide nocase
        $s2 = "encryption=false" ascii wide nocase
        $s3 = "smtp_tls=false" ascii wide nocase
    condition:
        any of ($s*) and #s1 > 0
}

Sigma Rule

title: CVE-2023-50930 S/Notify CSRF Configuration Change
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects CSRF attempts to modify S/Notify configuration
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: jira
detection:
    selection:
        cs-method: 'POST'
        c-uri|contains: '/plugins/servlet/snotify/admin/config'
        cs-uri-query|contains: 
            - 'encryption=false'
            - 'smtp_tls=false'
    condition: selection
falsepositives:
    - Legitimate admin configuration changes (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2023-50930 S/Notify CSRF Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/plugins/servlet/snotify/admin/config"; http_uri; content:"encryption=false"; http_client_body; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate:

  • Upgrade S/Notify to version 4.0.2 or later.
  • If upgrade is not possible, implement a WAF rule to block POST requests to /plugins/servlet/snotify/admin/config without a valid CSRF token.

Long-term:

  • Enforce CSRF protection on all administrative endpoints.
  • Use same-origin policy checks (e.g., validate Referer header).
  • Educate administrators about phishing and social engineering risks.

Workaround:

  • Restrict access to the S/Notify configuration page via IP whitelisting or VPN.
  • Monitor Jira audit logs for configuration changes.

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2023-50930/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.