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

CVE-2023-44039

CVE-2023-44039 Authentication Bypass in Veridiumid
📅 PUBLISHED: 2024-04-03 00:00 UTC 🔄 UPDATED: 2026-08-18 17:11 UTC
⏳ SCORE PENDING — ANALYSIS IN PROGRESS [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.55%
👁️
0.55% probability
13.6× 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
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2023-44039 is a critical authentication bypass vulnerability in VeridiumID, an identity and access management platform. The flaw resides in the WebAuthn API implementation, allowing an internal unauthenticated attacker who has passed enrollment verifications and is permitted to enroll a FIDO key to register their own FIDO authenticator to a victim’s account. This effectively enables account takeover. The vulnerability affects all versions prior to 3.5.0. No public proof-of-concept (PoC) or exploit code is available at this time, and the EPSS score is 0.0%, indicating low exploitation activity in the wild. The vendor has not released a public patch advisory, but upgrading to version 3.5.0 is the recommended remediation.

⚡ 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 an NPM, PyPI, Go, or Ruby package. It is a proprietary enterprise software product (VeridiumID). No supply chain package security implications are present.

CVSS Breakdown & Threat Level

The CVSS score is listed as 0.0 in the NVD data, which is likely a placeholder or uncalculated value. Based on the vulnerability description, a reasonable CVSS v3.1 vector would be:

CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Base Score: 8.8 (High)

Breakdown:

  • Attack Vector (AV): Network (N) – The attacker can exploit the vulnerability over the network.
  • Attack Complexity (AC): Low (L) – No special conditions are required.
  • Privileges Required (PR): Low (L) – The attacker must be an internal unauthenticated user who can pass enrollment verifications.
  • User Interaction (UI): None (N) – No victim interaction is required.
  • Scope (S): Unchanged (U) – The vulnerable component and the impacted component are the same.
  • Confidentiality (C): High (H) – Full account takeover leads to complete data exposure.
  • Integrity (I): High (H) – Attacker can modify victim account data.
  • Availability (A): High (H) – Attacker can lock out the victim.

Threat Level: High. The vulnerability allows account takeover with low privileges and no user interaction, making it a serious threat to organizations using VeridiumID.

Deep Dive & Mechanics

The vulnerability exists in the WebAuthn API of VeridiumID. WebAuthn is a web standard for passwordless authentication using public-key cryptography. In a typical WebAuthn flow, a user registers a FIDO2 authenticator (e.g., a hardware security key or platform authenticator) by generating a key pair and sending the public key to the server. The server stores the public key and associates it with the user's account.

In VeridiumID versions before 3.5.0, the WebAuthn API does not properly verify that the user registering a new authenticator is the legitimate owner of the account. Specifically, the API fails to enforce a binding between the authenticated session and the account being enrolled. An internal attacker who has already passed enrollment verifications (e.g., by providing a valid email or phone number) can craft a request to register their own FIDO authenticator to a victim's account. Once the attacker's authenticator is registered, they can use it to authenticate as the victim, effectively taking over the account.

The root cause is a missing or insufficient authorization check in the WebAuthn registration endpoint. The server likely trusts the user-provided account identifier (e.g., username or user ID) without verifying that the current session belongs to that account.

Vulnerable vs. Patched Code

Since the source code is not publicly available, the following is a conceptual representation of the vulnerable and patched logic.

Vulnerable Code (Conceptual):

# Vulnerable WebAuthn registration endpoint
@app.route('/webauthn/register', methods=['POST'])
def webauthn_register():
    user_id = request.json.get('user_id')
    # No session validation - attacker can specify any user_id
    # Proceed to generate challenge and register authenticator
    challenge = generate_challenge()
    store_challenge(user_id, challenge)
    return jsonify({'challenge': challenge})

Patched Code (Conceptual):

# Patched WebAuthn registration endpoint
@app.route('/webauthn/register', methods=['POST'])
def webauthn_register():
    # Validate that the authenticated user matches the requested user_id
    current_user = get_current_user_from_session()
    user_id = request.json.get('user_id')
    if current_user.id != user_id:
        return jsonify({'error': 'Unauthorized'}), 403
    challenge = generate_challenge()
    store_challenge(user_id, challenge)
    return jsonify({'challenge': challenge})

The patch adds a session validation check to ensure that the user requesting registration is the same as the account being enrolled.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Access to the VeridiumID instance as an internal user who can pass enrollment verifications (e.g., by providing a valid email or phone number).
  • Ability to interact with the WebAuthn API.

Exploitation Steps:

  1. Enroll as a legitimate user: Complete the enrollment process to obtain a valid session token.
  2. Identify victim account: Determine the victim's user ID (e.g., via enumeration or internal knowledge).
  3. Craft malicious request: Send a POST request to the WebAuthn registration endpoint with the victim's user ID and your own FIDO authenticator's public key.
  4. Complete registration: Follow the WebAuthn protocol to finalize the registration.
  5. Authenticate as victim: Use your registered authenticator to log in as the victim.

Example cURL command (conceptual):

curl -X POST https://victim-veridiumid.com/webauthn/register \
  -H "Authorization: Bearer <your_session_token>" \
  -H "Content-Type: application/json" \
  -d '{"user_id": "victim_user_id", "public_key": "your_public_key"}'

Blue Team

Detection:

  • Monitor WebAuthn registration events for anomalies, such as multiple registrations from the same IP or user agent.
  • Alert on registrations where the user ID does not match the authenticated session.
  • Review logs for failed authorization attempts on the WebAuthn endpoint.

Hunting:

  • Search for WebAuthn registration requests with mismatched user IDs.
  • Correlate registration events with subsequent authentication events to identify potential account takeovers.

Mitigation:

  • Immediately upgrade to VeridiumID 3.5.0 or later.
  • If upgrade is not possible, implement a Web Application Firewall (WAF) rule to block requests where the user ID in the request body does not match the authenticated session.
  • Enable multi-factor authentication (MFA) for all accounts to add an extra layer of security.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • Unusual WebAuthn registration requests to /webauthn/register with mismatched user IDs.
    • Multiple registration attempts from the same IP address in a short period.
  • Log IOCs:
    • Log entries showing successful WebAuthn registration for a user ID that does not match the authenticated session.
    • Failed authorization attempts (HTTP 403) on the WebAuthn endpoint.
  • System IOCs:
    • Unexpected FIDO authenticators registered to user accounts.
    • Accounts with multiple registered authenticators where one is unknown.

Detection Engineering

YARA Rule

rule CVE_2023_44039_WebAuthn_Registration_Abuse {
    meta:
        description = "Detects potential exploitation of CVE-2023-44039 in VeridiumID WebAuthn registration"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2023-44039"
    strings:
        $s1 = "/webauthn/register" ascii wide nocase
        $s2 = "user_id" ascii wide nocase
        $s3 = "public_key" ascii wide nocase
    condition:
        all of ($s*) and #s1 > 0
}

Sigma Rule

title: CVE-2023-44039 - VeridiumID WebAuthn Registration Abuse
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects potential exploitation of CVE-2023-44039 where an attacker registers a FIDO authenticator to a victim's account.
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2023-44039
logsource:
    category: web
    product: veridiumid
detection:
    selection:
        cs-method: 'POST'
        cs-uri-stem: '/webauthn/register'
        cs-user-agent: '*'
    condition: selection
falsepositives:
    - Legitimate WebAuthn registration by authorized users
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2023-44039 - VeridiumID WebAuthn Registration Abuse"; flow:to_server; content:"POST"; http_method; content:"/webauthn/register"; http_uri; content:"user_id"; http_client_body; content:"public_key"; http_client_body; classtype:attempted-user; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade: Update VeridiumID to version 3.5.0 or later. This is the only official fix.
  2. Workaround: If upgrade is not possible, implement a reverse proxy or WAF rule to validate that the user_id in WebAuthn registration requests matches the authenticated session.
  3. Audit: Review all existing WebAuthn registrations for anomalies. Remove any unauthorized authenticators.
  4. Monitor: Enable detailed logging for WebAuthn endpoints and monitor for suspicious activity.

Long-term Recommendations:

  • Implement strict session validation for all API endpoints.
  • Conduct regular security audits and penetration testing.
  • Follow the principle of least privilege for internal users.
  • Enable MFA for all accounts.

Valters IT Signature This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.

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