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

CVE-2025-22170

CVE-2025-22170 Privilege Escalation in Jira align
📅 PUBLISHED: 2025-10-22 16:30 UTC 🔄 UPDATED: 2026-08-18 17:12 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ 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: version not auto-detected — verify your deployed version locally
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
5.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-22170 is an authorization bypass vulnerability in Jira Align. A low-privilege user without sufficient permissions can perform an action they are not authorized to by including a specific state-related parameter associated with a privileged user. This flaw allows privilege escalation and unauthorized operations within the application. No public exploit code or proof-of-concept is currently available, and the vendor has not released a patch. The vulnerability is classified under MITRE Tactic T1548 (Abuse Elevation Control Mechanism) and CWE-862 (Missing Authorization).

⚡ 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

CVSS Breakdown & Threat Level

  • CVSS Score: 0.0 (No official vector assigned)
  • Attack Vector: Network (likely)
  • Attack Complexity: Low
  • Privileges Required: Low
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: High
  • Integrity Impact: High
  • Availability Impact: High

Threat Level: Critical (based on impact and ease of exploitation)

Deep Dive & Mechanics

The vulnerability resides in Jira Align’s authorization logic. When a low-privilege user sends a request to perform an action, the application checks the user’s permissions. However, if the request includes a state-related parameter (e.g., a session token, user ID, or role indicator) that belongs to a user with sufficient privileges, the authorization check is bypassed. This allows the attacker to execute actions as if they were the privileged user.

Root Cause: The application fails to validate that the state parameter matches the authenticated user’s identity. Instead, it trusts the parameter value to determine authorization.

Attack Vector: An authenticated low-privilege user crafts a request (e.g., HTTP POST/GET) containing a state parameter (e.g., user_id=admin or role=admin) and sends it to a sensitive endpoint. The server processes the request using the provided state, granting elevated privileges.

Impact: Unauthorized data access, modification, deletion, or configuration changes. Full compromise of Jira Align instance.

Vulnerable vs. Patched Code

No official patch or code diff is available. The vulnerable code likely resembles:

# Vulnerable pseudocode
def perform_action(request):
    user = get_user_from_session(request)
    state_param = request.GET.get('state')
    if state_param:
        # BUG: Uses state_param to determine permissions instead of user
        if has_permission(state_param, 'admin_action'):
            execute_admin_action()
    else:
        if has_permission(user, 'admin_action'):
            execute_admin_action()

A patched version would validate the state parameter against the authenticated user:

# Patched pseudocode
def perform_action(request):
    user = get_user_from_session(request)
    state_param = request.GET.get('state')
    if state_param:
        # Validate that state_param belongs to the same user
        if state_param == user.state_token:
            if has_permission(user, 'admin_action'):
                execute_admin_action()
        else:
            raise PermissionDenied()
    else:
        if has_permission(user, 'admin_action'):
            execute_admin_action()

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Valid low-privilege account on Jira Align
  • Knowledge of a privileged user’s state parameter (e.g., via session hijacking, information disclosure, or brute-force)

Exploitation Steps:

  1. Log in as low-privilege user.
  2. Capture a valid request to a sensitive endpoint (e.g., /api/admin/deleteUser).
  3. Modify the request to include the privileged user’s state parameter (e.g., state=admin_session_token).
  4. Send the modified request.
  5. Observe that the action is executed with elevated privileges.

Example HTTP Request (cURL):

curl -X POST https://jira-align.example.com/api/admin/deleteUser \
  -H "Cookie: session=lowpriv_session" \
  -d "user_id=target&state=admin_session_token"

Blue Team

Detection:

  • Monitor for requests where the state parameter value does not match the authenticated user’s session.
  • Alert on multiple failed authorization attempts followed by a successful action.
  • Use the Sigma rule below to detect anomalous state parameters.

Mitigation:

  • Implement strict server-side validation of state parameters against the authenticated user.
  • Apply principle of least privilege.
  • Enable logging of all authorization decisions.

Indicators of Compromise (IOCs)

  • Network: HTTP requests containing a state parameter with a value that differs from the session user’s identifier.
  • Logs: Authorization logs showing a low-privilege user performing admin actions.
  • File: No specific file IOCs.

Detection Engineering

YARA Rule

rule CVE_2025_22170_Jira_Align_Auth_Bypass {
    meta:
        description = "Detects exploitation attempts of CVE-2025-22170 in Jira Align"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-22170"
    strings:
        $state_param = /state=[a-zA-Z0-9_-]{10,}/ nocase
        $admin_action = /admin|delete|modify|create/i
    condition:
        $state_param and $admin_action
}

Sigma Rule

title: Jira Align Authorization Bypass via State Parameter
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects HTTP requests with a state parameter that may indicate CVE-2025-22170 exploitation
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'state='
        cs-username|contains: 'lowpriv'
    condition: selection
falsepositives:
    - Legitimate use of state parameters in multi-step workflows
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-22170 Jira Align Authorization Bypass"; flow:to_server; content:"state="; http_uri; pcre:"/state=[a-zA-Z0-9_-]{10,}/"; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the vulnerable endpoint if possible.
  2. Implement additional authorization checks in a Web Application Firewall (WAF) to block requests where the state parameter does not match the session user.
  3. Monitor logs for suspicious activity.

Long-term Fix:

  • Apply vendor patch when released.
  • Conduct a code review of authorization logic.
  • Implement robust server-side validation of all state parameters.

Workaround:

  • Restrict access to sensitive endpoints via network segmentation or IP whitelisting.

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-22170/ · 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.